Merge branch 'master' of ssh://git.samba.org/data/git/samba into selftest
[samba.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_misc.h"
7 #include "librpc/gen_ndr/ndr_lsa.h"
8 #include "librpc/gen_ndr/ndr_samr.h"
9 #include "librpc/gen_ndr/ndr_security.h"
10 #include "librpc/gen_ndr/ndr_nbt.h"
11 static enum ndr_err_code ndr_push_netr_UasInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasInfo *r)
12 {
13         if (ndr_flags & NDR_SCALARS) {
14                 NDR_CHECK(ndr_push_align(ndr, 4));
15                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
16                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priv));
17                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_flags));
18                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_count));
19                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_pw_count));
20                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logon));
21                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logoff));
22                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->logoff_time));
23                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->kickoff_time));
24                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->password_age));
25                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_can_change));
26                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_must_change));
27                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer));
28                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
29                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->script_path));
30                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
31         }
32         if (ndr_flags & NDR_BUFFERS) {
33                 if (r->account_name) {
34                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
35                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
36                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
37                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
38                 }
39                 if (r->computer) {
40                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
41                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
42                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
43                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer, ndr_charset_length(r->computer, CH_UTF16), sizeof(uint16_t), CH_UTF16));
44                 }
45                 if (r->domain) {
46                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
47                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
48                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
49                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
50                 }
51                 if (r->script_path) {
52                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
53                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
54                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
55                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->script_path, ndr_charset_length(r->script_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
56                 }
57         }
58         return NDR_ERR_SUCCESS;
59 }
60
61 static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasInfo *r)
62 {
63         uint32_t _ptr_account_name;
64         TALLOC_CTX *_mem_save_account_name_0;
65         uint32_t _ptr_computer;
66         TALLOC_CTX *_mem_save_computer_0;
67         uint32_t _ptr_domain;
68         TALLOC_CTX *_mem_save_domain_0;
69         uint32_t _ptr_script_path;
70         TALLOC_CTX *_mem_save_script_path_0;
71         if (ndr_flags & NDR_SCALARS) {
72                 NDR_CHECK(ndr_pull_align(ndr, 4));
73                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
74                 if (_ptr_account_name) {
75                         NDR_PULL_ALLOC(ndr, r->account_name);
76                 } else {
77                         r->account_name = NULL;
78                 }
79                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priv));
80                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_flags));
81                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_count));
82                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_pw_count));
83                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logon));
84                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logoff));
85                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->logoff_time));
86                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->kickoff_time));
87                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->password_age));
88                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_can_change));
89                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_must_change));
90                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer));
91                 if (_ptr_computer) {
92                         NDR_PULL_ALLOC(ndr, r->computer);
93                 } else {
94                         r->computer = NULL;
95                 }
96                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
97                 if (_ptr_domain) {
98                         NDR_PULL_ALLOC(ndr, r->domain);
99                 } else {
100                         r->domain = NULL;
101                 }
102                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_script_path));
103                 if (_ptr_script_path) {
104                         NDR_PULL_ALLOC(ndr, r->script_path);
105                 } else {
106                         r->script_path = NULL;
107                 }
108                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
109         }
110         if (ndr_flags & NDR_BUFFERS) {
111                 if (r->account_name) {
112                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
113                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
114                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
115                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
116                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
117                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name));
118                         }
119                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
120                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
121                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
122                 }
123                 if (r->computer) {
124                         _mem_save_computer_0 = NDR_PULL_GET_MEM_CTX(ndr);
125                         NDR_PULL_SET_MEM_CTX(ndr, r->computer, 0);
126                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer));
127                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer));
128                         if (ndr_get_array_length(ndr, &r->computer) > ndr_get_array_size(ndr, &r->computer)) {
129                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer), ndr_get_array_length(ndr, &r->computer));
130                         }
131                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t)));
132                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t), CH_UTF16));
133                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_0, 0);
134                 }
135                 if (r->domain) {
136                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
137                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
138                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
139                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
140                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
141                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
142                         }
143                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
144                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
145                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
146                 }
147                 if (r->script_path) {
148                         _mem_save_script_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
149                         NDR_PULL_SET_MEM_CTX(ndr, r->script_path, 0);
150                         NDR_CHECK(ndr_pull_array_size(ndr, &r->script_path));
151                         NDR_CHECK(ndr_pull_array_length(ndr, &r->script_path));
152                         if (ndr_get_array_length(ndr, &r->script_path) > ndr_get_array_size(ndr, &r->script_path)) {
153                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->script_path), ndr_get_array_length(ndr, &r->script_path));
154                         }
155                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t)));
156                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->script_path, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t), CH_UTF16));
157                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_script_path_0, 0);
158                 }
159         }
160         return NDR_ERR_SUCCESS;
161 }
162
163 _PUBLIC_ void ndr_print_netr_UasInfo(struct ndr_print *ndr, const char *name, const struct netr_UasInfo *r)
164 {
165         ndr_print_struct(ndr, name, "netr_UasInfo");
166         ndr->depth++;
167         ndr_print_ptr(ndr, "account_name", r->account_name);
168         ndr->depth++;
169         if (r->account_name) {
170                 ndr_print_string(ndr, "account_name", r->account_name);
171         }
172         ndr->depth--;
173         ndr_print_uint32(ndr, "priv", r->priv);
174         ndr_print_uint32(ndr, "auth_flags", r->auth_flags);
175         ndr_print_uint32(ndr, "logon_count", r->logon_count);
176         ndr_print_uint32(ndr, "bad_pw_count", r->bad_pw_count);
177         ndr_print_time_t(ndr, "last_logon", r->last_logon);
178         ndr_print_time_t(ndr, "last_logoff", r->last_logoff);
179         ndr_print_time_t(ndr, "logoff_time", r->logoff_time);
180         ndr_print_time_t(ndr, "kickoff_time", r->kickoff_time);
181         ndr_print_uint32(ndr, "password_age", r->password_age);
182         ndr_print_time_t(ndr, "pw_can_change", r->pw_can_change);
183         ndr_print_time_t(ndr, "pw_must_change", r->pw_must_change);
184         ndr_print_ptr(ndr, "computer", r->computer);
185         ndr->depth++;
186         if (r->computer) {
187                 ndr_print_string(ndr, "computer", r->computer);
188         }
189         ndr->depth--;
190         ndr_print_ptr(ndr, "domain", r->domain);
191         ndr->depth++;
192         if (r->domain) {
193                 ndr_print_string(ndr, "domain", r->domain);
194         }
195         ndr->depth--;
196         ndr_print_ptr(ndr, "script_path", r->script_path);
197         ndr->depth++;
198         if (r->script_path) {
199                 ndr_print_string(ndr, "script_path", r->script_path);
200         }
201         ndr->depth--;
202         ndr_print_uint32(ndr, "unknown", r->unknown);
203         ndr->depth--;
204 }
205
206 static enum ndr_err_code ndr_push_netr_UasLogoffInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasLogoffInfo *r)
207 {
208         if (ndr_flags & NDR_SCALARS) {
209                 NDR_CHECK(ndr_push_align(ndr, 4));
210                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->duration));
211                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
212         }
213         if (ndr_flags & NDR_BUFFERS) {
214         }
215         return NDR_ERR_SUCCESS;
216 }
217
218 static enum ndr_err_code ndr_pull_netr_UasLogoffInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasLogoffInfo *r)
219 {
220         if (ndr_flags & NDR_SCALARS) {
221                 NDR_CHECK(ndr_pull_align(ndr, 4));
222                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->duration));
223                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
224         }
225         if (ndr_flags & NDR_BUFFERS) {
226         }
227         return NDR_ERR_SUCCESS;
228 }
229
230 _PUBLIC_ void ndr_print_netr_UasLogoffInfo(struct ndr_print *ndr, const char *name, const struct netr_UasLogoffInfo *r)
231 {
232         ndr_print_struct(ndr, name, "netr_UasLogoffInfo");
233         ndr->depth++;
234         ndr_print_uint32(ndr, "duration", r->duration);
235         ndr_print_uint16(ndr, "logon_count", r->logon_count);
236         ndr->depth--;
237 }
238
239 _PUBLIC_ enum ndr_err_code ndr_push_netr_AcctLockStr(struct ndr_push *ndr, int ndr_flags, const struct netr_AcctLockStr *r)
240 {
241         if (ndr_flags & NDR_SCALARS) {
242                 NDR_CHECK(ndr_push_align(ndr, 4));
243                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->lockout_duration));
244                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reset_count));
245                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_attempt_lockout));
246                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy));
247         }
248         if (ndr_flags & NDR_BUFFERS) {
249         }
250         return NDR_ERR_SUCCESS;
251 }
252
253 _PUBLIC_ enum ndr_err_code ndr_pull_netr_AcctLockStr(struct ndr_pull *ndr, int ndr_flags, struct netr_AcctLockStr *r)
254 {
255         if (ndr_flags & NDR_SCALARS) {
256                 NDR_CHECK(ndr_pull_align(ndr, 4));
257                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->lockout_duration));
258                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reset_count));
259                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_attempt_lockout));
260                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
261         }
262         if (ndr_flags & NDR_BUFFERS) {
263         }
264         return NDR_ERR_SUCCESS;
265 }
266
267 _PUBLIC_ void ndr_print_netr_AcctLockStr(struct ndr_print *ndr, const char *name, const struct netr_AcctLockStr *r)
268 {
269         ndr_print_struct(ndr, name, "netr_AcctLockStr");
270         ndr->depth++;
271         ndr_print_dlong(ndr, "lockout_duration", r->lockout_duration);
272         ndr_print_udlong(ndr, "reset_count", r->reset_count);
273         ndr_print_uint32(ndr, "bad_attempt_lockout", r->bad_attempt_lockout);
274         ndr_print_uint32(ndr, "dummy", r->dummy);
275         ndr->depth--;
276 }
277
278 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonParameterControl(struct ndr_push *ndr, int ndr_flags, uint32_t r)
279 {
280         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
281         return NDR_ERR_SUCCESS;
282 }
283
284 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonParameterControl(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
285 {
286         uint32_t v;
287         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
288         *r = v;
289         return NDR_ERR_SUCCESS;
290 }
291
292 _PUBLIC_ void ndr_print_netr_LogonParameterControl(struct ndr_print *ndr, const char *name, uint32_t r)
293 {
294         ndr_print_uint32(ndr, name, r);
295         ndr->depth++;
296         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED, r);
297         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS, r);
298         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS, r);
299         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT, r);
300         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH, r);
301         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT, r);
302         ndr->depth--;
303 }
304
305 static enum ndr_err_code ndr_push_netr_IdentityInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_IdentityInfo *r)
306 {
307         if (ndr_flags & NDR_SCALARS) {
308                 NDR_CHECK(ndr_push_align(ndr, 4));
309                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
310                 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr, NDR_SCALARS, r->parameter_control));
311                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_low));
312                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_high));
313                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
314                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstation));
315         }
316         if (ndr_flags & NDR_BUFFERS) {
317                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
318                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
319                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
320         }
321         return NDR_ERR_SUCCESS;
322 }
323
324 static enum ndr_err_code ndr_pull_netr_IdentityInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_IdentityInfo *r)
325 {
326         if (ndr_flags & NDR_SCALARS) {
327                 NDR_CHECK(ndr_pull_align(ndr, 4));
328                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
329                 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr, NDR_SCALARS, &r->parameter_control));
330                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_low));
331                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_high));
332                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
333                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstation));
334         }
335         if (ndr_flags & NDR_BUFFERS) {
336                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
337                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
338                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
339         }
340         return NDR_ERR_SUCCESS;
341 }
342
343 _PUBLIC_ void ndr_print_netr_IdentityInfo(struct ndr_print *ndr, const char *name, const struct netr_IdentityInfo *r)
344 {
345         ndr_print_struct(ndr, name, "netr_IdentityInfo");
346         ndr->depth++;
347         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
348         ndr_print_netr_LogonParameterControl(ndr, "parameter_control", r->parameter_control);
349         ndr_print_uint32(ndr, "logon_id_low", r->logon_id_low);
350         ndr_print_uint32(ndr, "logon_id_high", r->logon_id_high);
351         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
352         ndr_print_lsa_String(ndr, "workstation", &r->workstation);
353         ndr->depth--;
354 }
355
356 static enum ndr_err_code ndr_push_netr_PasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordInfo *r)
357 {
358         if (ndr_flags & NDR_SCALARS) {
359                 NDR_CHECK(ndr_push_align(ndr, 4));
360                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
361                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
362                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
363         }
364         if (ndr_flags & NDR_BUFFERS) {
365                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
366         }
367         return NDR_ERR_SUCCESS;
368 }
369
370 static enum ndr_err_code ndr_pull_netr_PasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordInfo *r)
371 {
372         if (ndr_flags & NDR_SCALARS) {
373                 NDR_CHECK(ndr_pull_align(ndr, 4));
374                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
375                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
376                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
377         }
378         if (ndr_flags & NDR_BUFFERS) {
379                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
380         }
381         return NDR_ERR_SUCCESS;
382 }
383
384 _PUBLIC_ void ndr_print_netr_PasswordInfo(struct ndr_print *ndr, const char *name, const struct netr_PasswordInfo *r)
385 {
386         ndr_print_struct(ndr, name, "netr_PasswordInfo");
387         ndr->depth++;
388         ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
389         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
390         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
391         ndr->depth--;
392 }
393
394 static enum ndr_err_code ndr_push_netr_ChallengeResponse(struct ndr_push *ndr, int ndr_flags, const struct netr_ChallengeResponse *r)
395 {
396         {
397                 uint32_t _flags_save_STRUCT = ndr->flags;
398                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
399                 if (ndr_flags & NDR_SCALARS) {
400                         NDR_CHECK(ndr_push_align(ndr, 4));
401                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
402                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
403                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
404                 }
405                 if (ndr_flags & NDR_BUFFERS) {
406                         if (r->data) {
407                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
408                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
409                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
410                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
411                         }
412                 }
413                 ndr->flags = _flags_save_STRUCT;
414         }
415         return NDR_ERR_SUCCESS;
416 }
417
418 static enum ndr_err_code ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, int ndr_flags, struct netr_ChallengeResponse *r)
419 {
420         uint32_t _ptr_data;
421         TALLOC_CTX *_mem_save_data_0;
422         {
423                 uint32_t _flags_save_STRUCT = ndr->flags;
424                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
425                 if (ndr_flags & NDR_SCALARS) {
426                         NDR_CHECK(ndr_pull_align(ndr, 4));
427                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
428                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
429                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
430                         if (_ptr_data) {
431                                 NDR_PULL_ALLOC(ndr, r->data);
432                         } else {
433                                 r->data = NULL;
434                         }
435                 }
436                 if (ndr_flags & NDR_BUFFERS) {
437                         if (r->data) {
438                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
439                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
440                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
441                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
442                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
443                                         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));
444                                 }
445                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
446                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
447                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
448                         }
449                         if (r->data) {
450                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
451                         }
452                         if (r->data) {
453                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length));
454                         }
455                 }
456                 ndr->flags = _flags_save_STRUCT;
457         }
458         return NDR_ERR_SUCCESS;
459 }
460
461 _PUBLIC_ void ndr_print_netr_ChallengeResponse(struct ndr_print *ndr, const char *name, const struct netr_ChallengeResponse *r)
462 {
463         ndr_print_struct(ndr, name, "netr_ChallengeResponse");
464         {
465                 uint32_t _flags_save_STRUCT = ndr->flags;
466                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
467                 ndr->depth++;
468                 ndr_print_uint16(ndr, "length", r->length);
469                 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
470                 ndr_print_ptr(ndr, "data", r->data);
471                 ndr->depth++;
472                 if (r->data) {
473                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
474                 }
475                 ndr->depth--;
476                 ndr->depth--;
477                 ndr->flags = _flags_save_STRUCT;
478         }
479 }
480
481 static enum ndr_err_code ndr_push_netr_NetworkInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_NetworkInfo *r)
482 {
483         {
484                 uint32_t _flags_save_STRUCT = ndr->flags;
485                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
486                 if (ndr_flags & NDR_SCALARS) {
487                         NDR_CHECK(ndr_push_align(ndr, 4));
488                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
489                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
490                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
491                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
492                 }
493                 if (ndr_flags & NDR_BUFFERS) {
494                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
495                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
496                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
497                 }
498                 ndr->flags = _flags_save_STRUCT;
499         }
500         return NDR_ERR_SUCCESS;
501 }
502
503 static enum ndr_err_code ndr_pull_netr_NetworkInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_NetworkInfo *r)
504 {
505         {
506                 uint32_t _flags_save_STRUCT = ndr->flags;
507                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
508                 if (ndr_flags & NDR_SCALARS) {
509                         NDR_CHECK(ndr_pull_align(ndr, 4));
510                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
511                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
512                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
513                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
514                 }
515                 if (ndr_flags & NDR_BUFFERS) {
516                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
517                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
518                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
519                 }
520                 ndr->flags = _flags_save_STRUCT;
521         }
522         return NDR_ERR_SUCCESS;
523 }
524
525 _PUBLIC_ void ndr_print_netr_NetworkInfo(struct ndr_print *ndr, const char *name, const struct netr_NetworkInfo *r)
526 {
527         ndr_print_struct(ndr, name, "netr_NetworkInfo");
528         {
529                 uint32_t _flags_save_STRUCT = ndr->flags;
530                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
531                 ndr->depth++;
532                 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
533                 ndr_print_array_uint8(ndr, "challenge", r->challenge, 8);
534                 ndr_print_netr_ChallengeResponse(ndr, "nt", &r->nt);
535                 ndr_print_netr_ChallengeResponse(ndr, "lm", &r->lm);
536                 ndr->depth--;
537                 ndr->flags = _flags_save_STRUCT;
538         }
539 }
540
541 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonInfo(struct ndr_push *ndr, int ndr_flags, const union netr_LogonInfo *r)
542 {
543         if (ndr_flags & NDR_SCALARS) {
544                 int level = ndr_push_get_switch_value(ndr, r);
545                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
546                 switch (level) {
547                         case 1: {
548                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
549                         break; }
550
551                         case 2: {
552                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
553                         break; }
554
555                         case 3: {
556                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
557                         break; }
558
559                         case 5: {
560                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
561                         break; }
562
563                         case 6: {
564                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
565                         break; }
566
567                         default:
568                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
569                 }
570         }
571         if (ndr_flags & NDR_BUFFERS) {
572                 int level = ndr_push_get_switch_value(ndr, r);
573                 switch (level) {
574                         case 1:
575                                 if (r->password) {
576                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
577                                 }
578                         break;
579
580                         case 2:
581                                 if (r->network) {
582                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
583                                 }
584                         break;
585
586                         case 3:
587                                 if (r->password) {
588                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
589                                 }
590                         break;
591
592                         case 5:
593                                 if (r->password) {
594                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
595                                 }
596                         break;
597
598                         case 6:
599                                 if (r->network) {
600                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
601                                 }
602                         break;
603
604                         default:
605                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
606                 }
607         }
608         return NDR_ERR_SUCCESS;
609 }
610
611 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonInfo(struct ndr_pull *ndr, int ndr_flags, union netr_LogonInfo *r)
612 {
613         int level;
614         uint16_t _level;
615         TALLOC_CTX *_mem_save_password_0;
616         TALLOC_CTX *_mem_save_network_0;
617         level = ndr_pull_get_switch_value(ndr, r);
618         if (ndr_flags & NDR_SCALARS) {
619                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
620                 if (_level != level) {
621                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
622                 }
623                 switch (level) {
624                         case 1: {
625                                 uint32_t _ptr_password;
626                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
627                                 if (_ptr_password) {
628                                         NDR_PULL_ALLOC(ndr, r->password);
629                                 } else {
630                                         r->password = NULL;
631                                 }
632                         break; }
633
634                         case 2: {
635                                 uint32_t _ptr_network;
636                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
637                                 if (_ptr_network) {
638                                         NDR_PULL_ALLOC(ndr, r->network);
639                                 } else {
640                                         r->network = NULL;
641                                 }
642                         break; }
643
644                         case 3: {
645                                 uint32_t _ptr_password;
646                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
647                                 if (_ptr_password) {
648                                         NDR_PULL_ALLOC(ndr, r->password);
649                                 } else {
650                                         r->password = NULL;
651                                 }
652                         break; }
653
654                         case 5: {
655                                 uint32_t _ptr_password;
656                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
657                                 if (_ptr_password) {
658                                         NDR_PULL_ALLOC(ndr, r->password);
659                                 } else {
660                                         r->password = NULL;
661                                 }
662                         break; }
663
664                         case 6: {
665                                 uint32_t _ptr_network;
666                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
667                                 if (_ptr_network) {
668                                         NDR_PULL_ALLOC(ndr, r->network);
669                                 } else {
670                                         r->network = NULL;
671                                 }
672                         break; }
673
674                         default:
675                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
676                 }
677         }
678         if (ndr_flags & NDR_BUFFERS) {
679                 switch (level) {
680                         case 1:
681                                 if (r->password) {
682                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
683                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
684                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
685                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
686                                 }
687                         break;
688
689                         case 2:
690                                 if (r->network) {
691                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
692                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
693                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
694                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
695                                 }
696                         break;
697
698                         case 3:
699                                 if (r->password) {
700                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
701                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
702                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
703                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
704                                 }
705                         break;
706
707                         case 5:
708                                 if (r->password) {
709                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
710                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
711                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
712                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
713                                 }
714                         break;
715
716                         case 6:
717                                 if (r->network) {
718                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
719                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
720                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
721                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
722                                 }
723                         break;
724
725                         default:
726                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
727                 }
728         }
729         return NDR_ERR_SUCCESS;
730 }
731
732 _PUBLIC_ void ndr_print_netr_LogonInfo(struct ndr_print *ndr, const char *name, const union netr_LogonInfo *r)
733 {
734         int level;
735         level = ndr_print_get_switch_value(ndr, r);
736         ndr_print_union(ndr, name, level, "netr_LogonInfo");
737         switch (level) {
738                 case 1:
739                         ndr_print_ptr(ndr, "password", r->password);
740                         ndr->depth++;
741                         if (r->password) {
742                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
743                         }
744                         ndr->depth--;
745                 break;
746
747                 case 2:
748                         ndr_print_ptr(ndr, "network", r->network);
749                         ndr->depth++;
750                         if (r->network) {
751                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
752                         }
753                         ndr->depth--;
754                 break;
755
756                 case 3:
757                         ndr_print_ptr(ndr, "password", r->password);
758                         ndr->depth++;
759                         if (r->password) {
760                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
761                         }
762                         ndr->depth--;
763                 break;
764
765                 case 5:
766                         ndr_print_ptr(ndr, "password", r->password);
767                         ndr->depth++;
768                         if (r->password) {
769                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
770                         }
771                         ndr->depth--;
772                 break;
773
774                 case 6:
775                         ndr_print_ptr(ndr, "network", r->network);
776                         ndr->depth++;
777                         if (r->network) {
778                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
779                         }
780                         ndr->depth--;
781                 break;
782
783                 default:
784                         ndr_print_bad_level(ndr, name, level);
785         }
786 }
787
788 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_UserSessionKey *r)
789 {
790         {
791                 uint32_t _flags_save_STRUCT = ndr->flags;
792                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
793                 if (ndr_flags & NDR_SCALARS) {
794                         NDR_CHECK(ndr_push_align(ndr, 1));
795                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 16));
796                 }
797                 if (ndr_flags & NDR_BUFFERS) {
798                 }
799                 ndr->flags = _flags_save_STRUCT;
800         }
801         return NDR_ERR_SUCCESS;
802 }
803
804 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r)
805 {
806         {
807                 uint32_t _flags_save_STRUCT = ndr->flags;
808                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
809                 if (ndr_flags & NDR_SCALARS) {
810                         NDR_CHECK(ndr_pull_align(ndr, 1));
811                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16));
812                 }
813                 if (ndr_flags & NDR_BUFFERS) {
814                 }
815                 ndr->flags = _flags_save_STRUCT;
816         }
817         return NDR_ERR_SUCCESS;
818 }
819
820 _PUBLIC_ void ndr_print_netr_UserSessionKey(struct ndr_print *ndr, const char *name, const struct netr_UserSessionKey *r)
821 {
822         ndr_print_struct(ndr, name, "netr_UserSessionKey");
823         {
824                 uint32_t _flags_save_STRUCT = ndr->flags;
825                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
826                 ndr->depth++;
827                 ndr_print_array_uint8(ndr, "key", r->key, 16);
828                 ndr->depth--;
829                 ndr->flags = _flags_save_STRUCT;
830         }
831 }
832
833 _PUBLIC_ enum ndr_err_code ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_LMSessionKey *r)
834 {
835         {
836                 uint32_t _flags_save_STRUCT = ndr->flags;
837                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
838                 if (ndr_flags & NDR_SCALARS) {
839                         NDR_CHECK(ndr_push_align(ndr, 1));
840                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 8));
841                 }
842                 if (ndr_flags & NDR_BUFFERS) {
843                 }
844                 ndr->flags = _flags_save_STRUCT;
845         }
846         return NDR_ERR_SUCCESS;
847 }
848
849 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r)
850 {
851         {
852                 uint32_t _flags_save_STRUCT = ndr->flags;
853                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
854                 if (ndr_flags & NDR_SCALARS) {
855                         NDR_CHECK(ndr_pull_align(ndr, 1));
856                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8));
857                 }
858                 if (ndr_flags & NDR_BUFFERS) {
859                 }
860                 ndr->flags = _flags_save_STRUCT;
861         }
862         return NDR_ERR_SUCCESS;
863 }
864
865 _PUBLIC_ void ndr_print_netr_LMSessionKey(struct ndr_print *ndr, const char *name, const struct netr_LMSessionKey *r)
866 {
867         ndr_print_struct(ndr, name, "netr_LMSessionKey");
868         {
869                 uint32_t _flags_save_STRUCT = ndr->flags;
870                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
871                 ndr->depth++;
872                 ndr_print_array_uint8(ndr, "key", r->key, 8);
873                 ndr->depth--;
874                 ndr->flags = _flags_save_STRUCT;
875         }
876 }
877
878 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
879 {
880         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
881         return NDR_ERR_SUCCESS;
882 }
883
884 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
885 {
886         uint32_t v;
887         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
888         *r = v;
889         return NDR_ERR_SUCCESS;
890 }
891
892 _PUBLIC_ void ndr_print_netr_UserFlags(struct ndr_print *ndr, const char *name, uint32_t r)
893 {
894         ndr_print_uint32(ndr, name, r);
895         ndr->depth++;
896         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST, r);
897         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION, r);
898         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT, r);
899         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD, r);
900         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS, r);
901         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY, r);
902         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT, r);
903         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED, r);
904         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS, r);
905         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED, r);
906         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON, r);
907         ndr->depth--;
908 }
909
910 static enum ndr_err_code ndr_push_netr_SamBaseInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_SamBaseInfo *r)
911 {
912         uint32_t cntr_unknown_0;
913         if (ndr_flags & NDR_SCALARS) {
914                 NDR_CHECK(ndr_push_align(ndr, 4));
915                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
916                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
917                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
918                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
919                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
920                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
921                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
922                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
923                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
924                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
925                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
926                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
927                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
928                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
929                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
930                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
931                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
932                 NDR_CHECK(ndr_push_netr_UserFlags(ndr, NDR_SCALARS, r->user_flags));
933                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
934                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
935                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
936                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
937                 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
938                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
939                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
940                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
941                 }
942         }
943         if (ndr_flags & NDR_BUFFERS) {
944                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
945                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
946                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
947                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
948                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
949                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
950                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
951                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
952                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
953                 if (r->domain_sid) {
954                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
955                 }
956         }
957         return NDR_ERR_SUCCESS;
958 }
959
960 static enum ndr_err_code ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_SamBaseInfo *r)
961 {
962         uint32_t _ptr_domain_sid;
963         TALLOC_CTX *_mem_save_domain_sid_0;
964         uint32_t cntr_unknown_0;
965         if (ndr_flags & NDR_SCALARS) {
966                 NDR_CHECK(ndr_pull_align(ndr, 4));
967                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
968                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
969                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
970                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
971                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
972                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
973                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
974                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
975                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
976                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
977                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
978                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
979                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
980                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
981                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
982                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
983                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
984                 NDR_CHECK(ndr_pull_netr_UserFlags(ndr, NDR_SCALARS, &r->user_flags));
985                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
986                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
987                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
988                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
989                 if (_ptr_domain_sid) {
990                         NDR_PULL_ALLOC(ndr, r->domain_sid);
991                 } else {
992                         r->domain_sid = NULL;
993                 }
994                 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
995                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
996                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
997                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
998                 }
999         }
1000         if (ndr_flags & NDR_BUFFERS) {
1001                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1002                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1003                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1004                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1005                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1006                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1007                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1008                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1009                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1010                 if (r->domain_sid) {
1011                         _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1012                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1013                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1014                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1015                 }
1016         }
1017         return NDR_ERR_SUCCESS;
1018 }
1019
1020 _PUBLIC_ void ndr_print_netr_SamBaseInfo(struct ndr_print *ndr, const char *name, const struct netr_SamBaseInfo *r)
1021 {
1022         uint32_t cntr_unknown_0;
1023         ndr_print_struct(ndr, name, "netr_SamBaseInfo");
1024         ndr->depth++;
1025         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
1026         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
1027         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
1028         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
1029         ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
1030         ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
1031         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
1032         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
1033         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
1034         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
1035         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
1036         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
1037         ndr_print_uint16(ndr, "logon_count", r->logon_count);
1038         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
1039         ndr_print_uint32(ndr, "rid", r->rid);
1040         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
1041         ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
1042         ndr_print_netr_UserFlags(ndr, "user_flags", r->user_flags);
1043         ndr_print_netr_UserSessionKey(ndr, "key", &r->key);
1044         ndr_print_lsa_StringLarge(ndr, "logon_server", &r->logon_server);
1045         ndr_print_lsa_StringLarge(ndr, "domain", &r->domain);
1046         ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
1047         ndr->depth++;
1048         if (r->domain_sid) {
1049                 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
1050         }
1051         ndr->depth--;
1052         ndr_print_netr_LMSessionKey(ndr, "LMSessKey", &r->LMSessKey);
1053         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
1054         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)7);
1055         ndr->depth++;
1056         for (cntr_unknown_0=0;cntr_unknown_0<7;cntr_unknown_0++) {
1057                 char *idx_0=NULL;
1058                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
1059                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
1060                         free(idx_0);
1061                 }
1062         }
1063         ndr->depth--;
1064         ndr->depth--;
1065 }
1066
1067 static enum ndr_err_code ndr_push_netr_SamInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo2 *r)
1068 {
1069         if (ndr_flags & NDR_SCALARS) {
1070                 NDR_CHECK(ndr_push_align(ndr, 4));
1071                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1072         }
1073         if (ndr_flags & NDR_BUFFERS) {
1074                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1075         }
1076         return NDR_ERR_SUCCESS;
1077 }
1078
1079 static enum ndr_err_code ndr_pull_netr_SamInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo2 *r)
1080 {
1081         if (ndr_flags & NDR_SCALARS) {
1082                 NDR_CHECK(ndr_pull_align(ndr, 4));
1083                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1084         }
1085         if (ndr_flags & NDR_BUFFERS) {
1086                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1087         }
1088         return NDR_ERR_SUCCESS;
1089 }
1090
1091 _PUBLIC_ void ndr_print_netr_SamInfo2(struct ndr_print *ndr, const char *name, const struct netr_SamInfo2 *r)
1092 {
1093         ndr_print_struct(ndr, name, "netr_SamInfo2");
1094         ndr->depth++;
1095         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1096         ndr->depth--;
1097 }
1098
1099 static enum ndr_err_code ndr_push_netr_SidAttr(struct ndr_push *ndr, int ndr_flags, const struct netr_SidAttr *r)
1100 {
1101         if (ndr_flags & NDR_SCALARS) {
1102                 NDR_CHECK(ndr_push_align(ndr, 4));
1103                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
1104                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
1105         }
1106         if (ndr_flags & NDR_BUFFERS) {
1107                 if (r->sid) {
1108                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1109                 }
1110         }
1111         return NDR_ERR_SUCCESS;
1112 }
1113
1114 static enum ndr_err_code ndr_pull_netr_SidAttr(struct ndr_pull *ndr, int ndr_flags, struct netr_SidAttr *r)
1115 {
1116         uint32_t _ptr_sid;
1117         TALLOC_CTX *_mem_save_sid_0;
1118         if (ndr_flags & NDR_SCALARS) {
1119                 NDR_CHECK(ndr_pull_align(ndr, 4));
1120                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
1121                 if (_ptr_sid) {
1122                         NDR_PULL_ALLOC(ndr, r->sid);
1123                 } else {
1124                         r->sid = NULL;
1125                 }
1126                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
1127         }
1128         if (ndr_flags & NDR_BUFFERS) {
1129                 if (r->sid) {
1130                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1131                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
1132                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1133                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
1134                 }
1135         }
1136         return NDR_ERR_SUCCESS;
1137 }
1138
1139 _PUBLIC_ void ndr_print_netr_SidAttr(struct ndr_print *ndr, const char *name, const struct netr_SidAttr *r)
1140 {
1141         ndr_print_struct(ndr, name, "netr_SidAttr");
1142         ndr->depth++;
1143         ndr_print_ptr(ndr, "sid", r->sid);
1144         ndr->depth++;
1145         if (r->sid) {
1146                 ndr_print_dom_sid2(ndr, "sid", r->sid);
1147         }
1148         ndr->depth--;
1149         ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
1150         ndr->depth--;
1151 }
1152
1153 _PUBLIC_ enum ndr_err_code ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo3 *r)
1154 {
1155         uint32_t cntr_sids_1;
1156         if (ndr_flags & NDR_SCALARS) {
1157                 NDR_CHECK(ndr_push_align(ndr, 4));
1158                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1159                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1160                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1161         }
1162         if (ndr_flags & NDR_BUFFERS) {
1163                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1164                 if (r->sids) {
1165                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1166                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1167                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1168                         }
1169                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1170                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1171                         }
1172                 }
1173         }
1174         return NDR_ERR_SUCCESS;
1175 }
1176
1177 _PUBLIC_ enum ndr_err_code ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r)
1178 {
1179         uint32_t _ptr_sids;
1180         uint32_t cntr_sids_1;
1181         TALLOC_CTX *_mem_save_sids_0;
1182         TALLOC_CTX *_mem_save_sids_1;
1183         if (ndr_flags & NDR_SCALARS) {
1184                 NDR_CHECK(ndr_pull_align(ndr, 4));
1185                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1186                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1187                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1188                 if (_ptr_sids) {
1189                         NDR_PULL_ALLOC(ndr, r->sids);
1190                 } else {
1191                         r->sids = NULL;
1192                 }
1193         }
1194         if (ndr_flags & NDR_BUFFERS) {
1195                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1196                 if (r->sids) {
1197                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1198                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1199                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1200                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1201                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1202                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1203                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1204                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1205                         }
1206                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1207                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1208                         }
1209                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1210                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1211                 }
1212                 if (r->sids) {
1213                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1214                 }
1215         }
1216         return NDR_ERR_SUCCESS;
1217 }
1218
1219 _PUBLIC_ void ndr_print_netr_SamInfo3(struct ndr_print *ndr, const char *name, const struct netr_SamInfo3 *r)
1220 {
1221         uint32_t cntr_sids_1;
1222         ndr_print_struct(ndr, name, "netr_SamInfo3");
1223         ndr->depth++;
1224         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1225         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1226         ndr_print_ptr(ndr, "sids", r->sids);
1227         ndr->depth++;
1228         if (r->sids) {
1229                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1230                 ndr->depth++;
1231                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1232                         char *idx_1=NULL;
1233                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1234                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1235                                 free(idx_1);
1236                         }
1237                 }
1238                 ndr->depth--;
1239         }
1240         ndr->depth--;
1241         ndr->depth--;
1242 }
1243
1244 static enum ndr_err_code ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo6 *r)
1245 {
1246         uint32_t cntr_sids_1;
1247         uint32_t cntr_unknown4_0;
1248         if (ndr_flags & NDR_SCALARS) {
1249                 NDR_CHECK(ndr_push_align(ndr, 4));
1250                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1251                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1252                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1253                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
1254                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principle));
1255                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1256                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4[cntr_unknown4_0]));
1257                 }
1258         }
1259         if (ndr_flags & NDR_BUFFERS) {
1260                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1261                 if (r->sids) {
1262                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1263                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1264                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1265                         }
1266                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1267                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1268                         }
1269                 }
1270                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1271                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1272         }
1273         return NDR_ERR_SUCCESS;
1274 }
1275
1276 static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r)
1277 {
1278         uint32_t _ptr_sids;
1279         uint32_t cntr_sids_1;
1280         TALLOC_CTX *_mem_save_sids_0;
1281         TALLOC_CTX *_mem_save_sids_1;
1282         uint32_t cntr_unknown4_0;
1283         if (ndr_flags & NDR_SCALARS) {
1284                 NDR_CHECK(ndr_pull_align(ndr, 4));
1285                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1286                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1287                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1288                 if (_ptr_sids) {
1289                         NDR_PULL_ALLOC(ndr, r->sids);
1290                 } else {
1291                         r->sids = NULL;
1292                 }
1293                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
1294                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle));
1295                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1296                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0]));
1297                 }
1298         }
1299         if (ndr_flags & NDR_BUFFERS) {
1300                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1301                 if (r->sids) {
1302                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1303                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1304                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1305                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1306                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1307                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1308                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1309                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1310                         }
1311                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1312                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1313                         }
1314                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1315                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1316                 }
1317                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1318                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1319                 if (r->sids) {
1320                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1321                 }
1322         }
1323         return NDR_ERR_SUCCESS;
1324 }
1325
1326 _PUBLIC_ void ndr_print_netr_SamInfo6(struct ndr_print *ndr, const char *name, const struct netr_SamInfo6 *r)
1327 {
1328         uint32_t cntr_sids_1;
1329         uint32_t cntr_unknown4_0;
1330         ndr_print_struct(ndr, name, "netr_SamInfo6");
1331         ndr->depth++;
1332         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1333         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1334         ndr_print_ptr(ndr, "sids", r->sids);
1335         ndr->depth++;
1336         if (r->sids) {
1337                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1338                 ndr->depth++;
1339                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1340                         char *idx_1=NULL;
1341                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1342                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1343                                 free(idx_1);
1344                         }
1345                 }
1346                 ndr->depth--;
1347         }
1348         ndr->depth--;
1349         ndr_print_lsa_String(ndr, "forest", &r->forest);
1350         ndr_print_lsa_String(ndr, "principle", &r->principle);
1351         ndr->print(ndr, "%s: ARRAY(%d)", "unknown4", (int)20);
1352         ndr->depth++;
1353         for (cntr_unknown4_0=0;cntr_unknown4_0<20;cntr_unknown4_0++) {
1354                 char *idx_0=NULL;
1355                 if (asprintf(&idx_0, "[%d]", cntr_unknown4_0) != -1) {
1356                         ndr_print_uint32(ndr, "unknown4", r->unknown4[cntr_unknown4_0]);
1357                         free(idx_0);
1358                 }
1359         }
1360         ndr->depth--;
1361         ndr->depth--;
1362 }
1363
1364 static enum ndr_err_code ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PacInfo *r)
1365 {
1366         uint32_t cntr_expansionroom_0;
1367         if (ndr_flags & NDR_SCALARS) {
1368                 NDR_CHECK(ndr_push_align(ndr, 4));
1369                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1370                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1371                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1372                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1373                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1374                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1375                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth));
1376                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1377                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1378                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->expansionroom[cntr_expansionroom_0]));
1379                 }
1380                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1381                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1382                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1383                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1384         }
1385         if (ndr_flags & NDR_BUFFERS) {
1386                 if (r->pac) {
1387                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1388                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pac, r->pac_size));
1389                 }
1390                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1391                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1392                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1393                 if (r->auth) {
1394                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1395                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->auth, r->auth_size));
1396                 }
1397                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1398                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1399                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1400                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1401         }
1402         return NDR_ERR_SUCCESS;
1403 }
1404
1405 static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r)
1406 {
1407         uint32_t _ptr_pac;
1408         TALLOC_CTX *_mem_save_pac_0;
1409         uint32_t _ptr_auth;
1410         TALLOC_CTX *_mem_save_auth_0;
1411         uint32_t cntr_expansionroom_0;
1412         if (ndr_flags & NDR_SCALARS) {
1413                 NDR_CHECK(ndr_pull_align(ndr, 4));
1414                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pac_size));
1415                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1416                 if (_ptr_pac) {
1417                         NDR_PULL_ALLOC(ndr, r->pac);
1418                 } else {
1419                         r->pac = NULL;
1420                 }
1421                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1422                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1423                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1424                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_size));
1425                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_auth));
1426                 if (_ptr_auth) {
1427                         NDR_PULL_ALLOC(ndr, r->auth);
1428                 } else {
1429                         r->auth = NULL;
1430                 }
1431                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1432                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1433                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0]));
1434                 }
1435                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1436                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1437                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1438                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1439         }
1440         if (ndr_flags & NDR_BUFFERS) {
1441                 if (r->pac) {
1442                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1443                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1444                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pac));
1445                         NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac));
1446                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac)));
1447                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1448                 }
1449                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1450                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1451                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1452                 if (r->auth) {
1453                         _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr);
1454                         NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0);
1455                         NDR_CHECK(ndr_pull_array_size(ndr, &r->auth));
1456                         NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth));
1457                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth)));
1458                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0);
1459                 }
1460                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1461                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1462                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1463                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1464                 if (r->pac) {
1465                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pac, r->pac_size));
1466                 }
1467                 if (r->auth) {
1468                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->auth, r->auth_size));
1469                 }
1470         }
1471         return NDR_ERR_SUCCESS;
1472 }
1473
1474 _PUBLIC_ void ndr_print_netr_PacInfo(struct ndr_print *ndr, const char *name, const struct netr_PacInfo *r)
1475 {
1476         uint32_t cntr_expansionroom_0;
1477         ndr_print_struct(ndr, name, "netr_PacInfo");
1478         ndr->depth++;
1479         ndr_print_uint32(ndr, "pac_size", r->pac_size);
1480         ndr_print_ptr(ndr, "pac", r->pac);
1481         ndr->depth++;
1482         if (r->pac) {
1483                 ndr_print_array_uint8(ndr, "pac", r->pac, r->pac_size);
1484         }
1485         ndr->depth--;
1486         ndr_print_lsa_String(ndr, "logon_domain", &r->logon_domain);
1487         ndr_print_lsa_String(ndr, "logon_server", &r->logon_server);
1488         ndr_print_lsa_String(ndr, "principal_name", &r->principal_name);
1489         ndr_print_uint32(ndr, "auth_size", r->auth_size);
1490         ndr_print_ptr(ndr, "auth", r->auth);
1491         ndr->depth++;
1492         if (r->auth) {
1493                 ndr_print_array_uint8(ndr, "auth", r->auth, r->auth_size);
1494         }
1495         ndr->depth--;
1496         ndr_print_netr_UserSessionKey(ndr, "user_session_key", &r->user_session_key);
1497         ndr->print(ndr, "%s: ARRAY(%d)", "expansionroom", (int)10);
1498         ndr->depth++;
1499         for (cntr_expansionroom_0=0;cntr_expansionroom_0<10;cntr_expansionroom_0++) {
1500                 char *idx_0=NULL;
1501                 if (asprintf(&idx_0, "[%d]", cntr_expansionroom_0) != -1) {
1502                         ndr_print_uint32(ndr, "expansionroom", r->expansionroom[cntr_expansionroom_0]);
1503                         free(idx_0);
1504                 }
1505         }
1506         ndr->depth--;
1507         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1508         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1509         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1510         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1511         ndr->depth--;
1512 }
1513
1514 _PUBLIC_ enum ndr_err_code ndr_push_netr_Validation(struct ndr_push *ndr, int ndr_flags, const union netr_Validation *r)
1515 {
1516         if (ndr_flags & NDR_SCALARS) {
1517                 int level = ndr_push_get_switch_value(ndr, r);
1518                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
1519                 switch (level) {
1520                         case 2: {
1521                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam2));
1522                         break; }
1523
1524                         case 3: {
1525                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam3));
1526                         break; }
1527
1528                         case 4: {
1529                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1530                         break; }
1531
1532                         case 5: {
1533                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1534                         break; }
1535
1536                         case 6: {
1537                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam6));
1538                         break; }
1539
1540                         default:
1541                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1542                 }
1543         }
1544         if (ndr_flags & NDR_BUFFERS) {
1545                 int level = ndr_push_get_switch_value(ndr, r);
1546                 switch (level) {
1547                         case 2:
1548                                 if (r->sam2) {
1549                                         NDR_CHECK(ndr_push_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1550                                 }
1551                         break;
1552
1553                         case 3:
1554                                 if (r->sam3) {
1555                                         NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1556                                 }
1557                         break;
1558
1559                         case 4:
1560                                 if (r->pac) {
1561                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1562                                 }
1563                         break;
1564
1565                         case 5:
1566                                 if (r->pac) {
1567                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1568                                 }
1569                         break;
1570
1571                         case 6:
1572                                 if (r->sam6) {
1573                                         NDR_CHECK(ndr_push_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1574                                 }
1575                         break;
1576
1577                         default:
1578                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1579                 }
1580         }
1581         return NDR_ERR_SUCCESS;
1582 }
1583
1584 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int ndr_flags, union netr_Validation *r)
1585 {
1586         int level;
1587         uint16_t _level;
1588         TALLOC_CTX *_mem_save_sam2_0;
1589         TALLOC_CTX *_mem_save_sam3_0;
1590         TALLOC_CTX *_mem_save_pac_0;
1591         TALLOC_CTX *_mem_save_sam6_0;
1592         level = ndr_pull_get_switch_value(ndr, r);
1593         if (ndr_flags & NDR_SCALARS) {
1594                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1595                 if (_level != level) {
1596                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1597                 }
1598                 switch (level) {
1599                         case 2: {
1600                                 uint32_t _ptr_sam2;
1601                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2));
1602                                 if (_ptr_sam2) {
1603                                         NDR_PULL_ALLOC(ndr, r->sam2);
1604                                 } else {
1605                                         r->sam2 = NULL;
1606                                 }
1607                         break; }
1608
1609                         case 3: {
1610                                 uint32_t _ptr_sam3;
1611                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3));
1612                                 if (_ptr_sam3) {
1613                                         NDR_PULL_ALLOC(ndr, r->sam3);
1614                                 } else {
1615                                         r->sam3 = NULL;
1616                                 }
1617                         break; }
1618
1619                         case 4: {
1620                                 uint32_t _ptr_pac;
1621                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1622                                 if (_ptr_pac) {
1623                                         NDR_PULL_ALLOC(ndr, r->pac);
1624                                 } else {
1625                                         r->pac = NULL;
1626                                 }
1627                         break; }
1628
1629                         case 5: {
1630                                 uint32_t _ptr_pac;
1631                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1632                                 if (_ptr_pac) {
1633                                         NDR_PULL_ALLOC(ndr, r->pac);
1634                                 } else {
1635                                         r->pac = NULL;
1636                                 }
1637                         break; }
1638
1639                         case 6: {
1640                                 uint32_t _ptr_sam6;
1641                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6));
1642                                 if (_ptr_sam6) {
1643                                         NDR_PULL_ALLOC(ndr, r->sam6);
1644                                 } else {
1645                                         r->sam6 = NULL;
1646                                 }
1647                         break; }
1648
1649                         default:
1650                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1651                 }
1652         }
1653         if (ndr_flags & NDR_BUFFERS) {
1654                 switch (level) {
1655                         case 2:
1656                                 if (r->sam2) {
1657                                         _mem_save_sam2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1658                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam2, 0);
1659                                         NDR_CHECK(ndr_pull_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1660                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam2_0, 0);
1661                                 }
1662                         break;
1663
1664                         case 3:
1665                                 if (r->sam3) {
1666                                         _mem_save_sam3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1667                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam3, 0);
1668                                         NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1669                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam3_0, 0);
1670                                 }
1671                         break;
1672
1673                         case 4:
1674                                 if (r->pac) {
1675                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1676                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1677                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1678                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1679                                 }
1680                         break;
1681
1682                         case 5:
1683                                 if (r->pac) {
1684                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1685                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1686                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1687                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1688                                 }
1689                         break;
1690
1691                         case 6:
1692                                 if (r->sam6) {
1693                                         _mem_save_sam6_0 = NDR_PULL_GET_MEM_CTX(ndr);
1694                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam6, 0);
1695                                         NDR_CHECK(ndr_pull_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1696                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam6_0, 0);
1697                                 }
1698                         break;
1699
1700                         default:
1701                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1702                 }
1703         }
1704         return NDR_ERR_SUCCESS;
1705 }
1706
1707 _PUBLIC_ void ndr_print_netr_Validation(struct ndr_print *ndr, const char *name, const union netr_Validation *r)
1708 {
1709         int level;
1710         level = ndr_print_get_switch_value(ndr, r);
1711         ndr_print_union(ndr, name, level, "netr_Validation");
1712         switch (level) {
1713                 case 2:
1714                         ndr_print_ptr(ndr, "sam2", r->sam2);
1715                         ndr->depth++;
1716                         if (r->sam2) {
1717                                 ndr_print_netr_SamInfo2(ndr, "sam2", r->sam2);
1718                         }
1719                         ndr->depth--;
1720                 break;
1721
1722                 case 3:
1723                         ndr_print_ptr(ndr, "sam3", r->sam3);
1724                         ndr->depth++;
1725                         if (r->sam3) {
1726                                 ndr_print_netr_SamInfo3(ndr, "sam3", r->sam3);
1727                         }
1728                         ndr->depth--;
1729                 break;
1730
1731                 case 4:
1732                         ndr_print_ptr(ndr, "pac", r->pac);
1733                         ndr->depth++;
1734                         if (r->pac) {
1735                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1736                         }
1737                         ndr->depth--;
1738                 break;
1739
1740                 case 5:
1741                         ndr_print_ptr(ndr, "pac", r->pac);
1742                         ndr->depth++;
1743                         if (r->pac) {
1744                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1745                         }
1746                         ndr->depth--;
1747                 break;
1748
1749                 case 6:
1750                         ndr_print_ptr(ndr, "sam6", r->sam6);
1751                         ndr->depth++;
1752                         if (r->sam6) {
1753                                 ndr_print_netr_SamInfo6(ndr, "sam6", r->sam6);
1754                         }
1755                         ndr->depth--;
1756                 break;
1757
1758                 default:
1759                         ndr_print_bad_level(ndr, name, level);
1760         }
1761 }
1762
1763 _PUBLIC_ enum ndr_err_code ndr_push_netr_Credential(struct ndr_push *ndr, int ndr_flags, const struct netr_Credential *r)
1764 {
1765         {
1766                 uint32_t _flags_save_STRUCT = ndr->flags;
1767                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1768                 if (ndr_flags & NDR_SCALARS) {
1769                         NDR_CHECK(ndr_push_align(ndr, 1));
1770                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1771                 }
1772                 if (ndr_flags & NDR_BUFFERS) {
1773                 }
1774                 ndr->flags = _flags_save_STRUCT;
1775         }
1776         return NDR_ERR_SUCCESS;
1777 }
1778
1779 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r)
1780 {
1781         {
1782                 uint32_t _flags_save_STRUCT = ndr->flags;
1783                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1784                 if (ndr_flags & NDR_SCALARS) {
1785                         NDR_CHECK(ndr_pull_align(ndr, 1));
1786                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1787                 }
1788                 if (ndr_flags & NDR_BUFFERS) {
1789                 }
1790                 ndr->flags = _flags_save_STRUCT;
1791         }
1792         return NDR_ERR_SUCCESS;
1793 }
1794
1795 _PUBLIC_ void ndr_print_netr_Credential(struct ndr_print *ndr, const char *name, const struct netr_Credential *r)
1796 {
1797         ndr_print_struct(ndr, name, "netr_Credential");
1798         {
1799                 uint32_t _flags_save_STRUCT = ndr->flags;
1800                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1801                 ndr->depth++;
1802                 ndr_print_array_uint8(ndr, "data", r->data, 8);
1803                 ndr->depth--;
1804                 ndr->flags = _flags_save_STRUCT;
1805         }
1806 }
1807
1808 _PUBLIC_ enum ndr_err_code ndr_push_netr_Authenticator(struct ndr_push *ndr, int ndr_flags, const struct netr_Authenticator *r)
1809 {
1810         if (ndr_flags & NDR_SCALARS) {
1811                 NDR_CHECK(ndr_push_align(ndr, 4));
1812                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1813                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
1814         }
1815         if (ndr_flags & NDR_BUFFERS) {
1816         }
1817         return NDR_ERR_SUCCESS;
1818 }
1819
1820 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Authenticator(struct ndr_pull *ndr, int ndr_flags, struct netr_Authenticator *r)
1821 {
1822         if (ndr_flags & NDR_SCALARS) {
1823                 NDR_CHECK(ndr_pull_align(ndr, 4));
1824                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1825                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
1826         }
1827         if (ndr_flags & NDR_BUFFERS) {
1828         }
1829         return NDR_ERR_SUCCESS;
1830 }
1831
1832 _PUBLIC_ void ndr_print_netr_Authenticator(struct ndr_print *ndr, const char *name, const struct netr_Authenticator *r)
1833 {
1834         ndr_print_struct(ndr, name, "netr_Authenticator");
1835         ndr->depth++;
1836         ndr_print_netr_Credential(ndr, "cred", &r->cred);
1837         ndr_print_time_t(ndr, "timestamp", r->timestamp);
1838         ndr->depth--;
1839 }
1840
1841 static enum ndr_err_code ndr_push_netr_LogonLevel(struct ndr_push *ndr, int ndr_flags, enum netr_LogonLevel r)
1842 {
1843         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
1844         return NDR_ERR_SUCCESS;
1845 }
1846
1847 static enum ndr_err_code ndr_pull_netr_LogonLevel(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonLevel *r)
1848 {
1849         uint16_t v;
1850         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
1851         *r = v;
1852         return NDR_ERR_SUCCESS;
1853 }
1854
1855 _PUBLIC_ void ndr_print_netr_LogonLevel(struct ndr_print *ndr, const char *name, enum netr_LogonLevel r)
1856 {
1857         const char *val = NULL;
1858
1859         switch (r) {
1860                 case INTERACTIVE_LOGON_TYPE: val = "INTERACTIVE_LOGON_TYPE"; break;
1861                 case NET_LOGON_TYPE: val = "NET_LOGON_TYPE"; break;
1862         }
1863         ndr_print_enum(ndr, name, "ENUM", val, r);
1864 }
1865
1866 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)
1867 {
1868         if (ndr_flags & NDR_SCALARS) {
1869                 NDR_CHECK(ndr_push_align(ndr, 4));
1870                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
1871                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1872                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1873                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1874                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1875                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
1876                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
1877                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
1878                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
1879         }
1880         if (ndr_flags & NDR_BUFFERS) {
1881                 if (r->account_name) {
1882                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1883                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1884                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1885                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
1886                 }
1887                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1888                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1889                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1890                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1891         }
1892         return NDR_ERR_SUCCESS;
1893 }
1894
1895 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r)
1896 {
1897         uint32_t _ptr_account_name;
1898         TALLOC_CTX *_mem_save_account_name_0;
1899         if (ndr_flags & NDR_SCALARS) {
1900                 NDR_CHECK(ndr_pull_align(ndr, 4));
1901                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
1902                 if (_ptr_account_name) {
1903                         NDR_PULL_ALLOC(ndr, r->account_name);
1904                 } else {
1905                         r->account_name = NULL;
1906                 }
1907                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1908                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1909                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1910                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1911                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
1912                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
1913                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
1914                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
1915         }
1916         if (ndr_flags & NDR_BUFFERS) {
1917                 if (r->account_name) {
1918                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1919                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
1920                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
1921                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
1922                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
1923                                 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));
1924                         }
1925                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
1926                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
1927                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
1928                 }
1929                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1930                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1931                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1932                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1933         }
1934         return NDR_ERR_SUCCESS;
1935 }
1936
1937 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_USER *r)
1938 {
1939         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_USER");
1940         ndr->depth++;
1941         ndr_print_ptr(ndr, "account_name", r->account_name);
1942         ndr->depth++;
1943         if (r->account_name) {
1944                 ndr_print_string(ndr, "account_name", r->account_name);
1945         }
1946         ndr->depth--;
1947         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1948         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1949         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1950         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1951         ndr_print_uint32(ndr, "unknown5", r->unknown5);
1952         ndr_print_uint32(ndr, "unknown6", r->unknown6);
1953         ndr_print_uint32(ndr, "unknown7", r->unknown7);
1954         ndr_print_uint32(ndr, "unknown8", r->unknown8);
1955         ndr->depth--;
1956 }
1957
1958 static enum ndr_err_code ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY16 *r)
1959 {
1960         if (ndr_flags & NDR_SCALARS) {
1961                 NDR_CHECK(ndr_push_align(ndr, 4));
1962                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1963                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1964                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
1965                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd));
1966         }
1967         if (ndr_flags & NDR_BUFFERS) {
1968         }
1969         return NDR_ERR_SUCCESS;
1970 }
1971
1972 static enum ndr_err_code ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY16 *r)
1973 {
1974         if (ndr_flags & NDR_SCALARS) {
1975                 NDR_CHECK(ndr_pull_align(ndr, 4));
1976                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
1977                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1978                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
1979                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd));
1980         }
1981         if (ndr_flags & NDR_BUFFERS) {
1982         }
1983         return NDR_ERR_SUCCESS;
1984 }
1985
1986 _PUBLIC_ void ndr_print_netr_USER_KEY16(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY16 *r)
1987 {
1988         ndr_print_struct(ndr, name, "netr_USER_KEY16");
1989         ndr->depth++;
1990         ndr_print_uint16(ndr, "length", r->length);
1991         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
1992         ndr_print_uint32(ndr, "flags", r->flags);
1993         ndr_print_samr_Password(ndr, "pwd", &r->pwd);
1994         ndr->depth--;
1995 }
1996
1997 static enum ndr_err_code ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordHistory *r)
1998 {
1999         if (ndr_flags & NDR_SCALARS) {
2000                 NDR_CHECK(ndr_push_align(ndr, 4));
2001                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2002                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2003                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_flags));
2004                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2005                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2006                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lm_flags));
2007                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2008                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2009         }
2010         if (ndr_flags & NDR_BUFFERS) {
2011         }
2012         return NDR_ERR_SUCCESS;
2013 }
2014
2015 static enum ndr_err_code ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *r)
2016 {
2017         if (ndr_flags & NDR_SCALARS) {
2018                 NDR_CHECK(ndr_pull_align(ndr, 4));
2019                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_length));
2020                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_size));
2021                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_flags));
2022                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length));
2023                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size));
2024                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags));
2025                 NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length);
2026                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2027                 NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length);
2028                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2029         }
2030         if (ndr_flags & NDR_BUFFERS) {
2031         }
2032         return NDR_ERR_SUCCESS;
2033 }
2034
2035 _PUBLIC_ void ndr_print_netr_PasswordHistory(struct ndr_print *ndr, const char *name, const struct netr_PasswordHistory *r)
2036 {
2037         ndr_print_struct(ndr, name, "netr_PasswordHistory");
2038         ndr->depth++;
2039         ndr_print_uint16(ndr, "nt_length", r->nt_length);
2040         ndr_print_uint16(ndr, "nt_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->nt_length:r->nt_size);
2041         ndr_print_uint32(ndr, "nt_flags", r->nt_flags);
2042         ndr_print_uint16(ndr, "lm_length", r->lm_length);
2043         ndr_print_uint16(ndr, "lm_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->lm_length:r->lm_size);
2044         ndr_print_uint32(ndr, "lm_flags", r->lm_flags);
2045         ndr_print_array_uint8(ndr, "nt_history", r->nt_history, r->nt_length);
2046         ndr_print_array_uint8(ndr, "lm_history", r->lm_history, r->lm_length);
2047         ndr->depth--;
2048 }
2049
2050 static enum ndr_err_code ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS2 *r)
2051 {
2052         if (ndr_flags & NDR_SCALARS) {
2053                 NDR_CHECK(ndr_push_align(ndr, 4));
2054                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2055                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2056                 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2057         }
2058         if (ndr_flags & NDR_BUFFERS) {
2059         }
2060         return NDR_ERR_SUCCESS;
2061 }
2062
2063 static enum ndr_err_code ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS2 *r)
2064 {
2065         if (ndr_flags & NDR_SCALARS) {
2066                 NDR_CHECK(ndr_pull_align(ndr, 4));
2067                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2068                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2069                 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2070         }
2071         if (ndr_flags & NDR_BUFFERS) {
2072         }
2073         return NDR_ERR_SUCCESS;
2074 }
2075
2076 _PUBLIC_ void ndr_print_netr_USER_KEYS2(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS2 *r)
2077 {
2078         ndr_print_struct(ndr, name, "netr_USER_KEYS2");
2079         ndr->depth++;
2080         ndr_print_netr_USER_KEY16(ndr, "lmpassword", &r->lmpassword);
2081         ndr_print_netr_USER_KEY16(ndr, "ntpassword", &r->ntpassword);
2082         ndr_print_netr_PasswordHistory(ndr, "history", &r->history);
2083         ndr->depth--;
2084 }
2085
2086 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)
2087 {
2088         if (ndr_flags & NDR_SCALARS) {
2089                 NDR_CHECK(ndr_push_align(ndr, 4));
2090                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2091         }
2092         if (ndr_flags & NDR_BUFFERS) {
2093         }
2094         return NDR_ERR_SUCCESS;
2095 }
2096
2097 static enum ndr_err_code ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY_UNION *r)
2098 {
2099         if (ndr_flags & NDR_SCALARS) {
2100                 NDR_CHECK(ndr_pull_align(ndr, 4));
2101                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2102         }
2103         if (ndr_flags & NDR_BUFFERS) {
2104         }
2105         return NDR_ERR_SUCCESS;
2106 }
2107
2108 _PUBLIC_ void ndr_print_netr_USER_KEY_UNION(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY_UNION *r)
2109 {
2110         ndr_print_struct(ndr, name, "netr_USER_KEY_UNION");
2111         ndr->depth++;
2112         ndr_print_netr_USER_KEYS2(ndr, "keys2", &r->keys2);
2113         ndr->depth--;
2114 }
2115
2116 _PUBLIC_ enum ndr_err_code ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS *r)
2117 {
2118         if (ndr_flags & NDR_SCALARS) {
2119                 NDR_CHECK(ndr_push_align(ndr, 4));
2120                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2121                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2122         }
2123         if (ndr_flags & NDR_BUFFERS) {
2124         }
2125         return NDR_ERR_SUCCESS;
2126 }
2127
2128 _PUBLIC_ enum ndr_err_code ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS *r)
2129 {
2130         if (ndr_flags & NDR_SCALARS) {
2131                 NDR_CHECK(ndr_pull_align(ndr, 4));
2132                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2133                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2134         }
2135         if (ndr_flags & NDR_BUFFERS) {
2136         }
2137         return NDR_ERR_SUCCESS;
2138 }
2139
2140 _PUBLIC_ void ndr_print_netr_USER_KEYS(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS *r)
2141 {
2142         ndr_print_struct(ndr, name, "netr_USER_KEYS");
2143         ndr->depth++;
2144         ndr_print_uint32(ndr, "version", r->version);
2145         ndr_print_netr_USER_KEY_UNION(ndr, "keys", &r->keys);
2146         ndr->depth--;
2147 }
2148
2149 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)
2150 {
2151         if (ndr_flags & NDR_SCALARS) {
2152                 NDR_CHECK(ndr_push_align(ndr, 4));
2153                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->SensitiveDataFlag));
2154                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2155                 {
2156                         uint32_t _flags_save_uint8 = ndr->flags;
2157                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2158                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->SensitiveData));
2159                         ndr->flags = _flags_save_uint8;
2160                 }
2161         }
2162         if (ndr_flags & NDR_BUFFERS) {
2163                 {
2164                         uint32_t _flags_save_uint8 = ndr->flags;
2165                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2166                         if (r->SensitiveData) {
2167                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2168                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, r->DataLength));
2169                         }
2170                         ndr->flags = _flags_save_uint8;
2171                 }
2172         }
2173         return NDR_ERR_SUCCESS;
2174 }
2175
2176 static enum ndr_err_code ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r)
2177 {
2178         uint32_t _ptr_SensitiveData;
2179         TALLOC_CTX *_mem_save_SensitiveData_0;
2180         if (ndr_flags & NDR_SCALARS) {
2181                 NDR_CHECK(ndr_pull_align(ndr, 4));
2182                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->SensitiveDataFlag));
2183                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataLength));
2184                 {
2185                         uint32_t _flags_save_uint8 = ndr->flags;
2186                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2187                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_SensitiveData));
2188                         if (_ptr_SensitiveData) {
2189                                 NDR_PULL_ALLOC(ndr, r->SensitiveData);
2190                         } else {
2191                                 r->SensitiveData = NULL;
2192                         }
2193                         ndr->flags = _flags_save_uint8;
2194                 }
2195         }
2196         if (ndr_flags & NDR_BUFFERS) {
2197                 {
2198                         uint32_t _flags_save_uint8 = ndr->flags;
2199                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2200                         if (r->SensitiveData) {
2201                                 _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr);
2202                                 NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0);
2203                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData));
2204                                 NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData));
2205                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)));
2206                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0);
2207                         }
2208                         ndr->flags = _flags_save_uint8;
2209                 }
2210                 if (r->SensitiveData) {
2211                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->SensitiveData, r->DataLength));
2212                 }
2213         }
2214         return NDR_ERR_SUCCESS;
2215 }
2216
2217 _PUBLIC_ void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print *ndr, const char *name, const struct netr_USER_PRIVATE_INFO *r)
2218 {
2219         ndr_print_struct(ndr, name, "netr_USER_PRIVATE_INFO");
2220         ndr->depth++;
2221         ndr_print_uint8(ndr, "SensitiveDataFlag", r->SensitiveDataFlag);
2222         ndr_print_uint32(ndr, "DataLength", r->DataLength);
2223         ndr_print_ptr(ndr, "SensitiveData", r->SensitiveData);
2224         ndr->depth++;
2225         if (r->SensitiveData) {
2226                 ndr_print_array_uint8(ndr, "SensitiveData", r->SensitiveData, r->DataLength);
2227         }
2228         ndr->depth--;
2229         ndr->depth--;
2230 }
2231
2232 static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_USER *r)
2233 {
2234         if (ndr_flags & NDR_SCALARS) {
2235                 NDR_CHECK(ndr_push_align(ndr, 4));
2236                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2237                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2238                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2239                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2240                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2241                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2242                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2243                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2244                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2245                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2246                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2247                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2248                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2249                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2250                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2251                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2252                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2253                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2254                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2255                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_present));
2256                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present));
2257                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2258                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2259                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2260                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2261                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2262                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2263                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2264                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2265                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2266                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2267                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2268                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2269                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2270                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2271                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2272                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2273         }
2274         if (ndr_flags & NDR_BUFFERS) {
2275                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2276                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2277                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2278                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2279                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2280                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2281                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2282                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2283                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2284                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2285                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2286                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2287                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2288                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2289                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2290                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2291         }
2292         return NDR_ERR_SUCCESS;
2293 }
2294
2295 static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_USER *r)
2296 {
2297         if (ndr_flags & NDR_SCALARS) {
2298                 NDR_CHECK(ndr_pull_align(ndr, 4));
2299                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2300                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2301                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2302                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2303                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2304                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2305                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2306                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2307                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2308                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2309                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2310                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2311                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2312                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2313                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2314                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2315                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2316                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2317                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2318                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_present));
2319                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present));
2320                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
2321                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2322                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2323                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
2324                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
2325                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2326                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2327                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2328                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2329                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2330                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2331                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2332                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2333                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2334                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2335                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2336         }
2337         if (ndr_flags & NDR_BUFFERS) {
2338                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2339                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2340                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2341                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2342                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2343                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2344                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2345                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2346                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2347                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2348                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2349                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2350                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2351                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2352                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2353                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2354         }
2355         return NDR_ERR_SUCCESS;
2356 }
2357
2358 _PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_USER *r)
2359 {
2360         ndr_print_struct(ndr, name, "netr_DELTA_USER");
2361         ndr->depth++;
2362         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2363         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2364         ndr_print_uint32(ndr, "rid", r->rid);
2365         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2366         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2367         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2368         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2369         ndr_print_lsa_String(ndr, "description", &r->description);
2370         ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2371         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2372         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2373         ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2374         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2375         ndr_print_uint16(ndr, "logon_count", r->logon_count);
2376         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2377         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2378         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2379         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
2380         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
2381         ndr_print_uint8(ndr, "nt_password_present", r->nt_password_present);
2382         ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present);
2383         ndr_print_uint8(ndr, "password_expired", r->password_expired);
2384         ndr_print_lsa_String(ndr, "comment", &r->comment);
2385         ndr_print_lsa_String(ndr, "parameters", &r->parameters);
2386         ndr_print_uint16(ndr, "country_code", r->country_code);
2387         ndr_print_uint16(ndr, "code_page", r->code_page);
2388         ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info);
2389         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2390         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2391         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2392         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2393         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2394         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2395         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2396         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2397         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2398         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2399         ndr->depth--;
2400 }
2401
2402 static enum ndr_err_code ndr_push_netr_DELTA_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DOMAIN *r)
2403 {
2404         if (ndr_flags & NDR_SCALARS) {
2405                 NDR_CHECK(ndr_push_align(ndr, 4));
2406                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2407                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2408                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->force_logoff_time));
2409                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
2410                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
2411                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
2412                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
2413                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2414                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
2415                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2416                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2417                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2418                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2419                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2420                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2421                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_to_chgpass));
2422                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2423                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2424                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2425         }
2426         if (ndr_flags & NDR_BUFFERS) {
2427                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2428                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2429                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2430                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2431                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2432                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2433                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2434         }
2435         return NDR_ERR_SUCCESS;
2436 }
2437
2438 static enum ndr_err_code ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DOMAIN *r)
2439 {
2440         if (ndr_flags & NDR_SCALARS) {
2441                 NDR_CHECK(ndr_pull_align(ndr, 4));
2442                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2443                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2444                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->force_logoff_time));
2445                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
2446                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
2447                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
2448                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
2449                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
2450                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
2451                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2452                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2453                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2454                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2455                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2456                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2457                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_to_chgpass));
2458                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2459                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2460                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2461         }
2462         if (ndr_flags & NDR_BUFFERS) {
2463                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2464                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2465                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2466                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2467                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2468                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2469                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2470         }
2471         return NDR_ERR_SUCCESS;
2472 }
2473
2474 _PUBLIC_ void ndr_print_netr_DELTA_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DOMAIN *r)
2475 {
2476         ndr_print_struct(ndr, name, "netr_DELTA_DOMAIN");
2477         ndr->depth++;
2478         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
2479         ndr_print_lsa_String(ndr, "comment", &r->comment);
2480         ndr_print_dlong(ndr, "force_logoff_time", r->force_logoff_time);
2481         ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
2482         ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
2483         ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
2484         ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
2485         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
2486         ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
2487         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2488         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2489         ndr_print_lsa_BinaryString(ndr, "account_lockout", &r->account_lockout);
2490         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2491         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2492         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2493         ndr_print_uint32(ndr, "logon_to_chgpass", r->logon_to_chgpass);
2494         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2495         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2496         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2497         ndr->depth--;
2498 }
2499
2500 static enum ndr_err_code ndr_push_netr_DELTA_GROUP(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP *r)
2501 {
2502         if (ndr_flags & NDR_SCALARS) {
2503                 NDR_CHECK(ndr_push_align(ndr, 4));
2504                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2505                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2506                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
2507                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2508                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2509                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2510                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2511                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2512                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2513                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2514                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2515                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2516                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2517                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2518         }
2519         if (ndr_flags & NDR_BUFFERS) {
2520                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2521                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2522                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2523                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2524                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2525                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2526                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2527         }
2528         return NDR_ERR_SUCCESS;
2529 }
2530
2531 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP *r)
2532 {
2533         if (ndr_flags & NDR_SCALARS) {
2534                 NDR_CHECK(ndr_pull_align(ndr, 4));
2535                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2536                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2537                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
2538                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2539                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2540                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2541                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2542                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2543                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2544                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2545                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2546                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2547                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2548                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2549         }
2550         if (ndr_flags & NDR_BUFFERS) {
2551                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2552                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2553                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2554                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2555                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2556                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2557                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2558         }
2559         return NDR_ERR_SUCCESS;
2560 }
2561
2562 _PUBLIC_ void ndr_print_netr_DELTA_GROUP(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP *r)
2563 {
2564         ndr_print_struct(ndr, name, "netr_DELTA_GROUP");
2565         ndr->depth++;
2566         ndr_print_lsa_String(ndr, "group_name", &r->group_name);
2567         ndr_print_uint32(ndr, "rid", r->rid);
2568         ndr_print_uint32(ndr, "attributes", r->attributes);
2569         ndr_print_lsa_String(ndr, "description", &r->description);
2570         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2571         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2572         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2573         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2574         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2575         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2576         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2577         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2578         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2579         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2580         ndr->depth--;
2581 }
2582
2583 static enum ndr_err_code ndr_push_netr_DELTA_RENAME(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_RENAME *r)
2584 {
2585         if (ndr_flags & NDR_SCALARS) {
2586                 NDR_CHECK(ndr_push_align(ndr, 4));
2587                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2588                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2589                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2590                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2591                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2592                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2593                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2594                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2595                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2596                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2597         }
2598         if (ndr_flags & NDR_BUFFERS) {
2599                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2600                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2601                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2602                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2603                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2604                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2605         }
2606         return NDR_ERR_SUCCESS;
2607 }
2608
2609 static enum ndr_err_code ndr_pull_netr_DELTA_RENAME(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_RENAME *r)
2610 {
2611         if (ndr_flags & NDR_SCALARS) {
2612                 NDR_CHECK(ndr_pull_align(ndr, 4));
2613                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2614                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2615                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2616                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2617                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2618                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2619                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2620                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2621                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2622                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2623         }
2624         if (ndr_flags & NDR_BUFFERS) {
2625                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2626                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2627                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2628                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2629                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2630                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2631         }
2632         return NDR_ERR_SUCCESS;
2633 }
2634
2635 _PUBLIC_ void ndr_print_netr_DELTA_RENAME(struct ndr_print *ndr, const char *name, const struct netr_DELTA_RENAME *r)
2636 {
2637         ndr_print_struct(ndr, name, "netr_DELTA_RENAME");
2638         ndr->depth++;
2639         ndr_print_lsa_String(ndr, "OldName", &r->OldName);
2640         ndr_print_lsa_String(ndr, "NewName", &r->NewName);
2641         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2642         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2643         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2644         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2645         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2646         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2647         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2648         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2649         ndr->depth--;
2650 }
2651
2652 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)
2653 {
2654         uint32_t cntr_rids_1;
2655         uint32_t cntr_attribs_1;
2656         if (ndr_flags & NDR_SCALARS) {
2657                 NDR_CHECK(ndr_push_align(ndr, 4));
2658                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
2659                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribs));
2660                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2661                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2662                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2663                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2664                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2665         }
2666         if (ndr_flags & NDR_BUFFERS) {
2667                 if (r->rids) {
2668                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2669                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2670                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
2671                         }
2672                 }
2673                 if (r->attribs) {
2674                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2675                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2676                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribs[cntr_attribs_1]));
2677                         }
2678                 }
2679         }
2680         return NDR_ERR_SUCCESS;
2681 }
2682
2683 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r)
2684 {
2685         uint32_t _ptr_rids;
2686         uint32_t cntr_rids_1;
2687         TALLOC_CTX *_mem_save_rids_0;
2688         TALLOC_CTX *_mem_save_rids_1;
2689         uint32_t _ptr_attribs;
2690         uint32_t cntr_attribs_1;
2691         TALLOC_CTX *_mem_save_attribs_0;
2692         TALLOC_CTX *_mem_save_attribs_1;
2693         if (ndr_flags & NDR_SCALARS) {
2694                 NDR_CHECK(ndr_pull_align(ndr, 4));
2695                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
2696                 if (_ptr_rids) {
2697                         NDR_PULL_ALLOC(ndr, r->rids);
2698                 } else {
2699                         r->rids = NULL;
2700                 }
2701                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribs));
2702                 if (_ptr_attribs) {
2703                         NDR_PULL_ALLOC(ndr, r->attribs);
2704                 } else {
2705                         r->attribs = NULL;
2706                 }
2707                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
2708                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2709                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2710                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2711                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2712         }
2713         if (ndr_flags & NDR_BUFFERS) {
2714                 if (r->rids) {
2715                         _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
2716                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2717                         NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
2718                         NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
2719                         _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
2720                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2721                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2722                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
2723                         }
2724                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
2725                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
2726                 }
2727                 if (r->attribs) {
2728                         _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr);
2729                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2730                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs));
2731                         NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs));
2732                         _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr);
2733                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2734                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2735                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1]));
2736                         }
2737                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0);
2738                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_0, 0);
2739                 }
2740                 if (r->rids) {
2741                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
2742                 }
2743                 if (r->attribs) {
2744                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attribs, r->num_rids));
2745                 }
2746         }
2747         return NDR_ERR_SUCCESS;
2748 }
2749
2750 _PUBLIC_ void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP_MEMBER *r)
2751 {
2752         uint32_t cntr_rids_1;
2753         uint32_t cntr_attribs_1;
2754         ndr_print_struct(ndr, name, "netr_DELTA_GROUP_MEMBER");
2755         ndr->depth++;
2756         ndr_print_ptr(ndr, "rids", r->rids);
2757         ndr->depth++;
2758         if (r->rids) {
2759                 ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->num_rids);
2760                 ndr->depth++;
2761                 for (cntr_rids_1=0;cntr_rids_1<r->num_rids;cntr_rids_1++) {
2762                         char *idx_1=NULL;
2763                         if (asprintf(&idx_1, "[%d]", cntr_rids_1) != -1) {
2764                                 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
2765                                 free(idx_1);
2766                         }
2767                 }
2768                 ndr->depth--;
2769         }
2770         ndr->depth--;
2771         ndr_print_ptr(ndr, "attribs", r->attribs);
2772         ndr->depth++;
2773         if (r->attribs) {
2774                 ndr->print(ndr, "%s: ARRAY(%d)", "attribs", (int)r->num_rids);
2775                 ndr->depth++;
2776                 for (cntr_attribs_1=0;cntr_attribs_1<r->num_rids;cntr_attribs_1++) {
2777                         char *idx_1=NULL;
2778                         if (asprintf(&idx_1, "[%d]", cntr_attribs_1) != -1) {
2779                                 ndr_print_uint32(ndr, "attribs", r->attribs[cntr_attribs_1]);
2780                                 free(idx_1);
2781                         }
2782                 }
2783                 ndr->depth--;
2784         }
2785         ndr->depth--;
2786         ndr_print_uint32(ndr, "num_rids", r->num_rids);
2787         ndr_print_uint32(ndr, "unknown1", r->unknown1);
2788         ndr_print_uint32(ndr, "unknown2", r->unknown2);
2789         ndr_print_uint32(ndr, "unknown3", r->unknown3);
2790         ndr_print_uint32(ndr, "unknown4", r->unknown4);
2791         ndr->depth--;
2792 }
2793
2794 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS *r)
2795 {
2796         if (ndr_flags & NDR_SCALARS) {
2797                 NDR_CHECK(ndr_push_align(ndr, 4));
2798                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2799                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2800                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2801                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2802                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2803                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2804                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2805                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2806                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2807                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2808                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2809                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2810         }
2811         if (ndr_flags & NDR_BUFFERS) {
2812                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2813                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2814                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2815                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2816                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2817                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2818         }
2819         return NDR_ERR_SUCCESS;
2820 }
2821
2822 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS *r)
2823 {
2824         if (ndr_flags & NDR_SCALARS) {
2825                 NDR_CHECK(ndr_pull_align(ndr, 4));
2826                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2827                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2828                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2829                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2830                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2831                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2832                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2833                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2834                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2835                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2836                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2837                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2838         }
2839         if (ndr_flags & NDR_BUFFERS) {
2840                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2841                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2842                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2843                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2844                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2845                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2846         }
2847         return NDR_ERR_SUCCESS;
2848 }
2849
2850 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS *r)
2851 {
2852         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS");
2853         ndr->depth++;
2854         ndr_print_lsa_String(ndr, "alias_name", &r->alias_name);
2855         ndr_print_uint32(ndr, "rid", r->rid);
2856         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2857         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2858         ndr_print_lsa_String(ndr, "description", &r->description);
2859         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2860         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2861         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2862         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2863         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2864         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2865         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2866         ndr->depth--;
2867 }
2868
2869 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)
2870 {
2871         if (ndr_flags & NDR_SCALARS) {
2872                 NDR_CHECK(ndr_push_align(ndr, 4));
2873                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2874                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2875                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2876                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2877                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2878         }
2879         if (ndr_flags & NDR_BUFFERS) {
2880                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2881         }
2882         return NDR_ERR_SUCCESS;
2883 }
2884
2885 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS_MEMBER *r)
2886 {
2887         if (ndr_flags & NDR_SCALARS) {
2888                 NDR_CHECK(ndr_pull_align(ndr, 4));
2889                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2890                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2891                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2892                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2893                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2894         }
2895         if (ndr_flags & NDR_BUFFERS) {
2896                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2897         }
2898         return NDR_ERR_SUCCESS;
2899 }
2900
2901 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS_MEMBER *r)
2902 {
2903         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS_MEMBER");
2904         ndr->depth++;
2905         ndr_print_lsa_SidArray(ndr, "sids", &r->sids);
2906         ndr_print_uint32(ndr, "unknown1", r->unknown1);
2907         ndr_print_uint32(ndr, "unknown2", r->unknown2);
2908         ndr_print_uint32(ndr, "unknown3", r->unknown3);
2909         ndr_print_uint32(ndr, "unknown4", r->unknown4);
2910         ndr->depth--;
2911 }
2912
2913 static enum ndr_err_code ndr_push_netr_QUOTA_LIMITS(struct ndr_push *ndr, int ndr_flags, const struct netr_QUOTA_LIMITS *r)
2914 {
2915         if (ndr_flags & NDR_SCALARS) {
2916                 NDR_CHECK(ndr_push_align(ndr, 4));
2917                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagedpoollimit));
2918                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonpagedpoollimit));
2919                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minimumworkingsetsize));
2920                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maximumworkingsetsize));
2921                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagefilelimit));
2922                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timelimit));
2923         }
2924         if (ndr_flags & NDR_BUFFERS) {
2925         }
2926         return NDR_ERR_SUCCESS;
2927 }
2928
2929 static enum ndr_err_code ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull *ndr, int ndr_flags, struct netr_QUOTA_LIMITS *r)
2930 {
2931         if (ndr_flags & NDR_SCALARS) {
2932                 NDR_CHECK(ndr_pull_align(ndr, 4));
2933                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagedpoollimit));
2934                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonpagedpoollimit));
2935                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minimumworkingsetsize));
2936                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maximumworkingsetsize));
2937                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagefilelimit));
2938                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timelimit));
2939         }
2940         if (ndr_flags & NDR_BUFFERS) {
2941         }
2942         return NDR_ERR_SUCCESS;
2943 }
2944
2945 _PUBLIC_ void ndr_print_netr_QUOTA_LIMITS(struct ndr_print *ndr, const char *name, const struct netr_QUOTA_LIMITS *r)
2946 {
2947         ndr_print_struct(ndr, name, "netr_QUOTA_LIMITS");
2948         ndr->depth++;
2949         ndr_print_uint32(ndr, "pagedpoollimit", r->pagedpoollimit);
2950         ndr_print_uint32(ndr, "nonpagedpoollimit", r->nonpagedpoollimit);
2951         ndr_print_uint32(ndr, "minimumworkingsetsize", r->minimumworkingsetsize);
2952         ndr_print_uint32(ndr, "maximumworkingsetsize", r->maximumworkingsetsize);
2953         ndr_print_uint32(ndr, "pagefilelimit", r->pagefilelimit);
2954         ndr_print_NTTIME(ndr, "timelimit", r->timelimit);
2955         ndr->depth--;
2956 }
2957
2958 static enum ndr_err_code ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_POLICY *r)
2959 {
2960         uint32_t cntr_eventauditoptions_1;
2961         if (ndr_flags & NDR_SCALARS) {
2962                 NDR_CHECK(ndr_push_align(ndr, 4));
2963                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlogsize));
2964                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->auditretentionperiod));
2965                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auditingmode));
2966                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount));
2967                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->eventauditoptions));
2968                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
2969                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
2970                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
2971                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2972                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time));
2973                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2974                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2975                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2976                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2977                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2978                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2979                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2980                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2981                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2982                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2983         }
2984         if (ndr_flags & NDR_BUFFERS) {
2985                 if (r->eventauditoptions) {
2986                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount + 1));
2987                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
2988                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventauditoptions[cntr_eventauditoptions_1]));
2989                         }
2990                 }
2991                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
2992                 if (r->sid) {
2993                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
2994                 }
2995                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2996                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2997                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2998                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2999                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3000         }
3001         return NDR_ERR_SUCCESS;
3002 }
3003
3004 static enum ndr_err_code ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r)
3005 {
3006         uint32_t _ptr_eventauditoptions;
3007         uint32_t cntr_eventauditoptions_1;
3008         TALLOC_CTX *_mem_save_eventauditoptions_0;
3009         TALLOC_CTX *_mem_save_eventauditoptions_1;
3010         uint32_t _ptr_sid;
3011         TALLOC_CTX *_mem_save_sid_0;
3012         if (ndr_flags & NDR_SCALARS) {
3013                 NDR_CHECK(ndr_pull_align(ndr, 4));
3014                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlogsize));
3015                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->auditretentionperiod));
3016                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auditingmode));
3017                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxauditeventcount));
3018                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eventauditoptions));
3019                 if (_ptr_eventauditoptions) {
3020                         NDR_PULL_ALLOC(ndr, r->eventauditoptions);
3021                 } else {
3022                         r->eventauditoptions = NULL;
3023                 }
3024                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3025                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
3026                 if (_ptr_sid) {
3027                         NDR_PULL_ALLOC(ndr, r->sid);
3028                 } else {
3029                         r->sid = NULL;
3030                 }
3031                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3032                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
3033                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time));
3034                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3035                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3036                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3037                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3038                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3039                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3040                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3041                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3042                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3043                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3044         }
3045         if (ndr_flags & NDR_BUFFERS) {
3046                 if (r->eventauditoptions) {
3047                         _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr);
3048                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3049                         NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions));
3050                         NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions));
3051                         _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr);
3052                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3053                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3054                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1]));
3055                         }
3056                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0);
3057                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_0, 0);
3058                 }
3059                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3060                 if (r->sid) {
3061                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
3062                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
3063                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3064                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
3065                 }
3066                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3067                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3068                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3069                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3070                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3071                 if (r->eventauditoptions) {
3072                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eventauditoptions, r->maxauditeventcount + 1));
3073                 }
3074         }
3075         return NDR_ERR_SUCCESS;
3076 }
3077
3078 _PUBLIC_ void ndr_print_netr_DELTA_POLICY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_POLICY *r)
3079 {
3080         uint32_t cntr_eventauditoptions_1;
3081         ndr_print_struct(ndr, name, "netr_DELTA_POLICY");
3082         ndr->depth++;
3083         ndr_print_uint32(ndr, "maxlogsize", r->maxlogsize);
3084         ndr_print_NTTIME(ndr, "auditretentionperiod", r->auditretentionperiod);
3085         ndr_print_uint8(ndr, "auditingmode", r->auditingmode);
3086         ndr_print_uint32(ndr, "maxauditeventcount", r->maxauditeventcount);
3087         ndr_print_ptr(ndr, "eventauditoptions", r->eventauditoptions);
3088         ndr->depth++;
3089         if (r->eventauditoptions) {
3090                 ndr->print(ndr, "%s: ARRAY(%d)", "eventauditoptions", (int)r->maxauditeventcount + 1);
3091                 ndr->depth++;
3092                 for (cntr_eventauditoptions_1=0;cntr_eventauditoptions_1<r->maxauditeventcount + 1;cntr_eventauditoptions_1++) {
3093                         char *idx_1=NULL;
3094                         if (asprintf(&idx_1, "[%d]", cntr_eventauditoptions_1) != -1) {
3095                                 ndr_print_uint32(ndr, "eventauditoptions", r->eventauditoptions[cntr_eventauditoptions_1]);
3096                                 free(idx_1);
3097                         }
3098                 }
3099                 ndr->depth--;
3100         }
3101         ndr->depth--;
3102         ndr_print_lsa_String(ndr, "primary_domain_name", &r->primary_domain_name);
3103         ndr_print_ptr(ndr, "sid", r->sid);
3104         ndr->depth++;
3105         if (r->sid) {
3106                 ndr_print_dom_sid2(ndr, "sid", r->sid);
3107         }
3108         ndr->depth--;
3109         ndr_print_netr_QUOTA_LIMITS(ndr, "quota_limits", &r->quota_limits);
3110         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
3111         ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
3112         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3113         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3114         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3115         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3116         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3117         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3118         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3119         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3120         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3121         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3122         ndr->depth--;
3123 }
3124
3125 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)
3126 {
3127         uint32_t cntr_controller_names_1;
3128         if (ndr_flags & NDR_SCALARS) {
3129                 NDR_CHECK(ndr_push_align(ndr, 4));
3130                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3131                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3132                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->controller_names));
3133                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3134                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3135                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3136                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3137                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3138                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3139                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_offset));
3140                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3141                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3142                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3143         }
3144         if (ndr_flags & NDR_BUFFERS) {
3145                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3146                 if (r->controller_names) {
3147                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3148                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3149                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3150                         }
3151                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3152                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3153                         }
3154                 }
3155                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3156                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3157                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3158                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3159                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3160         }
3161         return NDR_ERR_SUCCESS;
3162 }
3163
3164 static enum ndr_err_code ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r)
3165 {
3166         uint32_t _ptr_controller_names;
3167         uint32_t cntr_controller_names_1;
3168         TALLOC_CTX *_mem_save_controller_names_0;
3169         TALLOC_CTX *_mem_save_controller_names_1;
3170         if (ndr_flags & NDR_SCALARS) {
3171                 NDR_CHECK(ndr_pull_align(ndr, 4));
3172                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3173                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_controllers));
3174                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_controller_names));
3175                 if (_ptr_controller_names) {
3176                         NDR_PULL_ALLOC(ndr, r->controller_names);
3177                 } else {
3178                         r->controller_names = NULL;
3179                 }
3180                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3181                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3182                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3183                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3184                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3185                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3186                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_offset));
3187                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3188                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3189                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3190         }
3191         if (ndr_flags & NDR_BUFFERS) {
3192                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3193                 if (r->controller_names) {
3194                         _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
3195                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3196                         NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names));
3197                         NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names));
3198                         _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
3199                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3200                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3201                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3202                         }
3203                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3204                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3205                         }
3206                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0);
3207                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_0, 0);
3208                 }
3209                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3210                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3211                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3212                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3213                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3214                 if (r->controller_names) {
3215                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->controller_names, r->num_controllers));
3216                 }
3217         }
3218         return NDR_ERR_SUCCESS;
3219 }
3220
3221 _PUBLIC_ void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3222 {
3223         uint32_t cntr_controller_names_1;
3224         ndr_print_struct(ndr, name, "netr_DELTA_TRUSTED_DOMAIN");
3225         ndr->depth++;
3226         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
3227         ndr_print_uint32(ndr, "num_controllers", r->num_controllers);
3228         ndr_print_ptr(ndr, "controller_names", r->controller_names);
3229         ndr->depth++;
3230         if (r->controller_names) {
3231                 ndr->print(ndr, "%s: ARRAY(%d)", "controller_names", (int)r->num_controllers);
3232                 ndr->depth++;
3233                 for (cntr_controller_names_1=0;cntr_controller_names_1<r->num_controllers;cntr_controller_names_1++) {
3234                         char *idx_1=NULL;
3235                         if (asprintf(&idx_1, "[%d]", cntr_controller_names_1) != -1) {
3236                                 ndr_print_lsa_String(ndr, "controller_names", &r->controller_names[cntr_controller_names_1]);
3237                                 free(idx_1);
3238                         }
3239                 }
3240                 ndr->depth--;
3241         }
3242         ndr->depth--;
3243         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3244         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3245         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3246         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3247         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3248         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3249         ndr_print_uint32(ndr, "posix_offset", r->posix_offset);
3250         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3251         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3252         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3253         ndr->depth--;
3254 }
3255
3256 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)
3257 {
3258         if (ndr_flags & NDR_SCALARS) {
3259                 NDR_CHECK(ndr_push_align(ndr, 2));
3260                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3261         }
3262         if (ndr_flags & NDR_BUFFERS) {
3263         }
3264         return NDR_ERR_SUCCESS;
3265 }
3266
3267 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_TRUST *r)
3268 {
3269         if (ndr_flags & NDR_SCALARS) {
3270                 NDR_CHECK(ndr_pull_align(ndr, 2));
3271                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3272         }
3273         if (ndr_flags & NDR_BUFFERS) {
3274         }
3275         return NDR_ERR_SUCCESS;
3276 }
3277
3278 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_TRUST *r)
3279 {
3280         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_TRUST");
3281         ndr->depth++;
3282         ndr_print_uint16(ndr, "unknown", r->unknown);
3283         ndr->depth--;
3284 }
3285
3286 static enum ndr_err_code ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ACCOUNT *r)
3287 {
3288         uint32_t cntr_privilege_attrib_1;
3289         uint32_t cntr_privilege_name_1;
3290         if (ndr_flags & NDR_SCALARS) {
3291                 NDR_CHECK(ndr_push_align(ndr, 4));
3292                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3293                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_control));
3294                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_attrib));
3295                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_name));
3296                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3297                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->system_flags));
3298                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3299                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3300                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3301                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3302                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3303                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3304                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3305                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3306                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3307                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3308         }
3309         if (ndr_flags & NDR_BUFFERS) {
3310                 if (r->privilege_attrib) {
3311                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3312                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3313                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_attrib[cntr_privilege_attrib_1]));
3314                         }
3315                 }
3316                 if (r->privilege_name) {
3317                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3318                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3319                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3320                         }
3321                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3322                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3323                         }
3324                 }
3325                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3326                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3327                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3328                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3329                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3330         }
3331         return NDR_ERR_SUCCESS;
3332 }
3333
3334 static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r)
3335 {
3336         uint32_t _ptr_privilege_attrib;
3337         uint32_t cntr_privilege_attrib_1;
3338         TALLOC_CTX *_mem_save_privilege_attrib_0;
3339         TALLOC_CTX *_mem_save_privilege_attrib_1;
3340         uint32_t _ptr_privilege_name;
3341         uint32_t cntr_privilege_name_1;
3342         TALLOC_CTX *_mem_save_privilege_name_0;
3343         TALLOC_CTX *_mem_save_privilege_name_1;
3344         if (ndr_flags & NDR_SCALARS) {
3345                 NDR_CHECK(ndr_pull_align(ndr, 4));
3346                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_entries));
3347                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_control));
3348                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_attrib));
3349                 if (_ptr_privilege_attrib) {
3350                         NDR_PULL_ALLOC(ndr, r->privilege_attrib);
3351                 } else {
3352                         r->privilege_attrib = NULL;
3353                 }
3354                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_name));
3355                 if (_ptr_privilege_name) {
3356                         NDR_PULL_ALLOC(ndr, r->privilege_name);
3357                 } else {
3358                         r->privilege_name = NULL;
3359                 }
3360                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3361                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->system_flags));
3362                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3363                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3364                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3365                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3366                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3367                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3368                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3369                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3370                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3371                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3372         }
3373         if (ndr_flags & NDR_BUFFERS) {
3374                 if (r->privilege_attrib) {
3375                         _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
3376                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3377                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib));
3378                         NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib));
3379                         _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr);
3380                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3381                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3382                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1]));
3383                         }
3384                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0);
3385                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_0, 0);
3386                 }
3387                 if (r->privilege_name) {
3388                         _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3389                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3390                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name));
3391                         NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name));
3392                         _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
3393                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3394                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3395                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3396                         }
3397                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3398                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3399                         }
3400                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0);
3401                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_0, 0);
3402                 }
3403                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3404                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3405                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3406                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3407                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3408                 if (r->privilege_attrib) {
3409                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_attrib, r->privilege_entries));
3410                 }
3411                 if (r->privilege_name) {
3412                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_name, r->privilege_entries));
3413                 }
3414         }
3415         return NDR_ERR_SUCCESS;
3416 }
3417
3418 _PUBLIC_ void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ACCOUNT *r)
3419 {
3420         uint32_t cntr_privilege_attrib_1;
3421         uint32_t cntr_privilege_name_1;
3422         ndr_print_struct(ndr, name, "netr_DELTA_ACCOUNT");
3423         ndr->depth++;
3424         ndr_print_uint32(ndr, "privilege_entries", r->privilege_entries);
3425         ndr_print_uint32(ndr, "privilege_control", r->privilege_control);
3426         ndr_print_ptr(ndr, "privilege_attrib", r->privilege_attrib);
3427         ndr->depth++;
3428         if (r->privilege_attrib) {
3429                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_attrib", (int)r->privilege_entries);
3430                 ndr->depth++;
3431                 for (cntr_privilege_attrib_1=0;cntr_privilege_attrib_1<r->privilege_entries;cntr_privilege_attrib_1++) {
3432                         char *idx_1=NULL;
3433                         if (asprintf(&idx_1, "[%d]", cntr_privilege_attrib_1) != -1) {
3434                                 ndr_print_uint32(ndr, "privilege_attrib", r->privilege_attrib[cntr_privilege_attrib_1]);
3435                                 free(idx_1);
3436                         }
3437                 }
3438                 ndr->depth--;
3439         }
3440         ndr->depth--;
3441         ndr_print_ptr(ndr, "privilege_name", r->privilege_name);
3442         ndr->depth++;
3443         if (r->privilege_name) {
3444                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_name", (int)r->privilege_entries);
3445                 ndr->depth++;
3446                 for (cntr_privilege_name_1=0;cntr_privilege_name_1<r->privilege_entries;cntr_privilege_name_1++) {
3447                         char *idx_1=NULL;
3448                         if (asprintf(&idx_1, "[%d]", cntr_privilege_name_1) != -1) {
3449                                 ndr_print_lsa_String(ndr, "privilege_name", &r->privilege_name[cntr_privilege_name_1]);
3450                                 free(idx_1);
3451                         }
3452                 }
3453                 ndr->depth--;
3454         }
3455         ndr->depth--;
3456         ndr_print_netr_QUOTA_LIMITS(ndr, "quotalimits", &r->quotalimits);
3457         ndr_print_uint32(ndr, "system_flags", r->system_flags);
3458         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3459         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3460         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3461         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3462         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3463         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3464         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3465         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3466         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3467         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3468         ndr->depth--;
3469 }
3470
3471 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)
3472 {
3473         if (ndr_flags & NDR_SCALARS) {
3474                 NDR_CHECK(ndr_push_align(ndr, 2));
3475                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3476         }
3477         if (ndr_flags & NDR_BUFFERS) {
3478         }
3479         return NDR_ERR_SUCCESS;
3480 }
3481
3482 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_ACCOUNT *r)
3483 {
3484         if (ndr_flags & NDR_SCALARS) {
3485                 NDR_CHECK(ndr_pull_align(ndr, 2));
3486                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3487         }
3488         if (ndr_flags & NDR_BUFFERS) {
3489         }
3490         return NDR_ERR_SUCCESS;
3491 }
3492
3493 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_ACCOUNT *r)
3494 {
3495         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_ACCOUNT");
3496         ndr->depth++;
3497         ndr_print_uint16(ndr, "unknown", r->unknown);
3498         ndr->depth--;
3499 }
3500
3501 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)
3502 {
3503         if (ndr_flags & NDR_SCALARS) {
3504                 NDR_CHECK(ndr_push_align(ndr, 2));
3505                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3506         }
3507         if (ndr_flags & NDR_BUFFERS) {
3508         }
3509         return NDR_ERR_SUCCESS;
3510 }
3511
3512 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_SECRET *r)
3513 {
3514         if (ndr_flags & NDR_SCALARS) {
3515                 NDR_CHECK(ndr_pull_align(ndr, 2));
3516                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3517         }
3518         if (ndr_flags & NDR_BUFFERS) {
3519         }
3520         return NDR_ERR_SUCCESS;
3521 }
3522
3523 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_SECRET *r)
3524 {
3525         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_SECRET");
3526         ndr->depth++;
3527         ndr_print_uint16(ndr, "unknown", r->unknown);
3528         ndr->depth--;
3529 }
3530
3531 static enum ndr_err_code ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int ndr_flags, const struct netr_CIPHER_VALUE *r)
3532 {
3533         if (ndr_flags & NDR_SCALARS) {
3534                 NDR_CHECK(ndr_push_align(ndr, 4));
3535                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3536                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3537                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cipher_data));
3538         }
3539         if (ndr_flags & NDR_BUFFERS) {
3540                 if (r->cipher_data) {
3541                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3542                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3543                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3544                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->cipher_data, r->len));
3545                 }
3546         }
3547         return NDR_ERR_SUCCESS;
3548 }
3549
3550 static enum ndr_err_code ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r)
3551 {
3552         uint32_t _ptr_cipher_data;
3553         TALLOC_CTX *_mem_save_cipher_data_0;
3554         if (ndr_flags & NDR_SCALARS) {
3555                 NDR_CHECK(ndr_pull_align(ndr, 4));
3556                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
3557                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlen));
3558                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cipher_data));
3559                 if (_ptr_cipher_data) {
3560                         NDR_PULL_ALLOC(ndr, r->cipher_data);
3561                 } else {
3562                         r->cipher_data = NULL;
3563                 }
3564         }
3565         if (ndr_flags & NDR_BUFFERS) {
3566                 if (r->cipher_data) {
3567                         _mem_save_cipher_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
3568                         NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0);
3569                         NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data));
3570                         NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data));
3571                         if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) {
3572                                 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));
3573                         }
3574                         NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data));
3575                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data)));
3576                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0);
3577                 }
3578                 if (r->cipher_data) {
3579                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cipher_data, r->maxlen));
3580                 }
3581                 if (r->cipher_data) {
3582                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->cipher_data, r->len));
3583                 }
3584         }
3585         return NDR_ERR_SUCCESS;
3586 }
3587
3588 _PUBLIC_ void ndr_print_netr_CIPHER_VALUE(struct ndr_print *ndr, const char *name, const struct netr_CIPHER_VALUE *r)
3589 {
3590         ndr_print_struct(ndr, name, "netr_CIPHER_VALUE");
3591         ndr->depth++;
3592         ndr_print_uint32(ndr, "len", r->len);
3593         ndr_print_uint32(ndr, "maxlen", r->maxlen);
3594         ndr_print_ptr(ndr, "cipher_data", r->cipher_data);
3595         ndr->depth++;
3596         if (r->cipher_data) {
3597                 ndr_print_array_uint8(ndr, "cipher_data", r->cipher_data, r->len);
3598         }
3599         ndr->depth--;
3600         ndr->depth--;
3601 }
3602
3603 static enum ndr_err_code ndr_push_netr_DELTA_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_SECRET *r)
3604 {
3605         if (ndr_flags & NDR_SCALARS) {
3606                 NDR_CHECK(ndr_push_align(ndr, 4));
3607                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3608                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->current_cipher_set_time));
3609                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3610                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_cipher_set_time));
3611                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3612                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3613                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3614                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3615                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3616                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3617                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3618                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3619                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3620                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3621         }
3622         if (ndr_flags & NDR_BUFFERS) {
3623                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3624                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3625                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3626                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3627                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3628                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3629                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3630         }
3631         return NDR_ERR_SUCCESS;
3632 }
3633
3634 static enum ndr_err_code ndr_pull_netr_DELTA_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_SECRET *r)
3635 {
3636         if (ndr_flags & NDR_SCALARS) {
3637                 NDR_CHECK(ndr_pull_align(ndr, 4));
3638                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3639                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->current_cipher_set_time));
3640                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3641                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_cipher_set_time));
3642                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3643                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3644                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3645                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3646                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3647                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3648                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3649                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3650                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3651                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3652         }
3653         if (ndr_flags & NDR_BUFFERS) {
3654                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3655                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3656                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3657                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3658                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3659                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3660                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3661         }
3662         return NDR_ERR_SUCCESS;
3663 }
3664
3665 _PUBLIC_ void ndr_print_netr_DELTA_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_SECRET *r)
3666 {
3667         ndr_print_struct(ndr, name, "netr_DELTA_SECRET");
3668         ndr->depth++;
3669         ndr_print_netr_CIPHER_VALUE(ndr, "current_cipher", &r->current_cipher);
3670         ndr_print_NTTIME(ndr, "current_cipher_set_time", r->current_cipher_set_time);
3671         ndr_print_netr_CIPHER_VALUE(ndr, "old_cipher", &r->old_cipher);
3672         ndr_print_NTTIME(ndr, "old_cipher_set_time", r->old_cipher_set_time);
3673         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3674         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3675         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3676         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3677         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3678         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3679         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3680         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3681         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3682         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3683         ndr->depth--;
3684 }
3685
3686 static enum ndr_err_code ndr_push_netr_DeltaEnum(struct ndr_push *ndr, int ndr_flags, enum netr_DeltaEnum r)
3687 {
3688         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
3689         return NDR_ERR_SUCCESS;
3690 }
3691
3692 static enum ndr_err_code ndr_pull_netr_DeltaEnum(struct ndr_pull *ndr, int ndr_flags, enum netr_DeltaEnum *r)
3693 {
3694         uint16_t v;
3695         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
3696         *r = v;
3697         return NDR_ERR_SUCCESS;
3698 }
3699
3700 _PUBLIC_ void ndr_print_netr_DeltaEnum(struct ndr_print *ndr, const char *name, enum netr_DeltaEnum r)
3701 {
3702         const char *val = NULL;
3703
3704         switch (r) {
3705                 case NETR_DELTA_DOMAIN: val = "NETR_DELTA_DOMAIN"; break;
3706                 case NETR_DELTA_GROUP: val = "NETR_DELTA_GROUP"; break;
3707                 case NETR_DELTA_DELETE_GROUP: val = "NETR_DELTA_DELETE_GROUP"; break;
3708                 case NETR_DELTA_RENAME_GROUP: val = "NETR_DELTA_RENAME_GROUP"; break;
3709                 case NETR_DELTA_USER: val = "NETR_DELTA_USER"; break;
3710                 case NETR_DELTA_DELETE_USER: val = "NETR_DELTA_DELETE_USER"; break;
3711                 case NETR_DELTA_RENAME_USER: val = "NETR_DELTA_RENAME_USER"; break;
3712                 case NETR_DELTA_GROUP_MEMBER: val = "NETR_DELTA_GROUP_MEMBER"; break;
3713                 case NETR_DELTA_ALIAS: val = "NETR_DELTA_ALIAS"; break;
3714                 case NETR_DELTA_DELETE_ALIAS: val = "NETR_DELTA_DELETE_ALIAS"; break;
3715                 case NETR_DELTA_RENAME_ALIAS: val = "NETR_DELTA_RENAME_ALIAS"; break;
3716                 case NETR_DELTA_ALIAS_MEMBER: val = "NETR_DELTA_ALIAS_MEMBER"; break;
3717                 case NETR_DELTA_POLICY: val = "NETR_DELTA_POLICY"; break;
3718                 case NETR_DELTA_TRUSTED_DOMAIN: val = "NETR_DELTA_TRUSTED_DOMAIN"; break;
3719                 case NETR_DELTA_DELETE_TRUST: val = "NETR_DELTA_DELETE_TRUST"; break;
3720                 case NETR_DELTA_ACCOUNT: val = "NETR_DELTA_ACCOUNT"; break;
3721                 case NETR_DELTA_DELETE_ACCOUNT: val = "NETR_DELTA_DELETE_ACCOUNT"; break;
3722                 case NETR_DELTA_SECRET: val = "NETR_DELTA_SECRET"; break;
3723                 case NETR_DELTA_DELETE_SECRET: val = "NETR_DELTA_DELETE_SECRET"; break;
3724                 case NETR_DELTA_DELETE_GROUP2: val = "NETR_DELTA_DELETE_GROUP2"; break;
3725                 case NETR_DELTA_DELETE_USER2: val = "NETR_DELTA_DELETE_USER2"; break;
3726                 case NETR_DELTA_MODIFY_COUNT: val = "NETR_DELTA_MODIFY_COUNT"; break;
3727         }
3728         ndr_print_enum(ndr, name, "ENUM", val, r);
3729 }
3730
3731 static enum ndr_err_code ndr_push_netr_DELTA_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_UNION *r)
3732 {
3733         if (ndr_flags & NDR_SCALARS) {
3734                 int level = ndr_push_get_switch_value(ndr, r);
3735                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
3736                 switch (level) {
3737                         case NETR_DELTA_DOMAIN: {
3738                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
3739                         break; }
3740
3741                         case NETR_DELTA_GROUP: {
3742                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group));
3743                         break; }
3744
3745                         case NETR_DELTA_DELETE_GROUP: {
3746                         break; }
3747
3748                         case NETR_DELTA_RENAME_GROUP: {
3749                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_group));
3750                         break; }
3751
3752                         case NETR_DELTA_USER: {
3753                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
3754                         break; }
3755
3756                         case NETR_DELTA_DELETE_USER: {
3757                         break; }
3758
3759                         case NETR_DELTA_RENAME_USER: {
3760                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_user));
3761                         break; }
3762
3763                         case NETR_DELTA_GROUP_MEMBER: {
3764                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_member));
3765                         break; }
3766
3767                         case NETR_DELTA_ALIAS: {
3768                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias));
3769                         break; }
3770
3771                         case NETR_DELTA_DELETE_ALIAS: {
3772                         break; }
3773
3774                         case NETR_DELTA_RENAME_ALIAS: {
3775                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_alias));
3776                         break; }
3777
3778                         case NETR_DELTA_ALIAS_MEMBER: {
3779                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias_member));
3780                         break; }
3781
3782                         case NETR_DELTA_POLICY: {
3783                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
3784                         break; }
3785
3786                         case NETR_DELTA_TRUSTED_DOMAIN: {
3787                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain));
3788                         break; }
3789
3790                         case NETR_DELTA_DELETE_TRUST: {
3791                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
3792                         break; }
3793
3794                         case NETR_DELTA_ACCOUNT: {
3795                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account));
3796                         break; }
3797
3798                         case NETR_DELTA_DELETE_ACCOUNT: {
3799                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
3800                         break; }
3801
3802                         case NETR_DELTA_SECRET: {
3803                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret));
3804                         break; }
3805
3806                         case NETR_DELTA_DELETE_SECRET: {
3807                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
3808                         break; }
3809
3810                         case NETR_DELTA_DELETE_GROUP2: {
3811                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_group));
3812                         break; }
3813
3814                         case NETR_DELTA_DELETE_USER2: {
3815                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_user));
3816                         break; }
3817
3818                         case NETR_DELTA_MODIFY_COUNT: {
3819                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->modified_count));
3820                         break; }
3821
3822                         default:
3823                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3824                 }
3825         }
3826         if (ndr_flags & NDR_BUFFERS) {
3827                 int level = ndr_push_get_switch_value(ndr, r);
3828                 switch (level) {
3829                         case NETR_DELTA_DOMAIN:
3830                                 if (r->domain) {
3831                                         NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
3832                                 }
3833                         break;
3834
3835                         case NETR_DELTA_GROUP:
3836                                 if (r->group) {
3837                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
3838                                 }
3839                         break;
3840
3841                         case NETR_DELTA_DELETE_GROUP:
3842                         break;
3843
3844                         case NETR_DELTA_RENAME_GROUP:
3845                                 if (r->rename_group) {
3846                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
3847                                 }
3848                         break;
3849
3850                         case NETR_DELTA_USER:
3851                                 if (r->user) {
3852                                         NDR_CHECK(ndr_push_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
3853                                 }
3854                         break;
3855
3856                         case NETR_DELTA_DELETE_USER:
3857                         break;
3858
3859                         case NETR_DELTA_RENAME_USER:
3860                                 if (r->rename_user) {
3861                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
3862                                 }
3863                         break;
3864
3865                         case NETR_DELTA_GROUP_MEMBER:
3866                                 if (r->group_member) {
3867                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
3868                                 }
3869                         break;
3870
3871                         case NETR_DELTA_ALIAS:
3872                                 if (r->alias) {
3873                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
3874                                 }
3875                         break;
3876
3877                         case NETR_DELTA_DELETE_ALIAS:
3878                         break;
3879
3880                         case NETR_DELTA_RENAME_ALIAS:
3881                                 if (r->rename_alias) {
3882                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
3883                                 }
3884                         break;
3885
3886                         case NETR_DELTA_ALIAS_MEMBER:
3887                                 if (r->alias_member) {
3888                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
3889                                 }
3890                         break;
3891
3892                         case NETR_DELTA_POLICY:
3893                                 if (r->policy) {
3894                                         NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
3895                                 }
3896                         break;
3897
3898                         case NETR_DELTA_TRUSTED_DOMAIN:
3899                                 if (r->trusted_domain) {
3900                                         NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
3901                                 }
3902                         break;
3903
3904                         case NETR_DELTA_DELETE_TRUST:
3905                         break;
3906
3907                         case NETR_DELTA_ACCOUNT:
3908                                 if (r->account) {
3909                                         NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
3910                                 }
3911                         break;
3912
3913                         case NETR_DELTA_DELETE_ACCOUNT:
3914                         break;
3915
3916                         case NETR_DELTA_SECRET:
3917                                 if (r->secret) {
3918                                         NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
3919                                 }
3920                         break;
3921
3922                         case NETR_DELTA_DELETE_SECRET:
3923                         break;
3924
3925                         case NETR_DELTA_DELETE_GROUP2:
3926                                 if (r->delete_group) {
3927                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
3928                                 }
3929                         break;
3930
3931                         case NETR_DELTA_DELETE_USER2:
3932                                 if (r->delete_user) {
3933                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
3934                                 }
3935                         break;
3936
3937                         case NETR_DELTA_MODIFY_COUNT:
3938                                 if (r->modified_count) {
3939                                         NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->modified_count));
3940                                 }
3941                         break;
3942
3943                         default:
3944                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3945                 }
3946         }
3947         return NDR_ERR_SUCCESS;
3948 }
3949
3950 static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_UNION *r)
3951 {
3952         int level;
3953         uint16_t _level;
3954         TALLOC_CTX *_mem_save_domain_0;
3955         TALLOC_CTX *_mem_save_group_0;
3956         TALLOC_CTX *_mem_save_rename_group_0;
3957         TALLOC_CTX *_mem_save_user_0;
3958         TALLOC_CTX *_mem_save_rename_user_0;
3959         TALLOC_CTX *_mem_save_group_member_0;
3960         TALLOC_CTX *_mem_save_alias_0;
3961         TALLOC_CTX *_mem_save_rename_alias_0;
3962         TALLOC_CTX *_mem_save_alias_member_0;
3963         TALLOC_CTX *_mem_save_policy_0;
3964         TALLOC_CTX *_mem_save_trusted_domain_0;
3965         TALLOC_CTX *_mem_save_account_0;
3966         TALLOC_CTX *_mem_save_secret_0;
3967         TALLOC_CTX *_mem_save_delete_group_0;
3968         TALLOC_CTX *_mem_save_delete_user_0;
3969         TALLOC_CTX *_mem_save_modified_count_0;
3970         level = ndr_pull_get_switch_value(ndr, r);
3971         if (ndr_flags & NDR_SCALARS) {
3972                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
3973                 if (_level != level) {
3974                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
3975                 }
3976                 switch (level) {
3977                         case NETR_DELTA_DOMAIN: {
3978                                 uint32_t _ptr_domain;
3979                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
3980                                 if (_ptr_domain) {
3981                                         NDR_PULL_ALLOC(ndr, r->domain);
3982                                 } else {
3983                                         r->domain = NULL;
3984                                 }
3985                         break; }
3986
3987                         case NETR_DELTA_GROUP: {
3988                                 uint32_t _ptr_group;
3989                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group));
3990                                 if (_ptr_group) {
3991                                         NDR_PULL_ALLOC(ndr, r->group);
3992                                 } else {
3993                                         r->group = NULL;
3994                                 }
3995                         break; }
3996
3997                         case NETR_DELTA_DELETE_GROUP: {
3998                         break; }
3999
4000                         case NETR_DELTA_RENAME_GROUP: {
4001                                 uint32_t _ptr_rename_group;
4002                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group));
4003                                 if (_ptr_rename_group) {
4004                                         NDR_PULL_ALLOC(ndr, r->rename_group);
4005                                 } else {
4006                                         r->rename_group = NULL;
4007                                 }
4008                         break; }
4009
4010                         case NETR_DELTA_USER: {
4011                                 uint32_t _ptr_user;
4012                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
4013                                 if (_ptr_user) {
4014                                         NDR_PULL_ALLOC(ndr, r->user);
4015                                 } else {
4016                                         r->user = NULL;
4017                                 }
4018                         break; }
4019
4020                         case NETR_DELTA_DELETE_USER: {
4021                         break; }
4022
4023                         case NETR_DELTA_RENAME_USER: {
4024                                 uint32_t _ptr_rename_user;
4025                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user));
4026                                 if (_ptr_rename_user) {
4027                                         NDR_PULL_ALLOC(ndr, r->rename_user);
4028                                 } else {
4029                                         r->rename_user = NULL;
4030                                 }
4031                         break; }
4032
4033                         case NETR_DELTA_GROUP_MEMBER: {
4034                                 uint32_t _ptr_group_member;
4035                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member));
4036                                 if (_ptr_group_member) {
4037                                         NDR_PULL_ALLOC(ndr, r->group_member);
4038                                 } else {
4039                                         r->group_member = NULL;
4040                                 }
4041                         break; }
4042
4043                         case NETR_DELTA_ALIAS: {
4044                                 uint32_t _ptr_alias;
4045                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias));
4046                                 if (_ptr_alias) {
4047                                         NDR_PULL_ALLOC(ndr, r->alias);
4048                                 } else {
4049                                         r->alias = NULL;
4050                                 }
4051                         break; }
4052
4053                         case NETR_DELTA_DELETE_ALIAS: {
4054                         break; }
4055
4056                         case NETR_DELTA_RENAME_ALIAS: {
4057                                 uint32_t _ptr_rename_alias;
4058                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias));
4059                                 if (_ptr_rename_alias) {
4060                                         NDR_PULL_ALLOC(ndr, r->rename_alias);
4061                                 } else {
4062                                         r->rename_alias = NULL;
4063                                 }
4064                         break; }
4065
4066                         case NETR_DELTA_ALIAS_MEMBER: {
4067                                 uint32_t _ptr_alias_member;
4068                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member));
4069                                 if (_ptr_alias_member) {
4070                                         NDR_PULL_ALLOC(ndr, r->alias_member);
4071                                 } else {
4072                                         r->alias_member = NULL;
4073                                 }
4074                         break; }
4075
4076                         case NETR_DELTA_POLICY: {
4077                                 uint32_t _ptr_policy;
4078                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
4079                                 if (_ptr_policy) {
4080                                         NDR_PULL_ALLOC(ndr, r->policy);
4081                                 } else {
4082                                         r->policy = NULL;
4083                                 }
4084                         break; }
4085
4086                         case NETR_DELTA_TRUSTED_DOMAIN: {
4087                                 uint32_t _ptr_trusted_domain;
4088                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain));
4089                                 if (_ptr_trusted_domain) {
4090                                         NDR_PULL_ALLOC(ndr, r->trusted_domain);
4091                                 } else {
4092                                         r->trusted_domain = NULL;
4093                                 }
4094                         break; }
4095
4096                         case NETR_DELTA_DELETE_TRUST: {
4097                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4098                         break; }
4099
4100                         case NETR_DELTA_ACCOUNT: {
4101                                 uint32_t _ptr_account;
4102                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account));
4103                                 if (_ptr_account) {
4104                                         NDR_PULL_ALLOC(ndr, r->account);
4105                                 } else {
4106                                         r->account = NULL;
4107                                 }
4108                         break; }
4109
4110                         case NETR_DELTA_DELETE_ACCOUNT: {
4111                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4112                         break; }
4113
4114                         case NETR_DELTA_SECRET: {
4115                                 uint32_t _ptr_secret;
4116                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret));
4117                                 if (_ptr_secret) {
4118                                         NDR_PULL_ALLOC(ndr, r->secret);
4119                                 } else {
4120                                         r->secret = NULL;
4121                                 }
4122                         break; }
4123
4124                         case NETR_DELTA_DELETE_SECRET: {
4125                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4126                         break; }
4127
4128                         case NETR_DELTA_DELETE_GROUP2: {
4129                                 uint32_t _ptr_delete_group;
4130                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group));
4131                                 if (_ptr_delete_group) {
4132                                         NDR_PULL_ALLOC(ndr, r->delete_group);
4133                                 } else {
4134                                         r->delete_group = NULL;
4135                                 }
4136                         break; }
4137
4138                         case NETR_DELTA_DELETE_USER2: {
4139                                 uint32_t _ptr_delete_user;
4140                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user));
4141                                 if (_ptr_delete_user) {
4142                                         NDR_PULL_ALLOC(ndr, r->delete_user);
4143                                 } else {
4144                                         r->delete_user = NULL;
4145                                 }
4146                         break; }
4147
4148                         case NETR_DELTA_MODIFY_COUNT: {
4149                                 uint32_t _ptr_modified_count;
4150                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count));
4151                                 if (_ptr_modified_count) {
4152                                         NDR_PULL_ALLOC(ndr, r->modified_count);
4153                                 } else {
4154                                         r->modified_count = NULL;
4155                                 }
4156                         break; }
4157
4158                         default:
4159                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4160                 }
4161         }
4162         if (ndr_flags & NDR_BUFFERS) {
4163                 switch (level) {
4164                         case NETR_DELTA_DOMAIN:
4165                                 if (r->domain) {
4166                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4167                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
4168                                         NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4169                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
4170                                 }
4171                         break;
4172
4173                         case NETR_DELTA_GROUP:
4174                                 if (r->group) {
4175                                         _mem_save_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4176                                         NDR_PULL_SET_MEM_CTX(ndr, r->group, 0);
4177                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4178                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_0, 0);
4179                                 }
4180                         break;
4181
4182                         case NETR_DELTA_DELETE_GROUP:
4183                         break;
4184
4185                         case NETR_DELTA_RENAME_GROUP:
4186                                 if (r->rename_group) {
4187                                         _mem_save_rename_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4188                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_group, 0);
4189                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4190                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_group_0, 0);
4191                                 }
4192                         break;
4193
4194                         case NETR_DELTA_USER:
4195                                 if (r->user) {
4196                                         _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4197                                         NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
4198                                         NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4199                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
4200                                 }
4201                         break;
4202
4203                         case NETR_DELTA_DELETE_USER:
4204                         break;
4205
4206                         case NETR_DELTA_RENAME_USER:
4207                                 if (r->rename_user) {
4208                                         _mem_save_rename_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4209                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_user, 0);
4210                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4211                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_user_0, 0);
4212                                 }
4213                         break;
4214
4215                         case NETR_DELTA_GROUP_MEMBER:
4216                                 if (r->group_member) {
4217                                         _mem_save_group_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4218                                         NDR_PULL_SET_MEM_CTX(ndr, r->group_member, 0);
4219                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4220                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_member_0, 0);
4221                                 }
4222                         break;
4223
4224                         case NETR_DELTA_ALIAS:
4225                                 if (r->alias) {
4226                                         _mem_save_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4227                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias, 0);
4228                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4229                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_0, 0);
4230                                 }
4231                         break;
4232
4233                         case NETR_DELTA_DELETE_ALIAS:
4234                         break;
4235
4236                         case NETR_DELTA_RENAME_ALIAS:
4237                                 if (r->rename_alias) {
4238                                         _mem_save_rename_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4239                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_alias, 0);
4240                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4241                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_alias_0, 0);
4242                                 }
4243                         break;
4244
4245                         case NETR_DELTA_ALIAS_MEMBER:
4246                                 if (r->alias_member) {
4247                                         _mem_save_alias_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4248                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias_member, 0);
4249                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4250                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_member_0, 0);
4251                                 }
4252                         break;
4253
4254                         case NETR_DELTA_POLICY:
4255                                 if (r->policy) {
4256                                         _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
4257                                         NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
4258                                         NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4259                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
4260                                 }
4261                         break;
4262
4263                         case NETR_DELTA_TRUSTED_DOMAIN:
4264                                 if (r->trusted_domain) {
4265                                         _mem_save_trusted_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4266                                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain, 0);
4267                                         NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4268                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_0, 0);
4269                                 }
4270                         break;
4271
4272                         case NETR_DELTA_DELETE_TRUST:
4273                         break;
4274
4275                         case NETR_DELTA_ACCOUNT:
4276                                 if (r->account) {
4277                                         _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
4278                                         NDR_PULL_SET_MEM_CTX(ndr, r->account, 0);
4279                                         NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4280                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0);
4281                                 }
4282                         break;
4283
4284                         case NETR_DELTA_DELETE_ACCOUNT:
4285                         break;
4286
4287                         case NETR_DELTA_SECRET:
4288                                 if (r->secret) {
4289                                         _mem_save_secret_0 = NDR_PULL_GET_MEM_CTX(ndr);
4290                                         NDR_PULL_SET_MEM_CTX(ndr, r->secret, 0);
4291                                         NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4292                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_0, 0);
4293                                 }
4294                         break;
4295
4296                         case NETR_DELTA_DELETE_SECRET:
4297                         break;
4298
4299                         case NETR_DELTA_DELETE_GROUP2:
4300                                 if (r->delete_group) {
4301                                         _mem_save_delete_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4302                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_group, 0);
4303                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4304                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_group_0, 0);
4305                                 }
4306                         break;
4307
4308                         case NETR_DELTA_DELETE_USER2:
4309                                 if (r->delete_user) {
4310                                         _mem_save_delete_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4311                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_user, 0);
4312                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4313                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_user_0, 0);
4314                                 }
4315                         break;
4316
4317                         case NETR_DELTA_MODIFY_COUNT:
4318                                 if (r->modified_count) {
4319                                         _mem_save_modified_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
4320                                         NDR_PULL_SET_MEM_CTX(ndr, r->modified_count, 0);
4321                                         NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->modified_count));
4322                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_modified_count_0, 0);
4323                                 }
4324                         break;
4325
4326                         default:
4327                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4328                 }
4329         }
4330         return NDR_ERR_SUCCESS;
4331 }
4332
4333 _PUBLIC_ void ndr_print_netr_DELTA_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_UNION *r)
4334 {
4335         int level;
4336         level = ndr_print_get_switch_value(ndr, r);
4337         ndr_print_union(ndr, name, level, "netr_DELTA_UNION");
4338         switch (level) {
4339                 case NETR_DELTA_DOMAIN:
4340                         ndr_print_ptr(ndr, "domain", r->domain);
4341                         ndr->depth++;
4342                         if (r->domain) {
4343                                 ndr_print_netr_DELTA_DOMAIN(ndr, "domain", r->domain);
4344                         }
4345                         ndr->depth--;
4346                 break;
4347
4348                 case NETR_DELTA_GROUP:
4349                         ndr_print_ptr(ndr, "group", r->group);
4350                         ndr->depth++;
4351                         if (r->group) {
4352                                 ndr_print_netr_DELTA_GROUP(ndr, "group", r->group);
4353                         }
4354                         ndr->depth--;
4355                 break;
4356
4357                 case NETR_DELTA_DELETE_GROUP:
4358                 break;
4359
4360                 case NETR_DELTA_RENAME_GROUP:
4361                         ndr_print_ptr(ndr, "rename_group", r->rename_group);
4362                         ndr->depth++;
4363                         if (r->rename_group) {
4364                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_group", r->rename_group);
4365                         }
4366                         ndr->depth--;
4367                 break;
4368
4369                 case NETR_DELTA_USER:
4370                         ndr_print_ptr(ndr, "user", r->user);
4371                         ndr->depth++;
4372                         if (r->user) {
4373                                 ndr_print_netr_DELTA_USER(ndr, "user", r->user);
4374                         }
4375                         ndr->depth--;
4376                 break;
4377
4378                 case NETR_DELTA_DELETE_USER:
4379                 break;
4380
4381                 case NETR_DELTA_RENAME_USER:
4382                         ndr_print_ptr(ndr, "rename_user", r->rename_user);
4383                         ndr->depth++;
4384                         if (r->rename_user) {
4385                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_user", r->rename_user);
4386                         }
4387                         ndr->depth--;
4388                 break;
4389
4390                 case NETR_DELTA_GROUP_MEMBER:
4391                         ndr_print_ptr(ndr, "group_member", r->group_member);
4392                         ndr->depth++;
4393                         if (r->group_member) {
4394                                 ndr_print_netr_DELTA_GROUP_MEMBER(ndr, "group_member", r->group_member);
4395                         }
4396                         ndr->depth--;
4397                 break;
4398
4399                 case NETR_DELTA_ALIAS:
4400                         ndr_print_ptr(ndr, "alias", r->alias);
4401                         ndr->depth++;
4402                         if (r->alias) {
4403                                 ndr_print_netr_DELTA_ALIAS(ndr, "alias", r->alias);
4404                         }
4405                         ndr->depth--;
4406                 break;
4407
4408                 case NETR_DELTA_DELETE_ALIAS:
4409                 break;
4410
4411                 case NETR_DELTA_RENAME_ALIAS:
4412                         ndr_print_ptr(ndr, "rename_alias", r->rename_alias);
4413                         ndr->depth++;
4414                         if (r->rename_alias) {
4415                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_alias", r->rename_alias);
4416                         }
4417                         ndr->depth--;
4418                 break;
4419
4420                 case NETR_DELTA_ALIAS_MEMBER:
4421                         ndr_print_ptr(ndr, "alias_member", r->alias_member);
4422                         ndr->depth++;
4423                         if (r->alias_member) {
4424                                 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr, "alias_member", r->alias_member);
4425                         }
4426                         ndr->depth--;
4427                 break;
4428
4429                 case NETR_DELTA_POLICY:
4430                         ndr_print_ptr(ndr, "policy", r->policy);
4431                         ndr->depth++;
4432                         if (r->policy) {
4433                                 ndr_print_netr_DELTA_POLICY(ndr, "policy", r->policy);
4434                         }
4435                         ndr->depth--;
4436                 break;
4437
4438                 case NETR_DELTA_TRUSTED_DOMAIN:
4439                         ndr_print_ptr(ndr, "trusted_domain", r->trusted_domain);
4440                         ndr->depth++;
4441                         if (r->trusted_domain) {
4442                                 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr, "trusted_domain", r->trusted_domain);
4443                         }
4444                         ndr->depth--;
4445                 break;
4446
4447                 case NETR_DELTA_DELETE_TRUST:
4448                         ndr_print_netr_DELTA_DELETE_TRUST(ndr, "delete_trust", &r->delete_trust);
4449                 break;
4450
4451                 case NETR_DELTA_ACCOUNT:
4452                         ndr_print_ptr(ndr, "account", r->account);
4453                         ndr->depth++;
4454                         if (r->account) {
4455                                 ndr_print_netr_DELTA_ACCOUNT(ndr, "account", r->account);
4456                         }
4457                         ndr->depth--;
4458                 break;
4459
4460                 case NETR_DELTA_DELETE_ACCOUNT:
4461                         ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr, "delete_account", &r->delete_account);
4462                 break;
4463
4464                 case NETR_DELTA_SECRET:
4465                         ndr_print_ptr(ndr, "secret", r->secret);
4466                         ndr->depth++;
4467                         if (r->secret) {
4468                                 ndr_print_netr_DELTA_SECRET(ndr, "secret", r->secret);
4469                         }
4470                         ndr->depth--;
4471                 break;
4472
4473                 case NETR_DELTA_DELETE_SECRET:
4474                         ndr_print_netr_DELTA_DELETE_SECRET(ndr, "delete_secret", &r->delete_secret);
4475                 break;
4476
4477                 case NETR_DELTA_DELETE_GROUP2:
4478                         ndr_print_ptr(ndr, "delete_group", r->delete_group);
4479                         ndr->depth++;
4480                         if (r->delete_group) {
4481                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_group", r->delete_group);
4482                         }
4483                         ndr->depth--;
4484                 break;
4485
4486                 case NETR_DELTA_DELETE_USER2:
4487                         ndr_print_ptr(ndr, "delete_user", r->delete_user);
4488                         ndr->depth++;
4489                         if (r->delete_user) {
4490                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_user", r->delete_user);
4491                         }
4492                         ndr->depth--;
4493                 break;
4494
4495                 case NETR_DELTA_MODIFY_COUNT:
4496                         ndr_print_ptr(ndr, "modified_count", r->modified_count);
4497                         ndr->depth++;
4498                         if (r->modified_count) {
4499                                 ndr_print_udlong(ndr, "modified_count", *r->modified_count);
4500                         }
4501                         ndr->depth--;
4502                 break;
4503
4504                 default:
4505                         ndr_print_bad_level(ndr, name, level);
4506         }
4507 }
4508
4509 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)
4510 {
4511         if (ndr_flags & NDR_SCALARS) {
4512                 int level = ndr_push_get_switch_value(ndr, r);
4513                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
4514                 switch (level) {
4515                         case NETR_DELTA_DOMAIN: {
4516                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4517                         break; }
4518
4519                         case NETR_DELTA_GROUP: {
4520                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4521                         break; }
4522
4523                         case NETR_DELTA_DELETE_GROUP: {
4524                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4525                         break; }
4526
4527                         case NETR_DELTA_RENAME_GROUP: {
4528                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4529                         break; }
4530
4531                         case NETR_DELTA_USER: {
4532                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4533                         break; }
4534
4535                         case NETR_DELTA_DELETE_USER: {
4536                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4537                         break; }
4538
4539                         case NETR_DELTA_RENAME_USER: {
4540                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4541                         break; }
4542
4543                         case NETR_DELTA_GROUP_MEMBER: {
4544                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4545                         break; }
4546
4547                         case NETR_DELTA_ALIAS: {
4548                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4549                         break; }
4550
4551                         case NETR_DELTA_DELETE_ALIAS: {
4552                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4553                         break; }
4554
4555                         case NETR_DELTA_RENAME_ALIAS: {
4556                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4557                         break; }
4558
4559                         case NETR_DELTA_ALIAS_MEMBER: {
4560                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4561                         break; }
4562
4563                         case NETR_DELTA_POLICY: {
4564                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4565                         break; }
4566
4567                         case NETR_DELTA_TRUSTED_DOMAIN: {
4568                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4569                         break; }
4570
4571                         case NETR_DELTA_DELETE_TRUST: {
4572                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4573                         break; }
4574
4575                         case NETR_DELTA_ACCOUNT: {
4576                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4577                         break; }
4578
4579                         case NETR_DELTA_DELETE_ACCOUNT: {
4580                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4581                         break; }
4582
4583                         case NETR_DELTA_SECRET: {
4584                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4585                         break; }
4586
4587                         case NETR_DELTA_DELETE_SECRET: {
4588                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4589                         break; }
4590
4591                         case NETR_DELTA_DELETE_GROUP2: {
4592                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4593                         break; }
4594
4595                         case NETR_DELTA_DELETE_USER2: {
4596                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4597                         break; }
4598
4599                         case NETR_DELTA_MODIFY_COUNT: {
4600                         break; }
4601
4602                         default:
4603                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4604                 }
4605         }
4606         if (ndr_flags & NDR_BUFFERS) {
4607                 int level = ndr_push_get_switch_value(ndr, r);
4608                 switch (level) {
4609                         case NETR_DELTA_DOMAIN:
4610                         break;
4611
4612                         case NETR_DELTA_GROUP:
4613                         break;
4614
4615                         case NETR_DELTA_DELETE_GROUP:
4616                         break;
4617
4618                         case NETR_DELTA_RENAME_GROUP:
4619                         break;
4620
4621                         case NETR_DELTA_USER:
4622                         break;
4623
4624                         case NETR_DELTA_DELETE_USER:
4625                         break;
4626
4627                         case NETR_DELTA_RENAME_USER:
4628                         break;
4629
4630                         case NETR_DELTA_GROUP_MEMBER:
4631                         break;
4632
4633                         case NETR_DELTA_ALIAS:
4634                         break;
4635
4636                         case NETR_DELTA_DELETE_ALIAS:
4637                         break;
4638
4639                         case NETR_DELTA_RENAME_ALIAS:
4640                         break;
4641
4642                         case NETR_DELTA_ALIAS_MEMBER:
4643                         break;
4644
4645                         case NETR_DELTA_POLICY:
4646                                 if (r->sid) {
4647                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4648                                 }
4649                         break;
4650
4651                         case NETR_DELTA_TRUSTED_DOMAIN:
4652                                 if (r->sid) {
4653                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4654                                 }
4655                         break;
4656
4657                         case NETR_DELTA_DELETE_TRUST:
4658                                 if (r->sid) {
4659                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4660                                 }
4661                         break;
4662
4663                         case NETR_DELTA_ACCOUNT:
4664                                 if (r->sid) {
4665                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4666                                 }
4667                         break;
4668
4669                         case NETR_DELTA_DELETE_ACCOUNT:
4670                                 if (r->sid) {
4671                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4672                                 }
4673                         break;
4674
4675                         case NETR_DELTA_SECRET:
4676                                 if (r->name) {
4677                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4678                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4679                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4680                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4681                                 }
4682                         break;
4683
4684                         case NETR_DELTA_DELETE_SECRET:
4685                                 if (r->name) {
4686                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4687                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4688                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4689                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4690                                 }
4691                         break;
4692
4693                         case NETR_DELTA_DELETE_GROUP2:
4694                         break;
4695
4696                         case NETR_DELTA_DELETE_USER2:
4697                         break;
4698
4699                         case NETR_DELTA_MODIFY_COUNT:
4700                         break;
4701
4702                         default:
4703                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4704                 }
4705         }
4706         return NDR_ERR_SUCCESS;
4707 }
4708
4709 static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_ID_UNION *r)
4710 {
4711         int level;
4712         uint16_t _level;
4713         TALLOC_CTX *_mem_save_sid_0;
4714         TALLOC_CTX *_mem_save_name_0;
4715         level = ndr_pull_get_switch_value(ndr, r);
4716         if (ndr_flags & NDR_SCALARS) {
4717                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4718                 if (_level != level) {
4719                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4720                 }
4721                 switch (level) {
4722                         case NETR_DELTA_DOMAIN: {
4723                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4724                         break; }
4725
4726                         case NETR_DELTA_GROUP: {
4727                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4728                         break; }
4729
4730                         case NETR_DELTA_DELETE_GROUP: {
4731                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4732                         break; }
4733
4734                         case NETR_DELTA_RENAME_GROUP: {
4735                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4736                         break; }
4737
4738                         case NETR_DELTA_USER: {
4739                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4740                         break; }
4741
4742                         case NETR_DELTA_DELETE_USER: {
4743                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4744                         break; }
4745
4746                         case NETR_DELTA_RENAME_USER: {
4747                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4748                         break; }
4749
4750                         case NETR_DELTA_GROUP_MEMBER: {
4751                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4752                         break; }
4753
4754                         case NETR_DELTA_ALIAS: {
4755                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4756                         break; }
4757
4758                         case NETR_DELTA_DELETE_ALIAS: {
4759                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4760                         break; }
4761
4762                         case NETR_DELTA_RENAME_ALIAS: {
4763                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4764                         break; }
4765
4766                         case NETR_DELTA_ALIAS_MEMBER: {
4767                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4768                         break; }
4769
4770                         case NETR_DELTA_POLICY: {
4771                                 uint32_t _ptr_sid;
4772                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4773                                 if (_ptr_sid) {
4774                                         NDR_PULL_ALLOC(ndr, r->sid);
4775                                 } else {
4776                                         r->sid = NULL;
4777                                 }
4778                         break; }
4779
4780                         case NETR_DELTA_TRUSTED_DOMAIN: {
4781                                 uint32_t _ptr_sid;
4782                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4783                                 if (_ptr_sid) {
4784                                         NDR_PULL_ALLOC(ndr, r->sid);
4785                                 } else {
4786                                         r->sid = NULL;
4787                                 }
4788                         break; }
4789
4790                         case NETR_DELTA_DELETE_TRUST: {
4791                                 uint32_t _ptr_sid;
4792                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4793                                 if (_ptr_sid) {
4794                                         NDR_PULL_ALLOC(ndr, r->sid);
4795                                 } else {
4796                                         r->sid = NULL;
4797                                 }
4798                         break; }
4799
4800                         case NETR_DELTA_ACCOUNT: {
4801                                 uint32_t _ptr_sid;
4802                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4803                                 if (_ptr_sid) {
4804                                         NDR_PULL_ALLOC(ndr, r->sid);
4805                                 } else {
4806                                         r->sid = NULL;
4807                                 }
4808                         break; }
4809
4810                         case NETR_DELTA_DELETE_ACCOUNT: {
4811                                 uint32_t _ptr_sid;
4812                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4813                                 if (_ptr_sid) {
4814                                         NDR_PULL_ALLOC(ndr, r->sid);
4815                                 } else {
4816                                         r->sid = NULL;
4817                                 }
4818                         break; }
4819
4820                         case NETR_DELTA_SECRET: {
4821                                 uint32_t _ptr_name;
4822                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4823                                 if (_ptr_name) {
4824                                         NDR_PULL_ALLOC(ndr, r->name);
4825                                 } else {
4826                                         r->name = NULL;
4827                                 }
4828                         break; }
4829
4830                         case NETR_DELTA_DELETE_SECRET: {
4831                                 uint32_t _ptr_name;
4832                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4833                                 if (_ptr_name) {
4834                                         NDR_PULL_ALLOC(ndr, r->name);
4835                                 } else {
4836                                         r->name = NULL;
4837                                 }
4838                         break; }
4839
4840                         case NETR_DELTA_DELETE_GROUP2: {
4841                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4842                         break; }
4843
4844                         case NETR_DELTA_DELETE_USER2: {
4845                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4846                         break; }
4847
4848                         case NETR_DELTA_MODIFY_COUNT: {
4849                         break; }
4850
4851                         default:
4852                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4853                 }
4854         }
4855         if (ndr_flags & NDR_BUFFERS) {
4856                 switch (level) {
4857                         case NETR_DELTA_DOMAIN:
4858                         break;
4859
4860                         case NETR_DELTA_GROUP:
4861                         break;
4862
4863                         case NETR_DELTA_DELETE_GROUP:
4864                         break;
4865
4866                         case NETR_DELTA_RENAME_GROUP:
4867                         break;
4868
4869                         case NETR_DELTA_USER:
4870                         break;
4871
4872                         case NETR_DELTA_DELETE_USER:
4873                         break;
4874
4875                         case NETR_DELTA_RENAME_USER:
4876                         break;
4877
4878                         case NETR_DELTA_GROUP_MEMBER:
4879                         break;
4880
4881                         case NETR_DELTA_ALIAS:
4882                         break;
4883
4884                         case NETR_DELTA_DELETE_ALIAS:
4885                         break;
4886
4887                         case NETR_DELTA_RENAME_ALIAS:
4888                         break;
4889
4890                         case NETR_DELTA_ALIAS_MEMBER:
4891                         break;
4892
4893                         case NETR_DELTA_POLICY:
4894                                 if (r->sid) {
4895                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4896                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4897                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4898                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4899                                 }
4900                         break;
4901
4902                         case NETR_DELTA_TRUSTED_DOMAIN:
4903                                 if (r->sid) {
4904                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4905                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4906                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4907                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4908                                 }
4909                         break;
4910
4911                         case NETR_DELTA_DELETE_TRUST:
4912                                 if (r->sid) {
4913                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4914                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4915                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4916                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4917                                 }
4918                         break;
4919
4920                         case NETR_DELTA_ACCOUNT:
4921                                 if (r->sid) {
4922                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4923                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4924                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4925                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4926                                 }
4927                         break;
4928
4929                         case NETR_DELTA_DELETE_ACCOUNT:
4930                                 if (r->sid) {
4931                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4932                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4933                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4934                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4935                                 }
4936                         break;
4937
4938                         case NETR_DELTA_SECRET:
4939                                 if (r->name) {
4940                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4941                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
4942                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
4943                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
4944                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
4945                                                 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));
4946                                         }
4947                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
4948                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
4949                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
4950                                 }
4951                         break;
4952
4953                         case NETR_DELTA_DELETE_SECRET:
4954                                 if (r->name) {
4955                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4956                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
4957                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
4958                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
4959                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
4960                                                 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));
4961                                         }
4962                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
4963                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
4964                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
4965                                 }
4966                         break;
4967
4968                         case NETR_DELTA_DELETE_GROUP2:
4969                         break;
4970
4971                         case NETR_DELTA_DELETE_USER2:
4972                         break;
4973
4974                         case NETR_DELTA_MODIFY_COUNT:
4975                         break;
4976
4977                         default:
4978                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4979                 }
4980         }
4981         return NDR_ERR_SUCCESS;
4982 }
4983
4984 _PUBLIC_ void ndr_print_netr_DELTA_ID_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_ID_UNION *r)
4985 {
4986         int level;
4987         level = ndr_print_get_switch_value(ndr, r);
4988         ndr_print_union(ndr, name, level, "netr_DELTA_ID_UNION");
4989         switch (level) {
4990                 case NETR_DELTA_DOMAIN:
4991                         ndr_print_uint32(ndr, "rid", r->rid);
4992                 break;
4993
4994                 case NETR_DELTA_GROUP:
4995                         ndr_print_uint32(ndr, "rid", r->rid);
4996                 break;
4997
4998                 case NETR_DELTA_DELETE_GROUP:
4999                         ndr_print_uint32(ndr, "rid", r->rid);
5000                 break;
5001
5002                 case NETR_DELTA_RENAME_GROUP:
5003                         ndr_print_uint32(ndr, "rid", r->rid);
5004                 break;
5005
5006                 case NETR_DELTA_USER:
5007                         ndr_print_uint32(ndr, "rid", r->rid);
5008                 break;
5009
5010                 case NETR_DELTA_DELETE_USER:
5011                         ndr_print_uint32(ndr, "rid", r->rid);
5012                 break;
5013
5014                 case NETR_DELTA_RENAME_USER:
5015                         ndr_print_uint32(ndr, "rid", r->rid);
5016                 break;
5017
5018                 case NETR_DELTA_GROUP_MEMBER:
5019                         ndr_print_uint32(ndr, "rid", r->rid);
5020                 break;
5021
5022                 case NETR_DELTA_ALIAS:
5023                         ndr_print_uint32(ndr, "rid", r->rid);
5024                 break;
5025
5026                 case NETR_DELTA_DELETE_ALIAS:
5027                         ndr_print_uint32(ndr, "rid", r->rid);
5028                 break;
5029
5030                 case NETR_DELTA_RENAME_ALIAS:
5031                         ndr_print_uint32(ndr, "rid", r->rid);
5032                 break;
5033
5034                 case NETR_DELTA_ALIAS_MEMBER:
5035                         ndr_print_uint32(ndr, "rid", r->rid);
5036                 break;
5037
5038                 case NETR_DELTA_POLICY:
5039                         ndr_print_ptr(ndr, "sid", r->sid);
5040                         ndr->depth++;
5041                         if (r->sid) {
5042                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5043                         }
5044                         ndr->depth--;
5045                 break;
5046
5047                 case NETR_DELTA_TRUSTED_DOMAIN:
5048                         ndr_print_ptr(ndr, "sid", r->sid);
5049                         ndr->depth++;
5050                         if (r->sid) {
5051                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5052                         }
5053                         ndr->depth--;
5054                 break;
5055
5056                 case NETR_DELTA_DELETE_TRUST:
5057                         ndr_print_ptr(ndr, "sid", r->sid);
5058                         ndr->depth++;
5059                         if (r->sid) {
5060                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5061                         }
5062                         ndr->depth--;
5063                 break;
5064
5065                 case NETR_DELTA_ACCOUNT:
5066                         ndr_print_ptr(ndr, "sid", r->sid);
5067                         ndr->depth++;
5068                         if (r->sid) {
5069                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5070                         }
5071                         ndr->depth--;
5072                 break;
5073
5074                 case NETR_DELTA_DELETE_ACCOUNT:
5075                         ndr_print_ptr(ndr, "sid", r->sid);
5076                         ndr->depth++;
5077                         if (r->sid) {
5078                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5079                         }
5080                         ndr->depth--;
5081                 break;
5082
5083                 case NETR_DELTA_SECRET:
5084                         ndr_print_ptr(ndr, "name", r->name);
5085                         ndr->depth++;
5086                         if (r->name) {
5087                                 ndr_print_string(ndr, "name", r->name);
5088                         }
5089                         ndr->depth--;
5090                 break;
5091
5092                 case NETR_DELTA_DELETE_SECRET:
5093                         ndr_print_ptr(ndr, "name", r->name);
5094                         ndr->depth++;
5095                         if (r->name) {
5096                                 ndr_print_string(ndr, "name", r->name);
5097                         }
5098                         ndr->depth--;
5099                 break;
5100
5101                 case NETR_DELTA_DELETE_GROUP2:
5102                         ndr_print_uint32(ndr, "rid", r->rid);
5103                 break;
5104
5105                 case NETR_DELTA_DELETE_USER2:
5106                         ndr_print_uint32(ndr, "rid", r->rid);
5107                 break;
5108
5109                 case NETR_DELTA_MODIFY_COUNT:
5110                 break;
5111
5112                 default:
5113                         ndr_print_bad_level(ndr, name, level);
5114         }
5115 }
5116
5117 static enum ndr_err_code ndr_push_netr_DELTA_ENUM(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM *r)
5118 {
5119         if (ndr_flags & NDR_SCALARS) {
5120                 NDR_CHECK(ndr_push_align(ndr, 4));
5121                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, r->delta_type));
5122                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5123                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5124                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_union, r->delta_type));
5125                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5126         }
5127         if (ndr_flags & NDR_BUFFERS) {
5128                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5129                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5130         }
5131         return NDR_ERR_SUCCESS;
5132 }
5133
5134 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM *r)
5135 {
5136         if (ndr_flags & NDR_SCALARS) {
5137                 NDR_CHECK(ndr_pull_align(ndr, 4));
5138                 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr, NDR_SCALARS, &r->delta_type));
5139                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5140                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5141                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_union, r->delta_type));
5142                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5143         }
5144         if (ndr_flags & NDR_BUFFERS) {
5145                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5146                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5147         }
5148         return NDR_ERR_SUCCESS;
5149 }
5150
5151 _PUBLIC_ void ndr_print_netr_DELTA_ENUM(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM *r)
5152 {
5153         ndr_print_struct(ndr, name, "netr_DELTA_ENUM");
5154         ndr->depth++;
5155         ndr_print_netr_DeltaEnum(ndr, "delta_type", r->delta_type);
5156         ndr_print_set_switch_value(ndr, &r->delta_id_union, r->delta_type);
5157         ndr_print_netr_DELTA_ID_UNION(ndr, "delta_id_union", &r->delta_id_union);
5158         ndr_print_set_switch_value(ndr, &r->delta_union, r->delta_type);
5159         ndr_print_netr_DELTA_UNION(ndr, "delta_union", &r->delta_union);
5160         ndr->depth--;
5161 }
5162
5163 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)
5164 {
5165         uint32_t cntr_delta_enum_1;
5166         if (ndr_flags & NDR_SCALARS) {
5167                 NDR_CHECK(ndr_push_align(ndr, 4));
5168                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5169                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delta_enum));
5170         }
5171         if (ndr_flags & NDR_BUFFERS) {
5172                 if (r->delta_enum) {
5173                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5174                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5175                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5176                         }
5177                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5178                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5179                         }
5180                 }
5181         }
5182         return NDR_ERR_SUCCESS;
5183 }
5184
5185 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r)
5186 {
5187         uint32_t _ptr_delta_enum;
5188         uint32_t cntr_delta_enum_1;
5189         TALLOC_CTX *_mem_save_delta_enum_0;
5190         TALLOC_CTX *_mem_save_delta_enum_1;
5191         if (ndr_flags & NDR_SCALARS) {
5192                 NDR_CHECK(ndr_pull_align(ndr, 4));
5193                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_deltas));
5194                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum));
5195                 if (_ptr_delta_enum) {
5196                         NDR_PULL_ALLOC(ndr, r->delta_enum);
5197                 } else {
5198                         r->delta_enum = NULL;
5199                 }
5200         }
5201         if (ndr_flags & NDR_BUFFERS) {
5202                 if (r->delta_enum) {
5203                         _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr);
5204                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5205                         NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum));
5206                         NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum));
5207                         _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr);
5208                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5209                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5210                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5211                         }
5212                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5213                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5214                         }
5215                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0);
5216                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_0, 0);
5217                 }
5218                 if (r->delta_enum) {
5219                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delta_enum, r->num_deltas));
5220                 }
5221         }
5222         return NDR_ERR_SUCCESS;
5223 }
5224
5225 _PUBLIC_ void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM_ARRAY *r)
5226 {
5227         uint32_t cntr_delta_enum_1;
5228         ndr_print_struct(ndr, name, "netr_DELTA_ENUM_ARRAY");
5229         ndr->depth++;
5230         ndr_print_uint32(ndr, "num_deltas", r->num_deltas);
5231         ndr_print_ptr(ndr, "delta_enum", r->delta_enum);
5232         ndr->depth++;
5233         if (r->delta_enum) {
5234                 ndr->print(ndr, "%s: ARRAY(%d)", "delta_enum", (int)r->num_deltas);
5235                 ndr->depth++;
5236                 for (cntr_delta_enum_1=0;cntr_delta_enum_1<r->num_deltas;cntr_delta_enum_1++) {
5237                         char *idx_1=NULL;
5238                         if (asprintf(&idx_1, "[%d]", cntr_delta_enum_1) != -1) {
5239                                 ndr_print_netr_DELTA_ENUM(ndr, "delta_enum", &r->delta_enum[cntr_delta_enum_1]);
5240                                 free(idx_1);
5241                         }
5242                 }
5243                 ndr->depth--;
5244         }
5245         ndr->depth--;
5246         ndr->depth--;
5247 }
5248
5249 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)
5250 {
5251         {
5252                 uint32_t _flags_save_STRUCT = ndr->flags;
5253                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5254                 if (ndr_flags & NDR_SCALARS) {
5255                         NDR_CHECK(ndr_push_align(ndr, 4));
5256                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5257                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timecreated));
5258                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number));
5259                 }
5260                 if (ndr_flags & NDR_BUFFERS) {
5261                 }
5262                 ndr->flags = _flags_save_STRUCT;
5263         }
5264         return NDR_ERR_SUCCESS;
5265 }
5266
5267 static enum ndr_err_code ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r)
5268 {
5269         {
5270                 uint32_t _flags_save_STRUCT = ndr->flags;
5271                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5272                 if (ndr_flags & NDR_SCALARS) {
5273                         NDR_CHECK(ndr_pull_align(ndr, 4));
5274                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5275                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated));
5276                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number));
5277                 }
5278                 if (ndr_flags & NDR_BUFFERS) {
5279                 }
5280                 ndr->flags = _flags_save_STRUCT;
5281         }
5282         return NDR_ERR_SUCCESS;
5283 }
5284
5285 _PUBLIC_ void ndr_print_netr_UAS_INFO_0(struct ndr_print *ndr, const char *name, const struct netr_UAS_INFO_0 *r)
5286 {
5287         ndr_print_struct(ndr, name, "netr_UAS_INFO_0");
5288         {
5289                 uint32_t _flags_save_STRUCT = ndr->flags;
5290                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5291                 ndr->depth++;
5292                 ndr_print_array_uint8(ndr, "computer_name", r->computer_name, 16);
5293                 ndr_print_uint32(ndr, "timecreated", r->timecreated);
5294                 ndr_print_uint32(ndr, "serial_number", r->serial_number);
5295                 ndr->depth--;
5296                 ndr->flags = _flags_save_STRUCT;
5297         }
5298 }
5299
5300 static enum ndr_err_code ndr_push_netr_AccountBuffer(struct ndr_push *ndr, int ndr_flags, const struct netr_AccountBuffer *r)
5301 {
5302         if (ndr_flags & NDR_SCALARS) {
5303                 NDR_CHECK(ndr_push_align(ndr, 4));
5304                 {
5305                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5306                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5307                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
5308                         ndr->flags = _flags_save_DATA_BLOB;
5309                 }
5310         }
5311         if (ndr_flags & NDR_BUFFERS) {
5312         }
5313         return NDR_ERR_SUCCESS;
5314 }
5315
5316 static enum ndr_err_code ndr_pull_netr_AccountBuffer(struct ndr_pull *ndr, int ndr_flags, struct netr_AccountBuffer *r)
5317 {
5318         if (ndr_flags & NDR_SCALARS) {
5319                 NDR_CHECK(ndr_pull_align(ndr, 4));
5320                 {
5321                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5322                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5323                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
5324                         ndr->flags = _flags_save_DATA_BLOB;
5325                 }
5326         }
5327         if (ndr_flags & NDR_BUFFERS) {
5328         }
5329         return NDR_ERR_SUCCESS;
5330 }
5331
5332 _PUBLIC_ void ndr_print_netr_AccountBuffer(struct ndr_print *ndr, const char *name, const struct netr_AccountBuffer *r)
5333 {
5334         ndr_print_struct(ndr, name, "netr_AccountBuffer");
5335         ndr->depth++;
5336         ndr_print_DATA_BLOB(ndr, "blob", r->blob);
5337         ndr->depth--;
5338 }
5339
5340 static enum ndr_err_code ndr_push_netr_InfoFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
5341 {
5342         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5343         return NDR_ERR_SUCCESS;
5344 }
5345
5346 static enum ndr_err_code ndr_pull_netr_InfoFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
5347 {
5348         uint32_t v;
5349         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5350         *r = v;
5351         return NDR_ERR_SUCCESS;
5352 }
5353
5354 _PUBLIC_ void ndr_print_netr_InfoFlags(struct ndr_print *ndr, const char *name, uint32_t r)
5355 {
5356         ndr_print_uint32(ndr, name, r);
5357         ndr->depth++;
5358         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_NEEDED", NETLOGON_CTRL_REPL_NEEDED, r);
5359         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_IN_PROGRESS", NETLOGON_CTRL_REPL_IN_PROGRESS, r);
5360         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_FULL_SYNC", NETLOGON_CTRL_REPL_FULL_SYNC, r);
5361         ndr->depth--;
5362 }
5363
5364 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)
5365 {
5366         if (ndr_flags & NDR_SCALARS) {
5367                 NDR_CHECK(ndr_push_align(ndr, 4));
5368                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5369                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5370         }
5371         if (ndr_flags & NDR_BUFFERS) {
5372         }
5373         return NDR_ERR_SUCCESS;
5374 }
5375
5376 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_1 *r)
5377 {
5378         if (ndr_flags & NDR_SCALARS) {
5379                 NDR_CHECK(ndr_pull_align(ndr, 4));
5380                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5381                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5382         }
5383         if (ndr_flags & NDR_BUFFERS) {
5384         }
5385         return NDR_ERR_SUCCESS;
5386 }
5387
5388 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_1 *r)
5389 {
5390         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_1");
5391         ndr->depth++;
5392         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5393         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5394         ndr->depth--;
5395 }
5396
5397 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)
5398 {
5399         if (ndr_flags & NDR_SCALARS) {
5400                 NDR_CHECK(ndr_push_align(ndr, 4));
5401                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5402                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5403                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_dc_name));
5404                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->tc_connection_status));
5405         }
5406         if (ndr_flags & NDR_BUFFERS) {
5407                 if (r->trusted_dc_name) {
5408                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5409                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5410                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5411                         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));
5412                 }
5413         }
5414         return NDR_ERR_SUCCESS;
5415 }
5416
5417 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r)
5418 {
5419         uint32_t _ptr_trusted_dc_name;
5420         TALLOC_CTX *_mem_save_trusted_dc_name_0;
5421         if (ndr_flags & NDR_SCALARS) {
5422                 NDR_CHECK(ndr_pull_align(ndr, 4));
5423                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5424                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5425                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_dc_name));
5426                 if (_ptr_trusted_dc_name) {
5427                         NDR_PULL_ALLOC(ndr, r->trusted_dc_name);
5428                 } else {
5429                         r->trusted_dc_name = NULL;
5430                 }
5431                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->tc_connection_status));
5432         }
5433         if (ndr_flags & NDR_BUFFERS) {
5434                 if (r->trusted_dc_name) {
5435                         _mem_save_trusted_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5436                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0);
5437                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5438                         NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5439                         if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5440                                 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));
5441                         }
5442                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5443                         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));
5444                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0);
5445                 }
5446         }
5447         return NDR_ERR_SUCCESS;
5448 }
5449
5450 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_2 *r)
5451 {
5452         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_2");
5453         ndr->depth++;
5454         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5455         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5456         ndr_print_ptr(ndr, "trusted_dc_name", r->trusted_dc_name);
5457         ndr->depth++;
5458         if (r->trusted_dc_name) {
5459                 ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5460         }
5461         ndr->depth--;
5462         ndr_print_uint32(ndr, "tc_connection_status", r->tc_connection_status);
5463         ndr->depth--;
5464 }
5465
5466 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)
5467 {
5468         if (ndr_flags & NDR_SCALARS) {
5469                 NDR_CHECK(ndr_push_align(ndr, 4));
5470                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5471                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_attempts));
5472                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
5473                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
5474                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
5475                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
5476                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
5477         }
5478         if (ndr_flags & NDR_BUFFERS) {
5479         }
5480         return NDR_ERR_SUCCESS;
5481 }
5482
5483 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_3 *r)
5484 {
5485         if (ndr_flags & NDR_SCALARS) {
5486                 NDR_CHECK(ndr_pull_align(ndr, 4));
5487                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5488                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_attempts));
5489                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
5490                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
5491                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
5492                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
5493                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
5494         }
5495         if (ndr_flags & NDR_BUFFERS) {
5496         }
5497         return NDR_ERR_SUCCESS;
5498 }
5499
5500 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_3 *r)
5501 {
5502         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_3");
5503         ndr->depth++;
5504         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5505         ndr_print_uint32(ndr, "logon_attempts", r->logon_attempts);
5506         ndr_print_uint32(ndr, "unknown1", r->unknown1);
5507         ndr_print_uint32(ndr, "unknown2", r->unknown2);
5508         ndr_print_uint32(ndr, "unknown3", r->unknown3);
5509         ndr_print_uint32(ndr, "unknown4", r->unknown4);
5510         ndr_print_uint32(ndr, "unknown5", r->unknown5);
5511         ndr->depth--;
5512 }
5513
5514 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)
5515 {
5516         if (ndr_flags & NDR_SCALARS) {
5517                 int level = ndr_push_get_switch_value(ndr, r);
5518                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5519                 switch (level) {
5520                         case 1: {
5521                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5522                         break; }
5523
5524                         case 2: {
5525                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5526                         break; }
5527
5528                         case 3: {
5529                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5530                         break; }
5531
5532                         default:
5533                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5534                 }
5535         }
5536         if (ndr_flags & NDR_BUFFERS) {
5537                 int level = ndr_push_get_switch_value(ndr, r);
5538                 switch (level) {
5539                         case 1:
5540                                 if (r->info1) {
5541                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5542                                 }
5543                         break;
5544
5545                         case 2:
5546                                 if (r->info2) {
5547                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5548                                 }
5549                         break;
5550
5551                         case 3:
5552                                 if (r->info3) {
5553                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5554                                 }
5555                         break;
5556
5557                         default:
5558                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5559                 }
5560         }
5561         return NDR_ERR_SUCCESS;
5562 }
5563
5564 static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_QUERY_INFORMATION *r)
5565 {
5566         int level;
5567         uint32_t _level;
5568         TALLOC_CTX *_mem_save_info1_0;
5569         TALLOC_CTX *_mem_save_info2_0;
5570         TALLOC_CTX *_mem_save_info3_0;
5571         level = ndr_pull_get_switch_value(ndr, r);
5572         if (ndr_flags & NDR_SCALARS) {
5573                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5574                 if (_level != level) {
5575                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5576                 }
5577                 switch (level) {
5578                         case 1: {
5579                                 uint32_t _ptr_info1;
5580                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5581                                 if (_ptr_info1) {
5582                                         NDR_PULL_ALLOC(ndr, r->info1);
5583                                 } else {
5584                                         r->info1 = NULL;
5585                                 }
5586                         break; }
5587
5588                         case 2: {
5589                                 uint32_t _ptr_info2;
5590                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5591                                 if (_ptr_info2) {
5592                                         NDR_PULL_ALLOC(ndr, r->info2);
5593                                 } else {
5594                                         r->info2 = NULL;
5595                                 }
5596                         break; }
5597
5598                         case 3: {
5599                                 uint32_t _ptr_info3;
5600                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5601                                 if (_ptr_info3) {
5602                                         NDR_PULL_ALLOC(ndr, r->info3);
5603                                 } else {
5604                                         r->info3 = NULL;
5605                                 }
5606                         break; }
5607
5608                         default:
5609                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5610                 }
5611         }
5612         if (ndr_flags & NDR_BUFFERS) {
5613                 switch (level) {
5614                         case 1:
5615                                 if (r->info1) {
5616                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5617                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5618                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5619                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5620                                 }
5621                         break;
5622
5623                         case 2:
5624                                 if (r->info2) {
5625                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5626                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5627                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5628                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5629                                 }
5630                         break;
5631
5632                         case 3:
5633                                 if (r->info3) {
5634                                         _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5635                                         NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5636                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5637                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5638                                 }
5639                         break;
5640
5641                         default:
5642                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5643                 }
5644         }
5645         return NDR_ERR_SUCCESS;
5646 }
5647
5648 _PUBLIC_ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_QUERY_INFORMATION *r)
5649 {
5650         int level;
5651         level = ndr_print_get_switch_value(ndr, r);
5652         ndr_print_union(ndr, name, level, "netr_CONTROL_QUERY_INFORMATION");
5653         switch (level) {
5654                 case 1:
5655                         ndr_print_ptr(ndr, "info1", r->info1);
5656                         ndr->depth++;
5657                         if (r->info1) {
5658                                 ndr_print_netr_NETLOGON_INFO_1(ndr, "info1", r->info1);
5659                         }
5660                         ndr->depth--;
5661                 break;
5662
5663                 case 2:
5664                         ndr_print_ptr(ndr, "info2", r->info2);
5665                         ndr->depth++;
5666                         if (r->info2) {
5667                                 ndr_print_netr_NETLOGON_INFO_2(ndr, "info2", r->info2);
5668                         }
5669                         ndr->depth--;
5670                 break;
5671
5672                 case 3:
5673                         ndr_print_ptr(ndr, "info3", r->info3);
5674                         ndr->depth++;
5675                         if (r->info3) {
5676                                 ndr_print_netr_NETLOGON_INFO_3(ndr, "info3", r->info3);
5677                         }
5678                         ndr->depth--;
5679                 break;
5680
5681                 default:
5682                         ndr_print_bad_level(ndr, name, level);
5683         }
5684 }
5685
5686 static enum ndr_err_code ndr_push_netr_LogonControlCode(struct ndr_push *ndr, int ndr_flags, enum netr_LogonControlCode r)
5687 {
5688         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5689         return NDR_ERR_SUCCESS;
5690 }
5691
5692 static enum ndr_err_code ndr_pull_netr_LogonControlCode(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonControlCode *r)
5693 {
5694         uint32_t v;
5695         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5696         *r = v;
5697         return NDR_ERR_SUCCESS;
5698 }
5699
5700 _PUBLIC_ void ndr_print_netr_LogonControlCode(struct ndr_print *ndr, const char *name, enum netr_LogonControlCode r)
5701 {
5702         const char *val = NULL;
5703
5704         switch (r) {
5705                 case NETLOGON_CONTROL_SYNC: val = "NETLOGON_CONTROL_SYNC"; break;
5706                 case NETLOGON_CONTROL_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break;
5707                 case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break;
5708                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
5709                 case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break;
5710         }
5711         ndr_print_enum(ndr, name, "ENUM", val, r);
5712 }
5713
5714 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)
5715 {
5716         if (ndr_flags & NDR_SCALARS) {
5717                 int level = ndr_push_get_switch_value(ndr, r);
5718                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5719                 switch (level) {
5720                         case NETLOGON_CONTROL_REDISCOVER: {
5721                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5722                         break; }
5723
5724                         case NETLOGON_CONTROL_TC_QUERY: {
5725                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5726                         break; }
5727
5728                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5729                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5730                         break; }
5731
5732                         case NETLOGON_CONTROL_SET_DBFLAG: {
5733                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level));
5734                         break; }
5735
5736                         default:
5737                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5738                 }
5739         }
5740         if (ndr_flags & NDR_BUFFERS) {
5741                 int level = ndr_push_get_switch_value(ndr, r);
5742                 switch (level) {
5743                         case NETLOGON_CONTROL_REDISCOVER:
5744                                 if (r->domain) {
5745                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5746                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5747                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5748                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5749                                 }
5750                         break;
5751
5752                         case NETLOGON_CONTROL_TC_QUERY:
5753                                 if (r->domain) {
5754                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5755                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5756                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5757                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5758                                 }
5759                         break;
5760
5761                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5762                                 if (r->domain) {
5763                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5764                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5765                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5766                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5767                                 }
5768                         break;
5769
5770                         case NETLOGON_CONTROL_SET_DBFLAG:
5771                         break;
5772
5773                         default:
5774                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5775                 }
5776         }
5777         return NDR_ERR_SUCCESS;
5778 }
5779
5780 static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r)
5781 {
5782         int level;
5783         uint32_t _level;
5784         TALLOC_CTX *_mem_save_domain_0;
5785         level = ndr_pull_get_switch_value(ndr, r);
5786         if (ndr_flags & NDR_SCALARS) {
5787                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5788                 if (_level != level) {
5789                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5790                 }
5791                 switch (level) {
5792                         case NETLOGON_CONTROL_REDISCOVER: {
5793                                 uint32_t _ptr_domain;
5794                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5795                                 if (_ptr_domain) {
5796                                         NDR_PULL_ALLOC(ndr, r->domain);
5797                                 } else {
5798                                         r->domain = NULL;
5799                                 }
5800                         break; }
5801
5802                         case NETLOGON_CONTROL_TC_QUERY: {
5803                                 uint32_t _ptr_domain;
5804                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5805                                 if (_ptr_domain) {
5806                                         NDR_PULL_ALLOC(ndr, r->domain);
5807                                 } else {
5808                                         r->domain = NULL;
5809                                 }
5810                         break; }
5811
5812                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5813                                 uint32_t _ptr_domain;
5814                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5815                                 if (_ptr_domain) {
5816                                         NDR_PULL_ALLOC(ndr, r->domain);
5817                                 } else {
5818                                         r->domain = NULL;
5819                                 }
5820                         break; }
5821
5822                         case NETLOGON_CONTROL_SET_DBFLAG: {
5823                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level));
5824                         break; }
5825
5826                         default:
5827                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5828                 }
5829         }
5830         if (ndr_flags & NDR_BUFFERS) {
5831                 switch (level) {
5832                         case NETLOGON_CONTROL_REDISCOVER:
5833                                 if (r->domain) {
5834                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5835                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5836                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5837                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5838                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5839                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
5840                                         }
5841                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5842                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5843                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5844                                 }
5845                         break;
5846
5847                         case NETLOGON_CONTROL_TC_QUERY:
5848                                 if (r->domain) {
5849                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5850                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5851                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5852                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5853                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5854                                                 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));
5855                                         }
5856                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5857                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5858                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5859                                 }
5860                         break;
5861
5862                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5863                                 if (r->domain) {
5864                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5865                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5866                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5867                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5868                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5869                                                 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));
5870                                         }
5871                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5872                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5873                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5874                                 }
5875                         break;
5876
5877                         case NETLOGON_CONTROL_SET_DBFLAG:
5878                         break;
5879
5880                         default:
5881                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5882                 }
5883         }
5884         return NDR_ERR_SUCCESS;
5885 }
5886
5887 _PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r)
5888 {
5889         int level;
5890         level = ndr_print_get_switch_value(ndr, r);
5891         ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION");
5892         switch (level) {
5893                 case NETLOGON_CONTROL_REDISCOVER:
5894                         ndr_print_ptr(ndr, "domain", r->domain);
5895                         ndr->depth++;
5896                         if (r->domain) {
5897                                 ndr_print_string(ndr, "domain", r->domain);
5898                         }
5899                         ndr->depth--;
5900                 break;
5901
5902                 case NETLOGON_CONTROL_TC_QUERY:
5903                         ndr_print_ptr(ndr, "domain", r->domain);
5904                         ndr->depth++;
5905                         if (r->domain) {
5906                                 ndr_print_string(ndr, "domain", r->domain);
5907                         }
5908                         ndr->depth--;
5909                 break;
5910
5911                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5912                         ndr_print_ptr(ndr, "domain", r->domain);
5913                         ndr->depth++;
5914                         if (r->domain) {
5915                                 ndr_print_string(ndr, "domain", r->domain);
5916                         }
5917                         ndr->depth--;
5918                 break;
5919
5920                 case NETLOGON_CONTROL_SET_DBFLAG:
5921                         ndr_print_uint32(ndr, "debug_level", r->debug_level);
5922                 break;
5923
5924                 default:
5925                         ndr_print_bad_level(ndr, name, level);
5926         }
5927 }
5928
5929 static enum ndr_err_code ndr_push_netr_NegotiateFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
5930 {
5931         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5932         return NDR_ERR_SUCCESS;
5933 }
5934
5935 static enum ndr_err_code ndr_pull_netr_NegotiateFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
5936 {
5937         uint32_t v;
5938         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5939         *r = v;
5940         return NDR_ERR_SUCCESS;
5941 }
5942
5943 _PUBLIC_ void ndr_print_netr_NegotiateFlags(struct ndr_print *ndr, const char *name, uint32_t r)
5944 {
5945         ndr_print_uint32(ndr, name, r);
5946         ndr->depth++;
5947         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT, r);
5948         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL, r);
5949         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR, r);
5950         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT, r);
5951         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC, r);
5952         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL, r);
5953         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS, r);
5954         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO, r);
5955         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL, r);
5956         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC, r);
5957         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH, r);
5958         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC, r);
5959         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL, r);
5960         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL, r);
5961         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_128BIT", NETLOGON_NEG_128BIT, r);
5962         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS, r);
5963         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS, r);
5964         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2, r);
5965         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO, r);
5966         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS, r);
5967         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION, r);
5968         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH, r);
5969         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS, r);
5970         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SCHANNEL", NETLOGON_NEG_SCHANNEL, r);
5971         ndr->depth--;
5972 }
5973
5974 static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
5975 {
5976         if (ndr_flags & NDR_SCALARS) {
5977                 NDR_CHECK(ndr_push_align(ndr, 4));
5978                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
5979                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
5980         }
5981         if (ndr_flags & NDR_BUFFERS) {
5982                 if (r->data) {
5983                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
5984                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
5985                 }
5986         }
5987         return NDR_ERR_SUCCESS;
5988 }
5989
5990 static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
5991 {
5992         uint32_t _ptr_data;
5993         TALLOC_CTX *_mem_save_data_0;
5994         if (ndr_flags & NDR_SCALARS) {
5995                 NDR_CHECK(ndr_pull_align(ndr, 4));
5996                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
5997                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
5998                 if (_ptr_data) {
5999                         NDR_PULL_ALLOC(ndr, r->data);
6000                 } else {
6001                         r->data = NULL;
6002                 }
6003         }
6004         if (ndr_flags & NDR_BUFFERS) {
6005                 if (r->data) {
6006                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6007                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6008                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6009                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6010                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
6011                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6012                 }
6013                 if (r->data) {
6014                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
6015                 }
6016         }
6017         return NDR_ERR_SUCCESS;
6018 }
6019
6020 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
6021 {
6022         ndr_print_struct(ndr, name, "netr_Blob");
6023         ndr->depth++;
6024         ndr_print_uint32(ndr, "length", r->length);
6025         ndr_print_ptr(ndr, "data", r->data);
6026         ndr->depth++;
6027         if (r->data) {
6028                 ndr_print_array_uint8(ndr, "data", r->data, r->length);
6029         }
6030         ndr->depth--;
6031         ndr->depth--;
6032 }
6033
6034 static enum ndr_err_code ndr_push_netr_DsRGetDCName_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6035 {
6036         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6037         return NDR_ERR_SUCCESS;
6038 }
6039
6040 static enum ndr_err_code ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6041 {
6042         uint32_t v;
6043         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6044         *r = v;
6045         return NDR_ERR_SUCCESS;
6046 }
6047
6048 _PUBLIC_ void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char *name, uint32_t r)
6049 {
6050         ndr_print_uint32(ndr, name, r);
6051         ndr->depth++;
6052         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY, r);
6053         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED, r);
6054         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED, r);
6055         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED, r);
6056         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED, r);
6057         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY, r);
6058         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED, r);
6059         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED, r);
6060         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED, r);
6061         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED, r);
6062         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED, r);
6063         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF, r);
6064         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED, r);
6065         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME, r);
6066         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME, r);
6067         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE, r);
6068         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED, r);
6069         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME, r);
6070         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME, r);
6071         ndr->depth--;
6072 }
6073
6074 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType r)
6075 {
6076         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6077         return NDR_ERR_SUCCESS;
6078 }
6079
6080 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType *r)
6081 {
6082         uint32_t v;
6083         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6084         *r = v;
6085         return NDR_ERR_SUCCESS;
6086 }
6087
6088 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const char *name, enum netr_DsRGetDCNameInfo_AddressType r)
6089 {
6090         const char *val = NULL;
6091
6092         switch (r) {
6093                 case DS_ADDRESS_TYPE_INET: val = "DS_ADDRESS_TYPE_INET"; break;
6094                 case DS_ADDRESS_TYPE_NETBIOS: val = "DS_ADDRESS_TYPE_NETBIOS"; break;
6095         }
6096         ndr_print_enum(ndr, name, "ENUM", val, r);
6097 }
6098
6099 static enum ndr_err_code ndr_push_netr_DsR_DcFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6100 {
6101         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6102         return NDR_ERR_SUCCESS;
6103 }
6104
6105 static enum ndr_err_code ndr_pull_netr_DsR_DcFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6106 {
6107         uint32_t v;
6108         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6109         *r = v;
6110         return NDR_ERR_SUCCESS;
6111 }
6112
6113 _PUBLIC_ void ndr_print_netr_DsR_DcFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6114 {
6115         ndr_print_uint32(ndr, name, r);
6116         ndr->depth++;
6117         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC, r);
6118         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC, r);
6119         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP, r);
6120         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS, r);
6121         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC, r);
6122         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV, r);
6123         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST, r);
6124         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE, r);
6125         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV, r);
6126         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC, r);
6127         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6, r);
6128         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6, r);
6129         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER, r);
6130         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN, r);
6131         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST, r);
6132         ndr->depth--;
6133 }
6134
6135 _PUBLIC_ enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
6136 {
6137         if (ndr_flags & NDR_SCALARS) {
6138                 NDR_CHECK(ndr_push_align(ndr, 4));
6139                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
6140                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
6141                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, r->dc_address_type));
6142                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6143                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6144                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
6145                 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr, NDR_SCALARS, r->dc_flags));
6146                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
6147                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
6148         }
6149         if (ndr_flags & NDR_BUFFERS) {
6150                 if (r->dc_unc) {
6151                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6152                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6153                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6154                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6155                 }
6156                 if (r->dc_address) {
6157                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6158                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6159                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6160                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6161                 }
6162                 if (r->domain_name) {
6163                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6164                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6165                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6166                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6167                 }
6168                 if (r->forest_name) {
6169                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6170                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6171                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6172                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6173                 }
6174                 if (r->dc_site_name) {
6175                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6176                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6177                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6178                         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));
6179                 }
6180                 if (r->client_site_name) {
6181                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_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->client_site_name, CH_UTF16)));
6184                         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));
6185                 }
6186         }
6187         return NDR_ERR_SUCCESS;
6188 }
6189
6190 _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
6191 {
6192         uint32_t _ptr_dc_unc;
6193         TALLOC_CTX *_mem_save_dc_unc_0;
6194         uint32_t _ptr_dc_address;
6195         TALLOC_CTX *_mem_save_dc_address_0;
6196         uint32_t _ptr_domain_name;
6197         TALLOC_CTX *_mem_save_domain_name_0;
6198         uint32_t _ptr_forest_name;
6199         TALLOC_CTX *_mem_save_forest_name_0;
6200         uint32_t _ptr_dc_site_name;
6201         TALLOC_CTX *_mem_save_dc_site_name_0;
6202         uint32_t _ptr_client_site_name;
6203         TALLOC_CTX *_mem_save_client_site_name_0;
6204         if (ndr_flags & NDR_SCALARS) {
6205                 NDR_CHECK(ndr_pull_align(ndr, 4));
6206                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6207                 if (_ptr_dc_unc) {
6208                         NDR_PULL_ALLOC(ndr, r->dc_unc);
6209                 } else {
6210                         r->dc_unc = NULL;
6211                 }
6212                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6213                 if (_ptr_dc_address) {
6214                         NDR_PULL_ALLOC(ndr, r->dc_address);
6215                 } else {
6216                         r->dc_address = NULL;
6217                 }
6218                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, &r->dc_address_type));
6219                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6220                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6221                 if (_ptr_domain_name) {
6222                         NDR_PULL_ALLOC(ndr, r->domain_name);
6223                 } else {
6224                         r->domain_name = NULL;
6225                 }
6226                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
6227                 if (_ptr_forest_name) {
6228                         NDR_PULL_ALLOC(ndr, r->forest_name);
6229                 } else {
6230                         r->forest_name = NULL;
6231                 }
6232                 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr, NDR_SCALARS, &r->dc_flags));
6233                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
6234                 if (_ptr_dc_site_name) {
6235                         NDR_PULL_ALLOC(ndr, r->dc_site_name);
6236                 } else {
6237                         r->dc_site_name = NULL;
6238                 }
6239                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
6240                 if (_ptr_client_site_name) {
6241                         NDR_PULL_ALLOC(ndr, r->client_site_name);
6242                 } else {
6243                         r->client_site_name = NULL;
6244                 }
6245         }
6246         if (ndr_flags & NDR_BUFFERS) {
6247                 if (r->dc_unc) {
6248                         _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6249                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
6250                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
6251                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
6252                         if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
6253                                 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));
6254                         }
6255                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
6256                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
6257                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
6258                 }
6259                 if (r->dc_address) {
6260                         _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
6261                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
6262                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
6263                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
6264                         if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
6265                                 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));
6266                         }
6267                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
6268                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
6269                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
6270                 }
6271                 if (r->domain_name) {
6272                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6273                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6274                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6275                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6276                         if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
6277                                 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));
6278                         }
6279                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
6280                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
6281                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6282                 }
6283                 if (r->forest_name) {
6284                         _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6285                         NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
6286                         NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
6287                         NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
6288                         if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
6289                                 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));
6290                         }
6291                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
6292                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
6293                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
6294                 }
6295                 if (r->dc_site_name) {
6296                         _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6297                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
6298                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
6299                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
6300                         if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
6301                                 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));
6302                         }
6303                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
6304                         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));
6305                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
6306                 }
6307                 if (r->client_site_name) {
6308                         _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6309                         NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
6310                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
6311                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
6312                         if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
6313                                 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));
6314                         }
6315                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
6316                         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));
6317                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
6318                 }
6319         }
6320         return NDR_ERR_SUCCESS;
6321 }
6322
6323 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
6324 {
6325         ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
6326         ndr->depth++;
6327         ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
6328         ndr->depth++;
6329         if (r->dc_unc) {
6330                 ndr_print_string(ndr, "dc_unc", r->dc_unc);
6331         }
6332         ndr->depth--;
6333         ndr_print_ptr(ndr, "dc_address", r->dc_address);
6334         ndr->depth++;
6335         if (r->dc_address) {
6336                 ndr_print_string(ndr, "dc_address", r->dc_address);
6337         }
6338         ndr->depth--;
6339         ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr, "dc_address_type", r->dc_address_type);
6340         ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
6341         ndr_print_ptr(ndr, "domain_name", r->domain_name);
6342         ndr->depth++;
6343         if (r->domain_name) {
6344                 ndr_print_string(ndr, "domain_name", r->domain_name);
6345         }
6346         ndr->depth--;
6347         ndr_print_ptr(ndr, "forest_name", r->forest_name);
6348         ndr->depth++;
6349         if (r->forest_name) {
6350                 ndr_print_string(ndr, "forest_name", r->forest_name);
6351         }
6352         ndr->depth--;
6353         ndr_print_netr_DsR_DcFlags(ndr, "dc_flags", r->dc_flags);
6354         ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
6355         ndr->depth++;
6356         if (r->dc_site_name) {
6357                 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
6358         }
6359         ndr->depth--;
6360         ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
6361         ndr->depth++;
6362         if (r->client_site_name) {
6363                 ndr_print_string(ndr, "client_site_name", r->client_site_name);
6364         }
6365         ndr->depth--;
6366         ndr->depth--;
6367 }
6368
6369 static enum ndr_err_code ndr_push_netr_BinaryString(struct ndr_push *ndr, int ndr_flags, const struct netr_BinaryString *r)
6370 {
6371         uint32_t cntr_data_1;
6372         {
6373                 uint32_t _flags_save_STRUCT = ndr->flags;
6374                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6375                 if (ndr_flags & NDR_SCALARS) {
6376                         NDR_CHECK(ndr_push_align(ndr, 4));
6377                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
6378                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
6379                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6380                 }
6381                 if (ndr_flags & NDR_BUFFERS) {
6382                         if (r->data) {
6383                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
6384                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6385                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
6386                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6387                                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data[cntr_data_1]));
6388                                 }
6389                         }
6390                 }
6391                 ndr->flags = _flags_save_STRUCT;
6392         }
6393         return NDR_ERR_SUCCESS;
6394 }
6395
6396 static enum ndr_err_code ndr_pull_netr_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct netr_BinaryString *r)
6397 {
6398         uint32_t _ptr_data;
6399         uint32_t cntr_data_1;
6400         TALLOC_CTX *_mem_save_data_0;
6401         TALLOC_CTX *_mem_save_data_1;
6402         {
6403                 uint32_t _flags_save_STRUCT = ndr->flags;
6404                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6405                 if (ndr_flags & NDR_SCALARS) {
6406                         NDR_CHECK(ndr_pull_align(ndr, 4));
6407                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
6408                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
6409                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6410                         if (_ptr_data) {
6411                                 NDR_PULL_ALLOC(ndr, r->data);
6412                         } else {
6413                                 r->data = NULL;
6414                         }
6415                 }
6416                 if (ndr_flags & NDR_BUFFERS) {
6417                         if (r->data) {
6418                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6419                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6420                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6421                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
6422                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
6423                                         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));
6424                                 }
6425                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6426                                 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
6427                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6428                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6429                                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
6430                                 }
6431                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
6432                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6433                         }
6434                         if (r->data) {
6435                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size / 2));
6436                         }
6437                         if (r->data) {
6438                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length / 2));
6439                         }
6440                 }
6441                 ndr->flags = _flags_save_STRUCT;
6442         }
6443         return NDR_ERR_SUCCESS;
6444 }
6445
6446 _PUBLIC_ void ndr_print_netr_BinaryString(struct ndr_print *ndr, const char *name, const struct netr_BinaryString *r)
6447 {
6448         uint32_t cntr_data_1;
6449         ndr_print_struct(ndr, name, "netr_BinaryString");
6450         {
6451                 uint32_t _flags_save_STRUCT = ndr->flags;
6452                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6453                 ndr->depth++;
6454                 ndr_print_uint16(ndr, "length", r->length);
6455                 ndr_print_uint16(ndr, "size", r->size);
6456                 ndr_print_ptr(ndr, "data", r->data);
6457                 ndr->depth++;
6458                 if (r->data) {
6459                         ndr->print(ndr, "%s: ARRAY(%d)", "data", (int)r->length / 2);
6460                         ndr->depth++;
6461                         for (cntr_data_1=0;cntr_data_1<r->length / 2;cntr_data_1++) {
6462                                 char *idx_1=NULL;
6463                                 if (asprintf(&idx_1, "[%d]", cntr_data_1) != -1) {
6464                                         ndr_print_uint16(ndr, "data", r->data[cntr_data_1]);
6465                                         free(idx_1);
6466                                 }
6467                         }
6468                         ndr->depth--;
6469                 }
6470                 ndr->depth--;
6471                 ndr->depth--;
6472                 ndr->flags = _flags_save_STRUCT;
6473         }
6474 }
6475
6476 static enum ndr_err_code ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r)
6477 {
6478         uint32_t cntr_unknown7_0;
6479         if (ndr_flags & NDR_SCALARS) {
6480                 NDR_CHECK(ndr_push_align(ndr, 4));
6481                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6482                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain));
6483                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site));
6484                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1));
6485                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2));
6486                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3));
6487                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4));
6488                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6489                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product));
6490                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6491                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6492                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6493                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0]));
6494                 }
6495         }
6496         if (ndr_flags & NDR_BUFFERS) {
6497                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6498                 if (r->workstation_domain) {
6499                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6500                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6501                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6502                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6503                 }
6504                 if (r->workstation_site) {
6505                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6506                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6507                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6508                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6509                 }
6510                 if (r->unknown1) {
6511                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6512                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6513                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6514                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6515                 }
6516                 if (r->unknown2) {
6517                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6518                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6519                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6520                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6521                 }
6522                 if (r->unknown3) {
6523                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6524                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6525                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6526                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6527                 }
6528                 if (r->unknown4) {
6529                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6530                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6531                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6532                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6533                 }
6534                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6535                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product));
6536                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6537                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6538         }
6539         return NDR_ERR_SUCCESS;
6540 }
6541
6542 static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r)
6543 {
6544         uint32_t _ptr_workstation_domain;
6545         TALLOC_CTX *_mem_save_workstation_domain_0;
6546         uint32_t _ptr_workstation_site;
6547         TALLOC_CTX *_mem_save_workstation_site_0;
6548         uint32_t _ptr_unknown1;
6549         TALLOC_CTX *_mem_save_unknown1_0;
6550         uint32_t _ptr_unknown2;
6551         TALLOC_CTX *_mem_save_unknown2_0;
6552         uint32_t _ptr_unknown3;
6553         TALLOC_CTX *_mem_save_unknown3_0;
6554         uint32_t _ptr_unknown4;
6555         TALLOC_CTX *_mem_save_unknown4_0;
6556         uint32_t cntr_unknown7_0;
6557         if (ndr_flags & NDR_SCALARS) {
6558                 NDR_CHECK(ndr_pull_align(ndr, 4));
6559                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6560                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain));
6561                 if (_ptr_workstation_domain) {
6562                         NDR_PULL_ALLOC(ndr, r->workstation_domain);
6563                 } else {
6564                         r->workstation_domain = NULL;
6565                 }
6566                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site));
6567                 if (_ptr_workstation_site) {
6568                         NDR_PULL_ALLOC(ndr, r->workstation_site);
6569                 } else {
6570                         r->workstation_site = NULL;
6571                 }
6572                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1));
6573                 if (_ptr_unknown1) {
6574                         NDR_PULL_ALLOC(ndr, r->unknown1);
6575                 } else {
6576                         r->unknown1 = NULL;
6577                 }
6578                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2));
6579                 if (_ptr_unknown2) {
6580                         NDR_PULL_ALLOC(ndr, r->unknown2);
6581                 } else {
6582                         r->unknown2 = NULL;
6583                 }
6584                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3));
6585                 if (_ptr_unknown3) {
6586                         NDR_PULL_ALLOC(ndr, r->unknown3);
6587                 } else {
6588                         r->unknown3 = NULL;
6589                 }
6590                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
6591                 if (_ptr_unknown4) {
6592                         NDR_PULL_ALLOC(ndr, r->unknown4);
6593                 } else {
6594                         r->unknown4 = NULL;
6595                 }
6596                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6597                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product));
6598                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6599                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6600                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6601                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0]));
6602                 }
6603         }
6604         if (ndr_flags & NDR_BUFFERS) {
6605                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6606                 if (r->workstation_domain) {
6607                         _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6608                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0);
6609                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain));
6610                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain));
6611                         if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) {
6612                                 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));
6613                         }
6614                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t)));
6615                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16));
6616                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0);
6617                 }
6618                 if (r->workstation_site) {
6619                         _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
6620                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0);
6621                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site));
6622                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site));
6623                         if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) {
6624                                 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));
6625                         }
6626                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t)));
6627                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16));
6628                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0);
6629                 }
6630                 if (r->unknown1) {
6631                         _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6632                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0);
6633                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1));
6634                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1));
6635                         if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) {
6636                                 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));
6637                         }
6638                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t)));
6639                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16));
6640                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0);
6641                 }
6642                 if (r->unknown2) {
6643                         _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6644                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0);
6645                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2));
6646                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2));
6647                         if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) {
6648                                 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));
6649                         }
6650                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t)));
6651                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16));
6652                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0);
6653                 }
6654                 if (r->unknown3) {
6655                         _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6656                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0);
6657                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3));
6658                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3));
6659                         if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) {
6660                                 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));
6661                         }
6662                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t)));
6663                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16));
6664                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0);
6665                 }
6666                 if (r->unknown4) {
6667                         _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6668                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0);
6669                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4));
6670                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4));
6671                         if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) {
6672                                 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));
6673                         }
6674                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t)));
6675                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16));
6676                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0);
6677                 }
6678                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6679                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product));
6680                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6681                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6682         }
6683         return NDR_ERR_SUCCESS;
6684 }
6685
6686 _PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r)
6687 {
6688         uint32_t cntr_unknown7_0;
6689         ndr_print_struct(ndr, name, "netr_DomainQuery1");
6690         ndr->depth++;
6691         ndr_print_netr_Blob(ndr, "blob", &r->blob);
6692         ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain);
6693         ndr->depth++;
6694         if (r->workstation_domain) {
6695                 ndr_print_string(ndr, "workstation_domain", r->workstation_domain);
6696         }
6697         ndr->depth--;
6698         ndr_print_ptr(ndr, "workstation_site", r->workstation_site);
6699         ndr->depth++;
6700         if (r->workstation_site) {
6701                 ndr_print_string(ndr, "workstation_site", r->workstation_site);
6702         }
6703         ndr->depth--;
6704         ndr_print_ptr(ndr, "unknown1", r->unknown1);
6705         ndr->depth++;
6706         if (r->unknown1) {
6707                 ndr_print_string(ndr, "unknown1", r->unknown1);
6708         }
6709         ndr->depth--;
6710         ndr_print_ptr(ndr, "unknown2", r->unknown2);
6711         ndr->depth++;
6712         if (r->unknown2) {
6713                 ndr_print_string(ndr, "unknown2", r->unknown2);
6714         }
6715         ndr->depth--;
6716         ndr_print_ptr(ndr, "unknown3", r->unknown3);
6717         ndr->depth++;
6718         if (r->unknown3) {
6719                 ndr_print_string(ndr, "unknown3", r->unknown3);
6720         }
6721         ndr->depth--;
6722         ndr_print_ptr(ndr, "unknown4", r->unknown4);
6723         ndr->depth++;
6724         if (r->unknown4) {
6725                 ndr_print_string(ndr, "unknown4", r->unknown4);
6726         }
6727         ndr->depth--;
6728         ndr_print_netr_BinaryString(ndr, "blob2", &r->blob2);
6729         ndr_print_lsa_String(ndr, "product", &r->product);
6730         ndr_print_lsa_String(ndr, "unknown5", &r->unknown5);
6731         ndr_print_lsa_String(ndr, "unknown6", &r->unknown6);
6732         ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", (int)4);
6733         ndr->depth++;
6734         for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) {
6735                 char *idx_0=NULL;
6736                 if (asprintf(&idx_0, "[%d]", cntr_unknown7_0) != -1) {
6737                         ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]);
6738                         free(idx_0);
6739                 }
6740         }
6741         ndr->depth--;
6742         ndr->depth--;
6743 }
6744
6745 static enum ndr_err_code ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r)
6746 {
6747         if (ndr_flags & NDR_SCALARS) {
6748                 int level = ndr_push_get_switch_value(ndr, r);
6749                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6750                 switch (level) {
6751                         case 1: {
6752                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6753                         break; }
6754
6755                         case 2: {
6756                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6757                         break; }
6758
6759                         default:
6760                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6761                 }
6762         }
6763         if (ndr_flags & NDR_BUFFERS) {
6764                 int level = ndr_push_get_switch_value(ndr, r);
6765                 switch (level) {
6766                         case 1:
6767                                 if (r->query1) {
6768                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6769                                 }
6770                         break;
6771
6772                         case 2:
6773                                 if (r->query1) {
6774                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6775                                 }
6776                         break;
6777
6778                         default:
6779                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6780                 }
6781         }
6782         return NDR_ERR_SUCCESS;
6783 }
6784
6785 static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r)
6786 {
6787         int level;
6788         uint32_t _level;
6789         TALLOC_CTX *_mem_save_query1_0;
6790         level = ndr_pull_get_switch_value(ndr, r);
6791         if (ndr_flags & NDR_SCALARS) {
6792                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6793                 if (_level != level) {
6794                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6795                 }
6796                 switch (level) {
6797                         case 1: {
6798                                 uint32_t _ptr_query1;
6799                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6800                                 if (_ptr_query1) {
6801                                         NDR_PULL_ALLOC(ndr, r->query1);
6802                                 } else {
6803                                         r->query1 = NULL;
6804                                 }
6805                         break; }
6806
6807                         case 2: {
6808                                 uint32_t _ptr_query1;
6809                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6810                                 if (_ptr_query1) {
6811                                         NDR_PULL_ALLOC(ndr, r->query1);
6812                                 } else {
6813                                         r->query1 = NULL;
6814                                 }
6815                         break; }
6816
6817                         default:
6818                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6819                 }
6820         }
6821         if (ndr_flags & NDR_BUFFERS) {
6822                 switch (level) {
6823                         case 1:
6824                                 if (r->query1) {
6825                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6826                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6827                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6828                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6829                                 }
6830                         break;
6831
6832                         case 2:
6833                                 if (r->query1) {
6834                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6835                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6836                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6837                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6838                                 }
6839                         break;
6840
6841                         default:
6842                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6843                 }
6844         }
6845         return NDR_ERR_SUCCESS;
6846 }
6847
6848 _PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r)
6849 {
6850         int level;
6851         level = ndr_print_get_switch_value(ndr, r);
6852         ndr_print_union(ndr, name, level, "netr_DomainQuery");
6853         switch (level) {
6854                 case 1:
6855                         ndr_print_ptr(ndr, "query1", r->query1);
6856                         ndr->depth++;
6857                         if (r->query1) {
6858                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6859                         }
6860                         ndr->depth--;
6861                 break;
6862
6863                 case 2:
6864                         ndr_print_ptr(ndr, "query1", r->query1);
6865                         ndr->depth++;
6866                         if (r->query1) {
6867                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6868                         }
6869                         ndr->depth--;
6870                 break;
6871
6872                 default:
6873                         ndr_print_bad_level(ndr, name, level);
6874         }
6875 }
6876
6877 static enum ndr_err_code ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r)
6878 {
6879         uint32_t cntr_unknown1_0;
6880         uint32_t cntr_unknown_0;
6881         if (ndr_flags & NDR_SCALARS) {
6882                 NDR_CHECK(ndr_push_align(ndr, 4));
6883                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6884                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6885                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
6886                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
6887                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
6888                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6889                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6890                 }
6891                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6892                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6893                 }
6894         }
6895         if (ndr_flags & NDR_BUFFERS) {
6896                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6897                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6898                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6899                 if (r->sid) {
6900                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6901                 }
6902                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6903                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6904                 }
6905         }
6906         return NDR_ERR_SUCCESS;
6907 }
6908
6909 static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r)
6910 {
6911         uint32_t _ptr_sid;
6912         TALLOC_CTX *_mem_save_sid_0;
6913         uint32_t cntr_unknown1_0;
6914         uint32_t cntr_unknown_0;
6915         if (ndr_flags & NDR_SCALARS) {
6916                 NDR_CHECK(ndr_pull_align(ndr, 4));
6917                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6918                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6919                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
6920                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
6921                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
6922                 if (_ptr_sid) {
6923                         NDR_PULL_ALLOC(ndr, r->sid);
6924                 } else {
6925                         r->sid = NULL;
6926                 }
6927                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6928                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6929                 }
6930                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6931                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
6932                 }
6933         }
6934         if (ndr_flags & NDR_BUFFERS) {
6935                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6936                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6937                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6938                 if (r->sid) {
6939                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6940                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
6941                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6942                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
6943                 }
6944                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6945                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6946                 }
6947         }
6948         return NDR_ERR_SUCCESS;
6949 }
6950
6951 _PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r)
6952 {
6953         uint32_t cntr_unknown1_0;
6954         uint32_t cntr_unknown_0;
6955         ndr_print_struct(ndr, name, "netr_DomainTrustInfo");
6956         ndr->depth++;
6957         ndr_print_lsa_String(ndr, "domainname", &r->domainname);
6958         ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname);
6959         ndr_print_lsa_String(ndr, "forest", &r->forest);
6960         ndr_print_GUID(ndr, "guid", &r->guid);
6961         ndr_print_ptr(ndr, "sid", r->sid);
6962         ndr->depth++;
6963         if (r->sid) {
6964                 ndr_print_dom_sid2(ndr, "sid", r->sid);
6965         }
6966         ndr->depth--;
6967         ndr->print(ndr, "%s: ARRAY(%d)", "unknown1", (int)4);
6968         ndr->depth++;
6969         for (cntr_unknown1_0=0;cntr_unknown1_0<4;cntr_unknown1_0++) {
6970                 char *idx_0=NULL;
6971                 if (asprintf(&idx_0, "[%d]", cntr_unknown1_0) != -1) {
6972                         ndr_print_netr_BinaryString(ndr, "unknown1", &r->unknown1[cntr_unknown1_0]);
6973                         free(idx_0);
6974                 }
6975         }
6976         ndr->depth--;
6977         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)4);
6978         ndr->depth++;
6979         for (cntr_unknown_0=0;cntr_unknown_0<4;cntr_unknown_0++) {
6980                 char *idx_0=NULL;
6981                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
6982                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
6983                         free(idx_0);
6984                 }
6985         }
6986         ndr->depth--;
6987         ndr->depth--;
6988 }
6989
6990 static enum ndr_err_code ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r)
6991 {
6992         uint32_t cntr_trusts_1;
6993         uint32_t cntr_unknown_0;
6994         if (ndr_flags & NDR_SCALARS) {
6995                 NDR_CHECK(ndr_push_align(ndr, 4));
6996                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
6997                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
6998                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts));
6999                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
7000                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
7001                 }
7002         }
7003         if (ndr_flags & NDR_BUFFERS) {
7004                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7005                 if (r->trusts) {
7006                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
7007                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7008                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7009                         }
7010                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7011                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7012                         }
7013                 }
7014         }
7015         return NDR_ERR_SUCCESS;
7016 }
7017
7018 static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r)
7019 {
7020         uint32_t _ptr_trusts;
7021         uint32_t cntr_trusts_1;
7022         TALLOC_CTX *_mem_save_trusts_0;
7023         TALLOC_CTX *_mem_save_trusts_1;
7024         uint32_t cntr_unknown_0;
7025         if (ndr_flags & NDR_SCALARS) {
7026                 NDR_CHECK(ndr_pull_align(ndr, 4));
7027                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7028                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts));
7029                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts));
7030                 if (_ptr_trusts) {
7031                         NDR_PULL_ALLOC(ndr, r->trusts);
7032                 } else {
7033                         r->trusts = NULL;
7034                 }
7035                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
7036                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
7037                 }
7038         }
7039         if (ndr_flags & NDR_BUFFERS) {
7040                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7041                 if (r->trusts) {
7042                         _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
7043                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7044                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts));
7045                         NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts));
7046                         _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
7047                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7048                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7049                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7050                         }
7051                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7052                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7053                         }
7054                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
7055                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0);
7056                 }
7057                 if (r->trusts) {
7058                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts));
7059                 }
7060         }
7061         return NDR_ERR_SUCCESS;
7062 }
7063
7064 _PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r)
7065 {
7066         uint32_t cntr_trusts_1;
7067         uint32_t cntr_unknown_0;
7068         ndr_print_struct(ndr, name, "netr_DomainInfo1");
7069         ndr->depth++;
7070         ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo);
7071         ndr_print_uint32(ndr, "num_trusts", r->num_trusts);
7072         ndr_print_ptr(ndr, "trusts", r->trusts);
7073         ndr->depth++;
7074         if (r->trusts) {
7075                 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", (int)r->num_trusts);
7076                 ndr->depth++;
7077                 for (cntr_trusts_1=0;cntr_trusts_1<r->num_trusts;cntr_trusts_1++) {
7078                         char *idx_1=NULL;
7079                         if (asprintf(&idx_1, "[%d]", cntr_trusts_1) != -1) {
7080                                 ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]);
7081                                 free(idx_1);
7082                         }
7083                 }
7084                 ndr->depth--;
7085         }
7086         ndr->depth--;
7087         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)14);
7088         ndr->depth++;
7089         for (cntr_unknown_0=0;cntr_unknown_0<14;cntr_unknown_0++) {
7090                 char *idx_0=NULL;
7091                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
7092                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
7093                         free(idx_0);
7094                 }
7095         }
7096         ndr->depth--;
7097         ndr->depth--;
7098 }
7099
7100 static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
7101 {
7102         if (ndr_flags & NDR_SCALARS) {
7103                 int level = ndr_push_get_switch_value(ndr, r);
7104                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7105                 switch (level) {
7106                         case 1: {
7107                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7108                         break; }
7109
7110                         case 2: {
7111                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7112                         break; }
7113
7114                         default:
7115                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7116                 }
7117         }
7118         if (ndr_flags & NDR_BUFFERS) {
7119                 int level = ndr_push_get_switch_value(ndr, r);
7120                 switch (level) {
7121                         case 1:
7122                                 if (r->info1) {
7123                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7124                                 }
7125                         break;
7126
7127                         case 2:
7128                                 if (r->info1) {
7129                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7130                                 }
7131                         break;
7132
7133                         default:
7134                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7135                 }
7136         }
7137         return NDR_ERR_SUCCESS;
7138 }
7139
7140 static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
7141 {
7142         int level;
7143         uint32_t _level;
7144         TALLOC_CTX *_mem_save_info1_0;
7145         level = ndr_pull_get_switch_value(ndr, r);
7146         if (ndr_flags & NDR_SCALARS) {
7147                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7148                 if (_level != level) {
7149                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7150                 }
7151                 switch (level) {
7152                         case 1: {
7153                                 uint32_t _ptr_info1;
7154                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7155                                 if (_ptr_info1) {
7156                                         NDR_PULL_ALLOC(ndr, r->info1);
7157                                 } else {
7158                                         r->info1 = NULL;
7159                                 }
7160                         break; }
7161
7162                         case 2: {
7163                                 uint32_t _ptr_info1;
7164                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7165                                 if (_ptr_info1) {
7166                                         NDR_PULL_ALLOC(ndr, r->info1);
7167                                 } else {
7168                                         r->info1 = NULL;
7169                                 }
7170                         break; }
7171
7172                         default:
7173                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7174                 }
7175         }
7176         if (ndr_flags & NDR_BUFFERS) {
7177                 switch (level) {
7178                         case 1:
7179                                 if (r->info1) {
7180                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7181                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7182                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7183                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7184                                 }
7185                         break;
7186
7187                         case 2:
7188                                 if (r->info1) {
7189                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7190                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7191                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7192                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7193                                 }
7194                         break;
7195
7196                         default:
7197                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7198                 }
7199         }
7200         return NDR_ERR_SUCCESS;
7201 }
7202
7203 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
7204 {
7205         int level;
7206         level = ndr_print_get_switch_value(ndr, r);
7207         ndr_print_union(ndr, name, level, "netr_DomainInfo");
7208         switch (level) {
7209                 case 1:
7210                         ndr_print_ptr(ndr, "info1", r->info1);
7211                         ndr->depth++;
7212                         if (r->info1) {
7213                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7214                         }
7215                         ndr->depth--;
7216                 break;
7217
7218                 case 2:
7219                         ndr_print_ptr(ndr, "info1", r->info1);
7220                         ndr->depth++;
7221                         if (r->info1) {
7222                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7223                         }
7224                         ndr->depth--;
7225                 break;
7226
7227                 default:
7228                         ndr_print_bad_level(ndr, name, level);
7229         }
7230 }
7231
7232 static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
7233 {
7234         {
7235                 uint32_t _flags_save_STRUCT = ndr->flags;
7236                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7237                 if (ndr_flags & NDR_SCALARS) {
7238                         NDR_CHECK(ndr_push_align(ndr, 4));
7239                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7240                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
7241                 }
7242                 if (ndr_flags & NDR_BUFFERS) {
7243                 }
7244                 ndr->flags = _flags_save_STRUCT;
7245         }
7246         return NDR_ERR_SUCCESS;
7247 }
7248
7249 static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
7250 {
7251         {
7252                 uint32_t _flags_save_STRUCT = ndr->flags;
7253                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7254                 if (ndr_flags & NDR_SCALARS) {
7255                         NDR_CHECK(ndr_pull_align(ndr, 4));
7256                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7257                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7258                 }
7259                 if (ndr_flags & NDR_BUFFERS) {
7260                 }
7261                 ndr->flags = _flags_save_STRUCT;
7262         }
7263         return NDR_ERR_SUCCESS;
7264 }
7265
7266 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
7267 {
7268         ndr_print_struct(ndr, name, "netr_CryptPassword");
7269         {
7270                 uint32_t _flags_save_STRUCT = ndr->flags;
7271                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7272                 ndr->depth++;
7273                 ndr_print_array_uint8(ndr, "data", r->data, 512);
7274                 ndr_print_uint32(ndr, "length", r->length);
7275                 ndr->depth--;
7276                 ndr->flags = _flags_save_STRUCT;
7277         }
7278 }
7279
7280 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesWCtr *r)
7281 {
7282         uint32_t cntr_sitename_1;
7283         if (ndr_flags & NDR_SCALARS) {
7284                 NDR_CHECK(ndr_push_align(ndr, 4));
7285                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7286                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7287         }
7288         if (ndr_flags & NDR_BUFFERS) {
7289                 if (r->sitename) {
7290                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7291                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7292                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7293                         }
7294                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7295                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7296                         }
7297                 }
7298         }
7299         return NDR_ERR_SUCCESS;
7300 }
7301
7302 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r)
7303 {
7304         uint32_t _ptr_sitename;
7305         uint32_t cntr_sitename_1;
7306         TALLOC_CTX *_mem_save_sitename_0;
7307         TALLOC_CTX *_mem_save_sitename_1;
7308         if (ndr_flags & NDR_SCALARS) {
7309                 NDR_CHECK(ndr_pull_align(ndr, 4));
7310                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7311                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7312                 if (_ptr_sitename) {
7313                         NDR_PULL_ALLOC(ndr, r->sitename);
7314                 } else {
7315                         r->sitename = NULL;
7316                 }
7317         }
7318         if (ndr_flags & NDR_BUFFERS) {
7319                 if (r->sitename) {
7320                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7321                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7322                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7323                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7324                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7325                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7326                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7327                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7328                         }
7329                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7330                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7331                         }
7332                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7333                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7334                 }
7335                 if (r->sitename) {
7336                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7337                 }
7338         }
7339         return NDR_ERR_SUCCESS;
7340 }
7341
7342 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r)
7343 {
7344         uint32_t cntr_sitename_1;
7345         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesWCtr");
7346         ndr->depth++;
7347         ndr_print_uint32(ndr, "count", r->count);
7348         ndr_print_ptr(ndr, "sitename", r->sitename);
7349         ndr->depth++;
7350         if (r->sitename) {
7351                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
7352                 ndr->depth++;
7353                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7354                         char *idx_1=NULL;
7355                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
7356                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
7357                                 free(idx_1);
7358                         }
7359                 }
7360                 ndr->depth--;
7361         }
7362         ndr->depth--;
7363         ndr->depth--;
7364 }
7365
7366 static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddress *r)
7367 {
7368         if (ndr_flags & NDR_SCALARS) {
7369                 NDR_CHECK(ndr_push_align(ndr, 4));
7370                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
7371                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7372         }
7373         if (ndr_flags & NDR_BUFFERS) {
7374                 if (r->buffer) {
7375                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7376                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->size));
7377                 }
7378         }
7379         return NDR_ERR_SUCCESS;
7380 }
7381
7382 static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r)
7383 {
7384         uint32_t _ptr_buffer;
7385         TALLOC_CTX *_mem_save_buffer_0;
7386         if (ndr_flags & NDR_SCALARS) {
7387                 NDR_CHECK(ndr_pull_align(ndr, 4));
7388                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
7389                 if (_ptr_buffer) {
7390                         NDR_PULL_ALLOC(ndr, r->buffer);
7391                 } else {
7392                         r->buffer = NULL;
7393                 }
7394                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7395         }
7396         if (ndr_flags & NDR_BUFFERS) {
7397                 if (r->buffer) {
7398                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
7399                         NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
7400                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
7401                         NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
7402                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
7403                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
7404                 }
7405                 if (r->buffer) {
7406                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->size));
7407                 }
7408         }
7409         return NDR_ERR_SUCCESS;
7410 }
7411
7412 _PUBLIC_ void ndr_print_netr_DsRAddress(struct ndr_print *ndr, const char *name, const struct netr_DsRAddress *r)
7413 {
7414         ndr_print_struct(ndr, name, "netr_DsRAddress");
7415         ndr->depth++;
7416         ndr_print_ptr(ndr, "buffer", r->buffer);
7417         ndr->depth++;
7418         if (r->buffer) {
7419                 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->size);
7420         }
7421         ndr->depth--;
7422         ndr_print_uint32(ndr, "size", r->size);
7423         ndr->depth--;
7424 }
7425
7426 static enum ndr_err_code ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7427 {
7428         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7429         return NDR_ERR_SUCCESS;
7430 }
7431
7432 static enum ndr_err_code ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7433 {
7434         uint32_t v;
7435         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7436         *r = v;
7437         return NDR_ERR_SUCCESS;
7438 }
7439
7440 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7441 {
7442         ndr_print_uint32(ndr, name, r);
7443         ndr->depth++;
7444         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
7445         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
7446         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
7447         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
7448         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
7449         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
7450         ndr->depth--;
7451 }
7452
7453 static enum ndr_err_code ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
7454 {
7455         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7456         return NDR_ERR_SUCCESS;
7457 }
7458
7459 static enum ndr_err_code ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
7460 {
7461         uint32_t v;
7462         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7463         *r = v;
7464         return NDR_ERR_SUCCESS;
7465 }
7466
7467 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
7468 {
7469         const char *val = NULL;
7470
7471         switch (r) {
7472                 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
7473                 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
7474                 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
7475                 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
7476         }
7477         ndr_print_enum(ndr, name, "ENUM", val, r);
7478 }
7479
7480 static enum ndr_err_code ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7481 {
7482         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7483         return NDR_ERR_SUCCESS;
7484 }
7485
7486 static enum ndr_err_code ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7487 {
7488         uint32_t v;
7489         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7490         *r = v;
7491         return NDR_ERR_SUCCESS;
7492 }
7493
7494 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
7495 {
7496         ndr_print_uint32(ndr, name, r);
7497         ndr->depth++;
7498         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
7499         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
7500         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
7501         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
7502         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
7503         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
7504         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
7505         ndr->depth--;
7506 }
7507
7508 static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
7509 {
7510         if (ndr_flags & NDR_SCALARS) {
7511                 NDR_CHECK(ndr_push_align(ndr, 4));
7512                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7513                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7514                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
7515                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7516                 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
7517                 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
7518                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
7519                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
7520         }
7521         if (ndr_flags & NDR_BUFFERS) {
7522                 if (r->netbios_name) {
7523                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7524                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7525                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7526                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7527                 }
7528                 if (r->dns_name) {
7529                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7530                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7531                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7532                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7533                 }
7534                 if (r->sid) {
7535                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7536                 }
7537         }
7538         return NDR_ERR_SUCCESS;
7539 }
7540
7541 static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
7542 {
7543         uint32_t _ptr_netbios_name;
7544         TALLOC_CTX *_mem_save_netbios_name_0;
7545         uint32_t _ptr_dns_name;
7546         TALLOC_CTX *_mem_save_dns_name_0;
7547         uint32_t _ptr_sid;
7548         TALLOC_CTX *_mem_save_sid_0;
7549         if (ndr_flags & NDR_SCALARS) {
7550                 NDR_CHECK(ndr_pull_align(ndr, 4));
7551                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7552                 if (_ptr_netbios_name) {
7553                         NDR_PULL_ALLOC(ndr, r->netbios_name);
7554                 } else {
7555                         r->netbios_name = NULL;
7556                 }
7557                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7558                 if (_ptr_dns_name) {
7559                         NDR_PULL_ALLOC(ndr, r->dns_name);
7560                 } else {
7561                         r->dns_name = NULL;
7562                 }
7563                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
7564                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7565                 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
7566                 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
7567                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
7568                 if (_ptr_sid) {
7569                         NDR_PULL_ALLOC(ndr, r->sid);
7570                 } else {
7571                         r->sid = NULL;
7572                 }
7573                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
7574         }
7575         if (ndr_flags & NDR_BUFFERS) {
7576                 if (r->netbios_name) {
7577                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7578                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7579                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7580                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7581                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
7582                                 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));
7583                         }
7584                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
7585                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
7586                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7587                 }
7588                 if (r->dns_name) {
7589                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7590                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7591                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7592                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7593                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
7594                                 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));
7595                         }
7596                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
7597                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
7598                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7599                 }
7600                 if (r->sid) {
7601                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7602                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
7603                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7604                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
7605                 }
7606         }
7607         return NDR_ERR_SUCCESS;
7608 }
7609
7610 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
7611 {
7612         ndr_print_struct(ndr, name, "netr_DomainTrust");
7613         ndr->depth++;
7614         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7615         ndr->depth++;
7616         if (r->netbios_name) {
7617                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7618         }
7619         ndr->depth--;
7620         ndr_print_ptr(ndr, "dns_name", r->dns_name);
7621         ndr->depth++;
7622         if (r->dns_name) {
7623                 ndr_print_string(ndr, "dns_name", r->dns_name);
7624         }
7625         ndr->depth--;
7626         ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
7627         ndr_print_uint32(ndr, "parent_index", r->parent_index);
7628         ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
7629         ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
7630         ndr_print_ptr(ndr, "sid", r->sid);
7631         ndr->depth++;
7632         if (r->sid) {
7633                 ndr_print_dom_sid2(ndr, "sid", r->sid);
7634         }
7635         ndr->depth--;
7636         ndr_print_GUID(ndr, "guid", &r->guid);
7637         ndr->depth--;
7638 }
7639
7640 static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustList *r)
7641 {
7642         uint32_t cntr_array_1;
7643         if (ndr_flags & NDR_SCALARS) {
7644                 NDR_CHECK(ndr_push_align(ndr, 4));
7645                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7646                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7647         }
7648         if (ndr_flags & NDR_BUFFERS) {
7649                 if (r->array) {
7650                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7651                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7652                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7653                         }
7654                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7655                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7656                         }
7657                 }
7658         }
7659         return NDR_ERR_SUCCESS;
7660 }
7661
7662 static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r)
7663 {
7664         uint32_t _ptr_array;
7665         uint32_t cntr_array_1;
7666         TALLOC_CTX *_mem_save_array_0;
7667         TALLOC_CTX *_mem_save_array_1;
7668         if (ndr_flags & NDR_SCALARS) {
7669                 NDR_CHECK(ndr_pull_align(ndr, 4));
7670                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7671                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7672                 if (_ptr_array) {
7673                         NDR_PULL_ALLOC(ndr, r->array);
7674                 } else {
7675                         r->array = NULL;
7676                 }
7677         }
7678         if (ndr_flags & NDR_BUFFERS) {
7679                 if (r->array) {
7680                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7681                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7682                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7683                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
7684                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7685                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7686                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7687                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7688                         }
7689                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7690                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7691                         }
7692                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7693                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7694                 }
7695                 if (r->array) {
7696                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7697                 }
7698         }
7699         return NDR_ERR_SUCCESS;
7700 }
7701
7702 _PUBLIC_ void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r)
7703 {
7704         uint32_t cntr_array_1;
7705         ndr_print_struct(ndr, name, "netr_DomainTrustList");
7706         ndr->depth++;
7707         ndr_print_uint32(ndr, "count", r->count);
7708         ndr_print_ptr(ndr, "array", r->array);
7709         ndr->depth++;
7710         if (r->array) {
7711                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
7712                 ndr->depth++;
7713                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7714                         char *idx_1=NULL;
7715                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
7716                                 ndr_print_netr_DomainTrust(ndr, "array", &r->array[cntr_array_1]);
7717                                 free(idx_1);
7718                         }
7719                 }
7720                 ndr->depth--;
7721         }
7722         ndr->depth--;
7723         ndr->depth--;
7724 }
7725
7726 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesExWCtr *r)
7727 {
7728         uint32_t cntr_sitename_1;
7729         uint32_t cntr_subnetname_1;
7730         if (ndr_flags & NDR_SCALARS) {
7731                 NDR_CHECK(ndr_push_align(ndr, 4));
7732                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7733                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7734                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->subnetname));
7735         }
7736         if (ndr_flags & NDR_BUFFERS) {
7737                 if (r->sitename) {
7738                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7739                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7740                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7741                         }
7742                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7743                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7744                         }
7745                 }
7746                 if (r->subnetname) {
7747                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7748                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7749                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7750                         }
7751                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7752                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7753                         }
7754                 }
7755         }
7756         return NDR_ERR_SUCCESS;
7757 }
7758
7759 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r)
7760 {
7761         uint32_t _ptr_sitename;
7762         uint32_t cntr_sitename_1;
7763         TALLOC_CTX *_mem_save_sitename_0;
7764         TALLOC_CTX *_mem_save_sitename_1;
7765         uint32_t _ptr_subnetname;
7766         uint32_t cntr_subnetname_1;
7767         TALLOC_CTX *_mem_save_subnetname_0;
7768         TALLOC_CTX *_mem_save_subnetname_1;
7769         if (ndr_flags & NDR_SCALARS) {
7770                 NDR_CHECK(ndr_pull_align(ndr, 4));
7771                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7772                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7773                 if (_ptr_sitename) {
7774                         NDR_PULL_ALLOC(ndr, r->sitename);
7775                 } else {
7776                         r->sitename = NULL;
7777                 }
7778                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_subnetname));
7779                 if (_ptr_subnetname) {
7780                         NDR_PULL_ALLOC(ndr, r->subnetname);
7781                 } else {
7782                         r->subnetname = NULL;
7783                 }
7784         }
7785         if (ndr_flags & NDR_BUFFERS) {
7786                 if (r->sitename) {
7787                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7788                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7789                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7790                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7791                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7792                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7793                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7794                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7795                         }
7796                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7797                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7798                         }
7799                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7800                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7801                 }
7802                 if (r->subnetname) {
7803                         _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7804                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7805                         NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname));
7806                         NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname));
7807                         _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr);
7808                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7809                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7810                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7811                         }
7812                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7813                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7814                         }
7815                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0);
7816                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_0, 0);
7817                 }
7818                 if (r->sitename) {
7819                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7820                 }
7821                 if (r->subnetname) {
7822                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->subnetname, r->count));
7823                 }
7824         }
7825         return NDR_ERR_SUCCESS;
7826 }
7827
7828 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r)
7829 {
7830         uint32_t cntr_sitename_1;
7831         uint32_t cntr_subnetname_1;
7832         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExWCtr");
7833         ndr->depth++;
7834         ndr_print_uint32(ndr, "count", r->count);
7835         ndr_print_ptr(ndr, "sitename", r->sitename);
7836         ndr->depth++;
7837         if (r->sitename) {
7838                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
7839                 ndr->depth++;
7840                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7841                         char *idx_1=NULL;
7842                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
7843                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
7844                                 free(idx_1);
7845                         }
7846                 }
7847                 ndr->depth--;
7848         }
7849         ndr->depth--;
7850         ndr_print_ptr(ndr, "subnetname", r->subnetname);
7851         ndr->depth++;
7852         if (r->subnetname) {
7853                 ndr->print(ndr, "%s: ARRAY(%d)", "subnetname", (int)r->count);
7854                 ndr->depth++;
7855                 for (cntr_subnetname_1=0;cntr_subnetname_1<r->count;cntr_subnetname_1++) {
7856                         char *idx_1=NULL;
7857                         if (asprintf(&idx_1, "[%d]", cntr_subnetname_1) != -1) {
7858                                 ndr_print_lsa_String(ndr, "subnetname", &r->subnetname[cntr_subnetname_1]);
7859                                 free(idx_1);
7860                         }
7861                 }
7862                 ndr->depth--;
7863         }
7864         ndr->depth--;
7865         ndr->depth--;
7866 }
7867
7868 static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags, const struct DcSitesCtr *r)
7869 {
7870         uint32_t cntr_sites_1;
7871         if (ndr_flags & NDR_SCALARS) {
7872                 NDR_CHECK(ndr_push_align(ndr, 4));
7873                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7874                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sites));
7875         }
7876         if (ndr_flags & NDR_BUFFERS) {
7877                 if (r->sites) {
7878                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7879                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7880                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7881                         }
7882                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7883                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7884                         }
7885                 }
7886         }
7887         return NDR_ERR_SUCCESS;
7888 }
7889
7890 static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r)
7891 {
7892         uint32_t _ptr_sites;
7893         uint32_t cntr_sites_1;
7894         TALLOC_CTX *_mem_save_sites_0;
7895         TALLOC_CTX *_mem_save_sites_1;
7896         if (ndr_flags & NDR_SCALARS) {
7897                 NDR_CHECK(ndr_pull_align(ndr, 4));
7898                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sites));
7899                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sites));
7900                 if (_ptr_sites) {
7901                         NDR_PULL_ALLOC(ndr, r->sites);
7902                 } else {
7903                         r->sites = NULL;
7904                 }
7905         }
7906         if (ndr_flags & NDR_BUFFERS) {
7907                 if (r->sites) {
7908                         _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr);
7909                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7910                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sites));
7911                         NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites));
7912                         _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr);
7913                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7914                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7915                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7916                         }
7917                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7918                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7919                         }
7920                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0);
7921                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_0, 0);
7922                 }
7923                 if (r->sites) {
7924                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sites, r->num_sites));
7925                 }
7926         }
7927         return NDR_ERR_SUCCESS;
7928 }
7929
7930 _PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r)
7931 {
7932         uint32_t cntr_sites_1;
7933         ndr_print_struct(ndr, name, "DcSitesCtr");
7934         ndr->depth++;
7935         ndr_print_uint32(ndr, "num_sites", r->num_sites);
7936         ndr_print_ptr(ndr, "sites", r->sites);
7937         ndr->depth++;
7938         if (r->sites) {
7939                 ndr->print(ndr, "%s: ARRAY(%d)", "sites", (int)r->num_sites);
7940                 ndr->depth++;
7941                 for (cntr_sites_1=0;cntr_sites_1<r->num_sites;cntr_sites_1++) {
7942                         char *idx_1=NULL;
7943                         if (asprintf(&idx_1, "[%d]", cntr_sites_1) != -1) {
7944                                 ndr_print_lsa_String(ndr, "sites", &r->sites[cntr_sites_1]);
7945                                 free(idx_1);
7946                         }
7947                 }
7948                 ndr->depth--;
7949         }
7950         ndr->depth--;
7951         ndr->depth--;
7952 }
7953
7954 static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
7955 {
7956         if (flags & NDR_IN) {
7957                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
7958                 if (r->in.server_name) {
7959                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7960                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7961                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7962                         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));
7963                 }
7964                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7965                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7966                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7967                 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));
7968                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7969                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7970                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7971                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7972         }
7973         if (flags & NDR_OUT) {
7974                 if (r->out.info == NULL) {
7975                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7976                 }
7977                 NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
7978                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
7979         }
7980         return NDR_ERR_SUCCESS;
7981 }
7982
7983 static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
7984 {
7985         uint32_t _ptr_server_name;
7986         TALLOC_CTX *_mem_save_server_name_0;
7987         TALLOC_CTX *_mem_save_info_0;
7988         if (flags & NDR_IN) {
7989                 ZERO_STRUCT(r->out);
7990
7991                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
7992                 if (_ptr_server_name) {
7993                         NDR_PULL_ALLOC(ndr, r->in.server_name);
7994                 } else {
7995                         r->in.server_name = NULL;
7996                 }
7997                 if (r->in.server_name) {
7998                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7999                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8000                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8001                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8002                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8003                                 return 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));
8004                         }
8005                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8006                         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));
8007                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8008                 }
8009                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8010                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8011                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8012                         return 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));
8013                 }
8014                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8015                 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));
8016                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8017                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8018                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8019                         return 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));
8020                 }
8021                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8022                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8023                 NDR_PULL_ALLOC(ndr, r->out.info);
8024                 ZERO_STRUCTP(r->out.info);
8025         }
8026         if (flags & NDR_OUT) {
8027                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8028                         NDR_PULL_ALLOC(ndr, r->out.info);
8029                 }
8030                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8031                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8032                 NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
8033                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8034                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8035         }
8036         return NDR_ERR_SUCCESS;
8037 }
8038
8039 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
8040 {
8041         ndr_print_struct(ndr, name, "netr_LogonUasLogon");
8042         ndr->depth++;
8043         if (flags & NDR_SET_VALUES) {
8044                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8045         }
8046         if (flags & NDR_IN) {
8047                 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
8048                 ndr->depth++;
8049                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8050                 ndr->depth++;
8051                 if (r->in.server_name) {
8052                         ndr_print_string(ndr, "server_name", r->in.server_name);
8053                 }
8054                 ndr->depth--;
8055                 ndr_print_string(ndr, "account_name", r->in.account_name);
8056                 ndr_print_string(ndr, "workstation", r->in.workstation);
8057                 ndr->depth--;
8058         }
8059         if (flags & NDR_OUT) {
8060                 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
8061                 ndr->depth++;
8062                 ndr_print_ptr(ndr, "info", r->out.info);
8063                 ndr->depth++;
8064                 ndr_print_netr_UasInfo(ndr, "info", r->out.info);
8065                 ndr->depth--;
8066                 ndr_print_WERROR(ndr, "result", r->out.result);
8067                 ndr->depth--;
8068         }
8069         ndr->depth--;
8070 }
8071
8072 static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
8073 {
8074         if (flags & NDR_IN) {
8075                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8076                 if (r->in.server_name) {
8077                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8078                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8079                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8080                         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));
8081                 }
8082                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8083                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8084                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8085                 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));
8086                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8087                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8088                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8089                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8090         }
8091         if (flags & NDR_OUT) {
8092                 if (r->out.info == NULL) {
8093                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8094                 }
8095                 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8096                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8097         }
8098         return NDR_ERR_SUCCESS;
8099 }
8100
8101 static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
8102 {
8103         uint32_t _ptr_server_name;
8104         TALLOC_CTX *_mem_save_server_name_0;
8105         TALLOC_CTX *_mem_save_info_0;
8106         if (flags & NDR_IN) {
8107                 ZERO_STRUCT(r->out);
8108
8109                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8110                 if (_ptr_server_name) {
8111                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8112                 } else {
8113                         r->in.server_name = NULL;
8114                 }
8115                 if (r->in.server_name) {
8116                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8117                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8118                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8119                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8120                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8121                                 return 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));
8122                         }
8123                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8124                         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));
8125                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8126                 }
8127                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8128                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8129                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8130                         return 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));
8131                 }
8132                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8133                 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));
8134                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8135                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8136                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8137                         return 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));
8138                 }
8139                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8140                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8141                 NDR_PULL_ALLOC(ndr, r->out.info);
8142                 ZERO_STRUCTP(r->out.info);
8143         }
8144         if (flags & NDR_OUT) {
8145                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8146                         NDR_PULL_ALLOC(ndr, r->out.info);
8147                 }
8148                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8149                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8150                 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8151                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8152                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8153         }
8154         return NDR_ERR_SUCCESS;
8155 }
8156
8157 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
8158 {
8159         ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
8160         ndr->depth++;
8161         if (flags & NDR_SET_VALUES) {
8162                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8163         }
8164         if (flags & NDR_IN) {
8165                 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
8166                 ndr->depth++;
8167                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8168                 ndr->depth++;
8169                 if (r->in.server_name) {
8170                         ndr_print_string(ndr, "server_name", r->in.server_name);
8171                 }
8172                 ndr->depth--;
8173                 ndr_print_string(ndr, "account_name", r->in.account_name);
8174                 ndr_print_string(ndr, "workstation", r->in.workstation);
8175                 ndr->depth--;
8176         }
8177         if (flags & NDR_OUT) {
8178                 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
8179                 ndr->depth++;
8180                 ndr_print_ptr(ndr, "info", r->out.info);
8181                 ndr->depth++;
8182                 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
8183                 ndr->depth--;
8184                 ndr_print_WERROR(ndr, "result", r->out.result);
8185                 ndr->depth--;
8186         }
8187         ndr->depth--;
8188 }
8189
8190 static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
8191 {
8192         if (flags & NDR_IN) {
8193                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8194                 if (r->in.server_name) {
8195                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8196                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8197                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8198                         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));
8199                 }
8200                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8201                 if (r->in.computer_name) {
8202                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8203                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8204                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8205                         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));
8206                 }
8207                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8208                 if (r->in.credential) {
8209                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8210                 }
8211                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8212                 if (r->in.return_authenticator) {
8213                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8214                 }
8215                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
8216                 if (r->in.logon == NULL) {
8217                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8218                 }
8219                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
8220                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
8221                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
8222         }
8223         if (flags & NDR_OUT) {
8224                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8225                 if (r->out.return_authenticator) {
8226                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8227                 }
8228                 if (r->out.validation == NULL) {
8229                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8230                 }
8231                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8232                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8233                 if (r->out.authoritative == NULL) {
8234                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8235                 }
8236                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
8237                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8238         }
8239         return NDR_ERR_SUCCESS;
8240 }
8241
8242 static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
8243 {
8244         uint32_t _ptr_server_name;
8245         uint32_t _ptr_computer_name;
8246         uint32_t _ptr_credential;
8247         uint32_t _ptr_return_authenticator;
8248         TALLOC_CTX *_mem_save_server_name_0;
8249         TALLOC_CTX *_mem_save_computer_name_0;
8250         TALLOC_CTX *_mem_save_credential_0;
8251         TALLOC_CTX *_mem_save_return_authenticator_0;
8252         TALLOC_CTX *_mem_save_logon_0;
8253         TALLOC_CTX *_mem_save_validation_0;
8254         TALLOC_CTX *_mem_save_authoritative_0;
8255         if (flags & NDR_IN) {
8256                 ZERO_STRUCT(r->out);
8257
8258                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8259                 if (_ptr_server_name) {
8260                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8261                 } else {
8262                         r->in.server_name = NULL;
8263                 }
8264                 if (r->in.server_name) {
8265                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8266                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8267                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8268                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8269                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8270                                 return 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));
8271                         }
8272                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8273                         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));
8274                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8275                 }
8276                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8277                 if (_ptr_computer_name) {
8278                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8279                 } else {
8280                         r->in.computer_name = NULL;
8281                 }
8282                 if (r->in.computer_name) {
8283                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8284                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8285                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8286                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8287                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8288                                 return 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));
8289                         }
8290                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8291                         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));
8292                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8293                 }
8294                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8295                 if (_ptr_credential) {
8296                         NDR_PULL_ALLOC(ndr, r->in.credential);
8297                 } else {
8298                         r->in.credential = NULL;
8299                 }
8300                 if (r->in.credential) {
8301                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8302                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8303                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8304                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8305                 }
8306                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8307                 if (_ptr_return_authenticator) {
8308                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8309                 } else {
8310                         r->in.return_authenticator = NULL;
8311                 }
8312                 if (r->in.return_authenticator) {
8313                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8314                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8315                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8316                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8317                 }
8318                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
8319                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8320                         NDR_PULL_ALLOC(ndr, r->in.logon);
8321                 }
8322                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
8323                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
8324                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
8325                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
8326                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
8327                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
8328                 NDR_PULL_ALLOC(ndr, r->out.validation);
8329                 ZERO_STRUCTP(r->out.validation);
8330                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
8331                 ZERO_STRUCTP(r->out.authoritative);
8332         }
8333         if (flags & NDR_OUT) {
8334                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8335                 if (_ptr_return_authenticator) {
8336                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8337                 } else {
8338                         r->out.return_authenticator = NULL;
8339                 }
8340                 if (r->out.return_authenticator) {
8341                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8342                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8343                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8344                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8345                 }
8346                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8347                         NDR_PULL_ALLOC(ndr, r->out.validation);
8348                 }
8349                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
8350                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
8351                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8352                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8353                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
8354                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8355                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
8356                 }
8357                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
8358                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
8359                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
8360                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
8361                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8362         }
8363         return NDR_ERR_SUCCESS;
8364 }
8365
8366 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
8367 {
8368         ndr_print_struct(ndr, name, "netr_LogonSamLogon");
8369         ndr->depth++;
8370         if (flags & NDR_SET_VALUES) {
8371                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8372         }
8373         if (flags & NDR_IN) {
8374                 ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
8375                 ndr->depth++;
8376                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8377                 ndr->depth++;
8378                 if (r->in.server_name) {
8379                         ndr_print_string(ndr, "server_name", r->in.server_name);
8380                 }
8381                 ndr->depth--;
8382                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8383                 ndr->depth++;
8384                 if (r->in.computer_name) {
8385                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8386                 }
8387                 ndr->depth--;
8388                 ndr_print_ptr(ndr, "credential", r->in.credential);
8389                 ndr->depth++;
8390                 if (r->in.credential) {
8391                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8392                 }
8393                 ndr->depth--;
8394                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8395                 ndr->depth++;
8396                 if (r->in.return_authenticator) {
8397                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8398                 }
8399                 ndr->depth--;
8400                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
8401                 ndr_print_ptr(ndr, "logon", r->in.logon);
8402                 ndr->depth++;
8403                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
8404                 ndr_print_netr_LogonInfo(ndr, "logon", r->in.logon);
8405                 ndr->depth--;
8406                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
8407                 ndr->depth--;
8408         }
8409         if (flags & NDR_OUT) {
8410                 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
8411                 ndr->depth++;
8412                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8413                 ndr->depth++;
8414                 if (r->out.return_authenticator) {
8415                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8416                 }
8417                 ndr->depth--;
8418                 ndr_print_ptr(ndr, "validation", r->out.validation);
8419                 ndr->depth++;
8420                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
8421                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
8422                 ndr->depth--;
8423                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
8424                 ndr->depth++;
8425                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
8426                 ndr->depth--;
8427                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8428                 ndr->depth--;
8429         }
8430         ndr->depth--;
8431 }
8432
8433 static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
8434 {
8435         if (flags & NDR_IN) {
8436                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8437                 if (r->in.server_name) {
8438                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8439                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8440                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8441                         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));
8442                 }
8443                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8444                 if (r->in.computer_name) {
8445                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8446                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8447                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8448                         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));
8449                 }
8450                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8451                 if (r->in.credential) {
8452                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8453                 }
8454                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8455                 if (r->in.return_authenticator) {
8456                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8457                 }
8458                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
8459                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8460                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8461         }
8462         if (flags & NDR_OUT) {
8463                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8464                 if (r->out.return_authenticator) {
8465                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8466                 }
8467                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8468         }
8469         return NDR_ERR_SUCCESS;
8470 }
8471
8472 static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
8473 {
8474         uint32_t _ptr_server_name;
8475         uint32_t _ptr_computer_name;
8476         uint32_t _ptr_credential;
8477         uint32_t _ptr_return_authenticator;
8478         TALLOC_CTX *_mem_save_server_name_0;
8479         TALLOC_CTX *_mem_save_computer_name_0;
8480         TALLOC_CTX *_mem_save_credential_0;
8481         TALLOC_CTX *_mem_save_return_authenticator_0;
8482         if (flags & NDR_IN) {
8483                 ZERO_STRUCT(r->out);
8484
8485                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8486                 if (_ptr_server_name) {
8487                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8488                 } else {
8489                         r->in.server_name = NULL;
8490                 }
8491                 if (r->in.server_name) {
8492                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8493                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8494                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8495                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8496                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8497                                 return 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));
8498                         }
8499                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8500                         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));
8501                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8502                 }
8503                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8504                 if (_ptr_computer_name) {
8505                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8506                 } else {
8507                         r->in.computer_name = NULL;
8508                 }
8509                 if (r->in.computer_name) {
8510                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8511                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8512                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8513                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8514                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8515                                 return 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));
8516                         }
8517                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8518                         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));
8519                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8520                 }
8521                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8522                 if (_ptr_credential) {
8523                         NDR_PULL_ALLOC(ndr, r->in.credential);
8524                 } else {
8525                         r->in.credential = NULL;
8526                 }
8527                 if (r->in.credential) {
8528                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8529                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8530                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8531                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8532                 }
8533                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8534                 if (_ptr_return_authenticator) {
8535                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8536                 } else {
8537                         r->in.return_authenticator = NULL;
8538                 }
8539                 if (r->in.return_authenticator) {
8540                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8541                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8542                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8543                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8544                 }
8545                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
8546                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8547                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8548         }
8549         if (flags & NDR_OUT) {
8550                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8551                 if (_ptr_return_authenticator) {
8552                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8553                 } else {
8554                         r->out.return_authenticator = NULL;
8555                 }
8556                 if (r->out.return_authenticator) {
8557                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8558                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8559                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8560                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8561                 }
8562                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8563         }
8564         return NDR_ERR_SUCCESS;
8565 }
8566
8567 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
8568 {
8569         ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
8570         ndr->depth++;
8571         if (flags & NDR_SET_VALUES) {
8572                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8573         }
8574         if (flags & NDR_IN) {
8575                 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
8576                 ndr->depth++;
8577                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8578                 ndr->depth++;
8579                 if (r->in.server_name) {
8580                         ndr_print_string(ndr, "server_name", r->in.server_name);
8581                 }
8582                 ndr->depth--;
8583                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8584                 ndr->depth++;
8585                 if (r->in.computer_name) {
8586                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8587                 }
8588                 ndr->depth--;
8589                 ndr_print_ptr(ndr, "credential", r->in.credential);
8590                 ndr->depth++;
8591                 if (r->in.credential) {
8592                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8593                 }
8594                 ndr->depth--;
8595                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8596                 ndr->depth++;
8597                 if (r->in.return_authenticator) {
8598                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8599                 }
8600                 ndr->depth--;
8601                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
8602                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
8603                 ndr_print_netr_LogonInfo(ndr, "logon", &r->in.logon);
8604                 ndr->depth--;
8605         }
8606         if (flags & NDR_OUT) {
8607                 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
8608                 ndr->depth++;
8609                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8610                 ndr->depth++;
8611                 if (r->out.return_authenticator) {
8612                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8613                 }
8614                 ndr->depth--;
8615                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8616                 ndr->depth--;
8617         }
8618         ndr->depth--;
8619 }
8620
8621 static enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
8622 {
8623         if (flags & NDR_IN) {
8624                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8625                 if (r->in.server_name) {
8626                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8627                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8628                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8629                         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));
8630                 }
8631                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8632                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8633                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8634                 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));
8635                 if (r->in.credentials == NULL) {
8636                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8637                 }
8638                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8639         }
8640         if (flags & NDR_OUT) {
8641                 if (r->out.return_credentials == NULL) {
8642                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8643                 }
8644                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8645                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8646         }
8647         return NDR_ERR_SUCCESS;
8648 }
8649
8650 static enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
8651 {
8652         uint32_t _ptr_server_name;
8653         TALLOC_CTX *_mem_save_server_name_0;
8654         TALLOC_CTX *_mem_save_credentials_0;
8655         TALLOC_CTX *_mem_save_return_credentials_0;
8656         if (flags & NDR_IN) {
8657                 ZERO_STRUCT(r->out);
8658
8659                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8660                 if (_ptr_server_name) {
8661                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8662                 } else {
8663                         r->in.server_name = NULL;
8664                 }
8665                 if (r->in.server_name) {
8666                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8667                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8668                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8669                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8670                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8671                                 return 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));
8672                         }
8673                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8674                         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));
8675                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8676                 }
8677                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8678                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8679                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8680                         return 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));
8681                 }
8682                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8683                 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));
8684                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8685                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8686                 }
8687                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8688                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8689                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8690                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8691                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8692                 ZERO_STRUCTP(r->out.return_credentials);
8693         }
8694         if (flags & NDR_OUT) {
8695                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8696                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8697                 }
8698                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8699                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
8700                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8701                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8702                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8703         }
8704         return NDR_ERR_SUCCESS;
8705 }
8706
8707 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
8708 {
8709         ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
8710         ndr->depth++;
8711         if (flags & NDR_SET_VALUES) {
8712                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8713         }
8714         if (flags & NDR_IN) {
8715                 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
8716                 ndr->depth++;
8717                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8718                 ndr->depth++;
8719                 if (r->in.server_name) {
8720                         ndr_print_string(ndr, "server_name", r->in.server_name);
8721                 }
8722                 ndr->depth--;
8723                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8724                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8725                 ndr->depth++;
8726                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8727                 ndr->depth--;
8728                 ndr->depth--;
8729         }
8730         if (flags & NDR_OUT) {
8731                 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
8732                 ndr->depth++;
8733                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
8734                 ndr->depth++;
8735                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
8736                 ndr->depth--;
8737                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8738                 ndr->depth--;
8739         }
8740         ndr->depth--;
8741 }
8742
8743 static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
8744 {
8745         if (flags & NDR_IN) {
8746                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8747                 if (r->in.server_name) {
8748                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8749                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8750                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8751                         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));
8752                 }
8753                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8754                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8755                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8756                 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));
8757                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8758                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8759                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8760                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8761                 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));
8762                 if (r->in.credentials == NULL) {
8763                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8764                 }
8765                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8766         }
8767         if (flags & NDR_OUT) {
8768                 if (r->out.return_credentials == NULL) {
8769                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8770                 }
8771                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8772                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8773         }
8774         return NDR_ERR_SUCCESS;
8775 }
8776
8777 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
8778 {
8779         uint32_t _ptr_server_name;
8780         TALLOC_CTX *_mem_save_server_name_0;
8781         TALLOC_CTX *_mem_save_credentials_0;
8782         TALLOC_CTX *_mem_save_return_credentials_0;
8783         if (flags & NDR_IN) {
8784                 ZERO_STRUCT(r->out);
8785
8786                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8787                 if (_ptr_server_name) {
8788                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8789                 } else {
8790                         r->in.server_name = NULL;
8791                 }
8792                 if (r->in.server_name) {
8793                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8794                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8795                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8796                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8797                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8798                                 return 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));
8799                         }
8800                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8801                         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));
8802                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8803                 }
8804                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8805                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8806                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8807                         return 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));
8808                 }
8809                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8810                 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));
8811                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8812                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8813                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8814                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8815                         return 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));
8816                 }
8817                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8818                 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));
8819                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8820                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8821                 }
8822                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8823                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8824                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8825                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8826                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8827                 ZERO_STRUCTP(r->out.return_credentials);
8828         }
8829         if (flags & NDR_OUT) {
8830                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8831                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8832                 }
8833                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8834                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
8835                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8836                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8837                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8838         }
8839         return NDR_ERR_SUCCESS;
8840 }
8841
8842 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
8843 {
8844         ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
8845         ndr->depth++;
8846         if (flags & NDR_SET_VALUES) {
8847                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8848         }
8849         if (flags & NDR_IN) {
8850                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
8851                 ndr->depth++;
8852                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8853                 ndr->depth++;
8854                 if (r->in.server_name) {
8855                         ndr_print_string(ndr, "server_name", r->in.server_name);
8856                 }
8857                 ndr->depth--;
8858                 ndr_print_string(ndr, "account_name", r->in.account_name);
8859                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8860                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8861                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8862                 ndr->depth++;
8863                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8864                 ndr->depth--;
8865                 ndr->depth--;
8866         }
8867         if (flags & NDR_OUT) {
8868                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
8869                 ndr->depth++;
8870                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
8871                 ndr->depth++;
8872                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
8873                 ndr->depth--;
8874                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8875                 ndr->depth--;
8876         }
8877         ndr->depth--;
8878 }
8879
8880 static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
8881 {
8882         if (flags & NDR_IN) {
8883                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8884                 if (r->in.server_name) {
8885                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8886                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8887                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8888                         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));
8889                 }
8890                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8891                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8892                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8893                 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));
8894                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8895                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8896                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8897                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8898                 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));
8899                 if (r->in.credential == NULL) {
8900                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8901                 }
8902                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8903                 if (r->in.new_password == NULL) {
8904                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8905                 }
8906                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
8907         }
8908         if (flags & NDR_OUT) {
8909                 if (r->out.return_authenticator == NULL) {
8910                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8911                 }
8912                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8913                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8914         }
8915         return NDR_ERR_SUCCESS;
8916 }
8917
8918 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
8919 {
8920         uint32_t _ptr_server_name;
8921         TALLOC_CTX *_mem_save_server_name_0;
8922         TALLOC_CTX *_mem_save_credential_0;
8923         TALLOC_CTX *_mem_save_return_authenticator_0;
8924         TALLOC_CTX *_mem_save_new_password_0;
8925         if (flags & NDR_IN) {
8926                 ZERO_STRUCT(r->out);
8927
8928                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8929                 if (_ptr_server_name) {
8930                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8931                 } else {
8932                         r->in.server_name = NULL;
8933                 }
8934                 if (r->in.server_name) {
8935                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8936                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8937                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8938                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8939                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8940                                 return 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));
8941                         }
8942                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8943                         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));
8944                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8945                 }
8946                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8947                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8948                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8949                         return 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));
8950                 }
8951                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8952                 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));
8953                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8954                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8955                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8956                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8957                         return 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));
8958                 }
8959                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8960                 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));
8961                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8962                         NDR_PULL_ALLOC(ndr, r->in.credential);
8963                 }
8964                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8965                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
8966                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8967                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
8968                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8969                         NDR_PULL_ALLOC(ndr, r->in.new_password);
8970                 }
8971                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
8972                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
8973                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
8974                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
8975                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8976                 ZERO_STRUCTP(r->out.return_authenticator);
8977         }
8978         if (flags & NDR_OUT) {
8979                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8980                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8981                 }
8982                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8983                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8984                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8985                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8986                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8987         }
8988         return NDR_ERR_SUCCESS;
8989 }
8990
8991 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
8992 {
8993         ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
8994         ndr->depth++;
8995         if (flags & NDR_SET_VALUES) {
8996                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8997         }
8998         if (flags & NDR_IN) {
8999                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
9000                 ndr->depth++;
9001                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9002                 ndr->depth++;
9003                 if (r->in.server_name) {
9004                         ndr_print_string(ndr, "server_name", r->in.server_name);
9005                 }
9006                 ndr->depth--;
9007                 ndr_print_string(ndr, "account_name", r->in.account_name);
9008                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
9009                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9010                 ndr_print_ptr(ndr, "credential", r->in.credential);
9011                 ndr->depth++;
9012                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9013                 ndr->depth--;
9014                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
9015                 ndr->depth++;
9016                 ndr_print_samr_Password(ndr, "new_password", r->in.new_password);
9017                 ndr->depth--;
9018                 ndr->depth--;
9019         }
9020         if (flags & NDR_OUT) {
9021                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
9022                 ndr->depth++;
9023                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9024                 ndr->depth++;
9025                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9026                 ndr->depth--;
9027                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9028                 ndr->depth--;
9029         }
9030         ndr->depth--;
9031 }
9032
9033 static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
9034 {
9035         if (flags & NDR_IN) {
9036                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9037                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9038                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9039                 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));
9040                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9041                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9042                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9043                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9044                 if (r->in.credential == NULL) {
9045                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9046                 }
9047                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9048                 if (r->in.return_authenticator == NULL) {
9049                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9050                 }
9051                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9052                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9053                 if (r->in.sequence_num == NULL) {
9054                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9055                 }
9056                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
9057                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9058         }
9059         if (flags & NDR_OUT) {
9060                 if (r->out.return_authenticator == NULL) {
9061                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9062                 }
9063                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9064                 if (r->out.sequence_num == NULL) {
9065                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9066                 }
9067                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
9068                 if (r->out.delta_enum_array == NULL) {
9069                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9070                 }
9071                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
9072                 if (*r->out.delta_enum_array) {
9073                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9074                 }
9075                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9076         }
9077         return NDR_ERR_SUCCESS;
9078 }
9079
9080 static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
9081 {
9082         uint32_t _ptr_delta_enum_array;
9083         TALLOC_CTX *_mem_save_credential_0;
9084         TALLOC_CTX *_mem_save_return_authenticator_0;
9085         TALLOC_CTX *_mem_save_sequence_num_0;
9086         TALLOC_CTX *_mem_save_delta_enum_array_0;
9087         TALLOC_CTX *_mem_save_delta_enum_array_1;
9088         if (flags & NDR_IN) {
9089                 ZERO_STRUCT(r->out);
9090
9091                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9092                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9093                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9094                         return 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));
9095                 }
9096                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9097                 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));
9098                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9099                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9100                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9101                         return 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));
9102                 }
9103                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9104                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9105                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9106                         NDR_PULL_ALLOC(ndr, r->in.credential);
9107                 }
9108                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9109                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
9110                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9111                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
9112                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9113                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9114                 }
9115                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9116                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9117                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9118                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9119                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9120                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9121                         NDR_PULL_ALLOC(ndr, r->in.sequence_num);
9122                 }
9123                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9124                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9125                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
9126                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9127                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9128                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9129                 *r->out.return_authenticator = *r->in.return_authenticator;
9130                 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9131                 *r->out.sequence_num = *r->in.sequence_num;
9132                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9133                 ZERO_STRUCTP(r->out.delta_enum_array);
9134         }
9135         if (flags & NDR_OUT) {
9136                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9137                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9138                 }
9139                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9140                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9141                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9142                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9143                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9144                         NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9145                 }
9146                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9147                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9148                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
9149                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9150                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9151                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9152                 }
9153                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9154                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9155                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
9156                 if (_ptr_delta_enum_array) {
9157                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
9158                 } else {
9159                         *r->out.delta_enum_array = NULL;
9160                 }
9161                 if (*r->out.delta_enum_array) {
9162                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
9163                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
9164                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9165                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
9166                 }
9167                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9168                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9169         }
9170         return NDR_ERR_SUCCESS;
9171 }
9172
9173 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
9174 {
9175         ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
9176         ndr->depth++;
9177         if (flags & NDR_SET_VALUES) {
9178                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9179         }
9180         if (flags & NDR_IN) {
9181                 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
9182                 ndr->depth++;
9183                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9184                 ndr_print_string(ndr, "computername", r->in.computername);
9185                 ndr_print_ptr(ndr, "credential", r->in.credential);
9186                 ndr->depth++;
9187                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9188                 ndr->depth--;
9189                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9190                 ndr->depth++;
9191                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9192                 ndr->depth--;
9193                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9194                 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
9195                 ndr->depth++;
9196                 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
9197                 ndr->depth--;
9198                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9199                 ndr->depth--;
9200         }
9201         if (flags & NDR_OUT) {
9202                 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
9203                 ndr->depth++;
9204                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9205                 ndr->depth++;
9206                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9207                 ndr->depth--;
9208                 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
9209                 ndr->depth++;
9210                 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
9211                 ndr->depth--;
9212                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9213                 ndr->depth++;
9214                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
9215                 ndr->depth++;
9216                 if (*r->out.delta_enum_array) {
9217                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
9218                 }
9219                 ndr->depth--;
9220                 ndr->depth--;
9221                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9222                 ndr->depth--;
9223         }
9224         ndr->depth--;
9225 }
9226
9227 static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
9228 {
9229         if (flags & NDR_IN) {
9230                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9231                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9232                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9233                 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));
9234                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9235                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9236                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9237                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9238                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9239                 if (r->in.return_authenticator == NULL) {
9240                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9241                 }
9242                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9243                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9244                 if (r->in.sync_context == NULL) {
9245                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9246                 }
9247                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
9248                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9249         }
9250         if (flags & NDR_OUT) {
9251                 if (r->out.return_authenticator == NULL) {
9252                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9253                 }
9254                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9255                 if (r->out.sync_context == NULL) {
9256                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9257                 }
9258                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
9259                 if (r->out.delta_enum_array == NULL) {
9260                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9261                 }
9262                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9263                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9264         }
9265         return NDR_ERR_SUCCESS;
9266 }
9267
9268 static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
9269 {
9270         TALLOC_CTX *_mem_save_return_authenticator_0;
9271         TALLOC_CTX *_mem_save_sync_context_0;
9272         TALLOC_CTX *_mem_save_delta_enum_array_0;
9273         if (flags & NDR_IN) {
9274                 ZERO_STRUCT(r->out);
9275
9276                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9277                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9278                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9279                         return 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));
9280                 }
9281                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9282                 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));
9283                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9284                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9285                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9286                         return 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));
9287                 }
9288                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9289                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9290                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9291                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9292                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9293                 }
9294                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9295                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9296                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9297                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9298                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9299                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9300                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
9301                 }
9302                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9303                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
9304                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
9305                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9306                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9307                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9308                 *r->out.return_authenticator = *r->in.return_authenticator;
9309                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
9310                 *r->out.sync_context = *r->in.sync_context;
9311                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9312                 ZERO_STRUCTP(r->out.delta_enum_array);
9313         }
9314         if (flags & NDR_OUT) {
9315                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9316                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9317                 }
9318                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9319                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9320                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9321                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9322                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9323                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
9324                 }
9325                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9326                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
9327                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
9328                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9329                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9330                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9331                 }
9332                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9333                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9334                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9335                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9336                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9337         }
9338         return NDR_ERR_SUCCESS;
9339 }
9340
9341 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
9342 {
9343         ndr_print_struct(ndr, name, "netr_DatabaseSync");
9344         ndr->depth++;
9345         if (flags & NDR_SET_VALUES) {
9346                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9347         }
9348         if (flags & NDR_IN) {
9349                 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
9350                 ndr->depth++;
9351                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9352                 ndr_print_string(ndr, "computername", r->in.computername);
9353                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9354                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9355                 ndr->depth++;
9356                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9357                 ndr->depth--;
9358                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9359                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
9360                 ndr->depth++;
9361                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
9362                 ndr->depth--;
9363                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9364                 ndr->depth--;
9365         }
9366         if (flags & NDR_OUT) {
9367                 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
9368                 ndr->depth++;
9369                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9370                 ndr->depth++;
9371                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9372                 ndr->depth--;
9373                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
9374                 ndr->depth++;
9375                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
9376                 ndr->depth--;
9377                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9378                 ndr->depth++;
9379                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
9380                 ndr->depth--;
9381                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9382                 ndr->depth--;
9383         }
9384         ndr->depth--;
9385 }
9386
9387 static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
9388 {
9389         if (flags & NDR_IN) {
9390                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9391                 if (r->in.logon_server) {
9392                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9393                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9394                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9395                         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));
9396                 }
9397                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9398                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9399                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9400                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9401                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9402                 if (r->in.return_authenticator == NULL) {
9403                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9404                 }
9405                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9406                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9407                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
9408                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9409                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9410         }
9411         if (flags & NDR_OUT) {
9412                 if (r->out.return_authenticator == NULL) {
9413                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9414                 }
9415                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9416                 if (r->out.buffer == NULL) {
9417                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9418                 }
9419                 {
9420                         struct ndr_push *_ndr_buffer;
9421                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9422                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9423                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9424                 }
9425                 if (r->out.count_returned == NULL) {
9426                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9427                 }
9428                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9429                 if (r->out.total_entries == NULL) {
9430                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9431                 }
9432                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9433                 if (r->out.recordid == NULL) {
9434                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9435                 }
9436                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9437                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9438         }
9439         return NDR_ERR_SUCCESS;
9440 }
9441
9442 static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
9443 {
9444         uint32_t _ptr_logon_server;
9445         TALLOC_CTX *_mem_save_logon_server_0;
9446         TALLOC_CTX *_mem_save_return_authenticator_0;
9447         TALLOC_CTX *_mem_save_buffer_0;
9448         TALLOC_CTX *_mem_save_count_returned_0;
9449         TALLOC_CTX *_mem_save_total_entries_0;
9450         TALLOC_CTX *_mem_save_recordid_0;
9451         if (flags & NDR_IN) {
9452                 ZERO_STRUCT(r->out);
9453
9454                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9455                 if (_ptr_logon_server) {
9456                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9457                 } else {
9458                         r->in.logon_server = NULL;
9459                 }
9460                 if (r->in.logon_server) {
9461                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9462                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9463                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9464                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9465                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9466                                 return 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));
9467                         }
9468                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9469                         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));
9470                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9471                 }
9472                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9473                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9474                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9475                         return 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));
9476                 }
9477                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9478                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9479                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9480                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9481                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9482                 }
9483                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9484                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9485                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9486                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9487                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9488                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
9489                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9490                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9491                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9492                 *r->out.return_authenticator = *r->in.return_authenticator;
9493                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9494                 ZERO_STRUCTP(r->out.buffer);
9495                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9496                 ZERO_STRUCTP(r->out.count_returned);
9497                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9498                 ZERO_STRUCTP(r->out.total_entries);
9499                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9500                 ZERO_STRUCTP(r->out.recordid);
9501         }
9502         if (flags & NDR_OUT) {
9503                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9504                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9505                 }
9506                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9507                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9508                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9509                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9510                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9511                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9512                 }
9513                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9514                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9515                 {
9516                         struct ndr_pull *_ndr_buffer;
9517                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9518                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9519                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9520                 }
9521                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9522                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9523                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9524                 }
9525                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9526                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9527                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9528                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9529                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9530                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9531                 }
9532                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9533                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9534                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9535                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9536                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9537                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9538                 }
9539                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9540                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9541                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9542                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9543                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9544         }
9545         return NDR_ERR_SUCCESS;
9546 }
9547
9548 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
9549 {
9550         ndr_print_struct(ndr, name, "netr_AccountDeltas");
9551         ndr->depth++;
9552         if (flags & NDR_SET_VALUES) {
9553                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9554         }
9555         if (flags & NDR_IN) {
9556                 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
9557                 ndr->depth++;
9558                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9559                 ndr->depth++;
9560                 if (r->in.logon_server) {
9561                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9562                 }
9563                 ndr->depth--;
9564                 ndr_print_string(ndr, "computername", r->in.computername);
9565                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9566                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9567                 ndr->depth++;
9568                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9569                 ndr->depth--;
9570                 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
9571                 ndr_print_uint32(ndr, "count", r->in.count);
9572                 ndr_print_uint32(ndr, "level", r->in.level);
9573                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9574                 ndr->depth--;
9575         }
9576         if (flags & NDR_OUT) {
9577                 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
9578                 ndr->depth++;
9579                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9580                 ndr->depth++;
9581                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9582                 ndr->depth--;
9583                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9584                 ndr->depth++;
9585                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9586                 ndr->depth--;
9587                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9588                 ndr->depth++;
9589                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9590                 ndr->depth--;
9591                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9592                 ndr->depth++;
9593                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9594                 ndr->depth--;
9595                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9596                 ndr->depth++;
9597                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9598                 ndr->depth--;
9599                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9600                 ndr->depth--;
9601         }
9602         ndr->depth--;
9603 }
9604
9605 static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
9606 {
9607         if (flags & NDR_IN) {
9608                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9609                 if (r->in.logon_server) {
9610                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9611                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9612                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9613                         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));
9614                 }
9615                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9616                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9617                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9618                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9619                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9620                 if (r->in.return_authenticator == NULL) {
9621                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9622                 }
9623                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9624                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
9625                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9626                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9627                 if (r->in.recordid == NULL) {
9628                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9629                 }
9630                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9631         }
9632         if (flags & NDR_OUT) {
9633                 if (r->out.return_authenticator == NULL) {
9634                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9635                 }
9636                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9637                 if (r->out.buffer == NULL) {
9638                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9639                 }
9640                 {
9641                         struct ndr_push *_ndr_buffer;
9642                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9643                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9644                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9645                 }
9646                 if (r->out.count_returned == NULL) {
9647                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9648                 }
9649                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9650                 if (r->out.total_entries == NULL) {
9651                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9652                 }
9653                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9654                 if (r->out.next_reference == NULL) {
9655                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9656                 }
9657                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
9658                 if (r->out.recordid == NULL) {
9659                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9660                 }
9661                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9662                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9663         }
9664         return NDR_ERR_SUCCESS;
9665 }
9666
9667 static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
9668 {
9669         uint32_t _ptr_logon_server;
9670         TALLOC_CTX *_mem_save_logon_server_0;
9671         TALLOC_CTX *_mem_save_return_authenticator_0;
9672         TALLOC_CTX *_mem_save_buffer_0;
9673         TALLOC_CTX *_mem_save_count_returned_0;
9674         TALLOC_CTX *_mem_save_total_entries_0;
9675         TALLOC_CTX *_mem_save_next_reference_0;
9676         TALLOC_CTX *_mem_save_recordid_0;
9677         if (flags & NDR_IN) {
9678                 ZERO_STRUCT(r->out);
9679
9680                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9681                 if (_ptr_logon_server) {
9682                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9683                 } else {
9684                         r->in.logon_server = NULL;
9685                 }
9686                 if (r->in.logon_server) {
9687                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9688                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9689                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9690                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9691                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9692                                 return 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));
9693                         }
9694                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9695                         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));
9696                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9697                 }
9698                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9699                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9700                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9701                         return 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));
9702                 }
9703                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9704                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9705                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9706                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9707                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9708                 }
9709                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9710                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9711                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9712                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9713                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
9714                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9715                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9716                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9717                         NDR_PULL_ALLOC(ndr, r->in.recordid);
9718                 }
9719                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9720                 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
9721                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9722                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9723                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9724                 *r->out.return_authenticator = *r->in.return_authenticator;
9725                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9726                 ZERO_STRUCTP(r->out.buffer);
9727                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9728                 ZERO_STRUCTP(r->out.count_returned);
9729                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9730                 ZERO_STRUCTP(r->out.total_entries);
9731                 NDR_PULL_ALLOC(ndr, r->out.next_reference);
9732                 ZERO_STRUCTP(r->out.next_reference);
9733                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9734                 *r->out.recordid = *r->in.recordid;
9735         }
9736         if (flags & NDR_OUT) {
9737                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9738                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9739                 }
9740                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9741                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9742                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9743                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9744                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9745                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9746                 }
9747                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9748                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9749                 {
9750                         struct ndr_pull *_ndr_buffer;
9751                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9752                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9753                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9754                 }
9755                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9756                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9757                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9758                 }
9759                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9760                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9761                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9762                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9763                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9764                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9765                 }
9766                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9767                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9768                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9769                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9770                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9771                         NDR_PULL_ALLOC(ndr, r->out.next_reference);
9772                 }
9773                 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
9774                 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
9775                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
9776                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
9777                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9778                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9779                 }
9780                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9781                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9782                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9783                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9784                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9785         }
9786         return NDR_ERR_SUCCESS;
9787 }
9788
9789 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
9790 {
9791         ndr_print_struct(ndr, name, "netr_AccountSync");
9792         ndr->depth++;
9793         if (flags & NDR_SET_VALUES) {
9794                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9795         }
9796         if (flags & NDR_IN) {
9797                 ndr_print_struct(ndr, "in", "netr_AccountSync");
9798                 ndr->depth++;
9799                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9800                 ndr->depth++;
9801                 if (r->in.logon_server) {
9802                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9803                 }
9804                 ndr->depth--;
9805                 ndr_print_string(ndr, "computername", r->in.computername);
9806                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9807                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9808                 ndr->depth++;
9809                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9810                 ndr->depth--;
9811                 ndr_print_uint32(ndr, "reference", r->in.reference);
9812                 ndr_print_uint32(ndr, "level", r->in.level);
9813                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9814                 ndr_print_ptr(ndr, "recordid", r->in.recordid);
9815                 ndr->depth++;
9816                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
9817                 ndr->depth--;
9818                 ndr->depth--;
9819         }
9820         if (flags & NDR_OUT) {
9821                 ndr_print_struct(ndr, "out", "netr_AccountSync");
9822                 ndr->depth++;
9823                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9824                 ndr->depth++;
9825                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9826                 ndr->depth--;
9827                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9828                 ndr->depth++;
9829                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9830                 ndr->depth--;
9831                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9832                 ndr->depth++;
9833                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9834                 ndr->depth--;
9835                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9836                 ndr->depth++;
9837                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9838                 ndr->depth--;
9839                 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
9840                 ndr->depth++;
9841                 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
9842                 ndr->depth--;
9843                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9844                 ndr->depth++;
9845                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9846                 ndr->depth--;
9847                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9848                 ndr->depth--;
9849         }
9850         ndr->depth--;
9851 }
9852
9853 static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
9854 {
9855         if (flags & NDR_IN) {
9856                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9857                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9858                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9859                 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));
9860                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
9861                 if (r->in.domainname) {
9862                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9863                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9864                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9865                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9866                 }
9867         }
9868         if (flags & NDR_OUT) {
9869                 if (r->out.dcname == NULL) {
9870                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9871                 }
9872                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
9873                 if (*r->out.dcname) {
9874                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9875                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9876                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9877                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9878                 }
9879                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9880         }
9881         return NDR_ERR_SUCCESS;
9882 }
9883
9884 static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
9885 {
9886         uint32_t _ptr_domainname;
9887         uint32_t _ptr_dcname;
9888         TALLOC_CTX *_mem_save_domainname_0;
9889         TALLOC_CTX *_mem_save_dcname_0;
9890         TALLOC_CTX *_mem_save_dcname_1;
9891         if (flags & NDR_IN) {
9892                 ZERO_STRUCT(r->out);
9893
9894                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9895                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9896                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9897                         return 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));
9898                 }
9899                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9900                 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));
9901                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
9902                 if (_ptr_domainname) {
9903                         NDR_PULL_ALLOC(ndr, r->in.domainname);
9904                 } else {
9905                         r->in.domainname = NULL;
9906                 }
9907                 if (r->in.domainname) {
9908                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9909                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
9910                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
9911                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
9912                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
9913                                 return 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));
9914                         }
9915                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
9916                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
9917                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
9918                 }
9919                 NDR_PULL_ALLOC(ndr, r->out.dcname);
9920                 ZERO_STRUCTP(r->out.dcname);
9921         }
9922         if (flags & NDR_OUT) {
9923                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9924                         NDR_PULL_ALLOC(ndr, r->out.dcname);
9925                 }
9926                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9927                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
9928                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
9929                 if (_ptr_dcname) {
9930                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
9931                 } else {
9932                         *r->out.dcname = NULL;
9933                 }
9934                 if (*r->out.dcname) {
9935                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
9936                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
9937                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
9938                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
9939                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
9940                                 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));
9941                         }
9942                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
9943                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
9944                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
9945                 }
9946                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
9947                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9948         }
9949         return NDR_ERR_SUCCESS;
9950 }
9951
9952 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
9953 {
9954         ndr_print_struct(ndr, name, "netr_GetDcName");
9955         ndr->depth++;
9956         if (flags & NDR_SET_VALUES) {
9957                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9958         }
9959         if (flags & NDR_IN) {
9960                 ndr_print_struct(ndr, "in", "netr_GetDcName");
9961                 ndr->depth++;
9962                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9963                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
9964                 ndr->depth++;
9965                 if (r->in.domainname) {
9966                         ndr_print_string(ndr, "domainname", r->in.domainname);
9967                 }
9968                 ndr->depth--;
9969                 ndr->depth--;
9970         }
9971         if (flags & NDR_OUT) {
9972                 ndr_print_struct(ndr, "out", "netr_GetDcName");
9973                 ndr->depth++;
9974                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
9975                 ndr->depth++;
9976                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
9977                 ndr->depth++;
9978                 if (*r->out.dcname) {
9979                         ndr_print_string(ndr, "dcname", *r->out.dcname);
9980                 }
9981                 ndr->depth--;
9982                 ndr->depth--;
9983                 ndr_print_WERROR(ndr, "result", r->out.result);
9984                 ndr->depth--;
9985         }
9986         ndr->depth--;
9987 }
9988
9989 static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
9990 {
9991         if (flags & NDR_IN) {
9992                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9993                 if (r->in.logon_server) {
9994                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9995                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9996                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9997                         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));
9998                 }
9999                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
10000                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10001         }
10002         if (flags & NDR_OUT) {
10003                 if (r->out.info == NULL) {
10004                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10005                 }
10006                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
10007                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10008                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10009         }
10010         return NDR_ERR_SUCCESS;
10011 }
10012
10013 static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
10014 {
10015         uint32_t _ptr_logon_server;
10016         TALLOC_CTX *_mem_save_logon_server_0;
10017         TALLOC_CTX *_mem_save_info_0;
10018         if (flags & NDR_IN) {
10019                 ZERO_STRUCT(r->out);
10020
10021                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10022                 if (_ptr_logon_server) {
10023                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10024                 } else {
10025                         r->in.logon_server = NULL;
10026                 }
10027                 if (r->in.logon_server) {
10028                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10029                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10030                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10031                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10032                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10033                                 return 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));
10034                         }
10035                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10036                         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));
10037                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10038                 }
10039                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
10040                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10041                 NDR_PULL_ALLOC(ndr, r->out.info);
10042                 ZERO_STRUCTP(r->out.info);
10043         }
10044         if (flags & NDR_OUT) {
10045                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10046                         NDR_PULL_ALLOC(ndr, r->out.info);
10047                 }
10048                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10049                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
10050                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
10051                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10052                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
10053                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10054         }
10055         return NDR_ERR_SUCCESS;
10056 }
10057
10058 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
10059 {
10060         ndr_print_struct(ndr, name, "netr_LogonControl");
10061         ndr->depth++;
10062         if (flags & NDR_SET_VALUES) {
10063                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10064         }
10065         if (flags & NDR_IN) {
10066                 ndr_print_struct(ndr, "in", "netr_LogonControl");
10067                 ndr->depth++;
10068                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10069                 ndr->depth++;
10070                 if (r->in.logon_server) {
10071                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10072                 }
10073                 ndr->depth--;
10074                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
10075                 ndr_print_uint32(ndr, "level", r->in.level);
10076                 ndr->depth--;
10077         }
10078         if (flags & NDR_OUT) {
10079                 ndr_print_struct(ndr, "out", "netr_LogonControl");
10080                 ndr->depth++;
10081                 ndr_print_ptr(ndr, "info", r->out.info);
10082                 ndr->depth++;
10083                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
10084                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "info", r->out.info);
10085                 ndr->depth--;
10086                 ndr_print_WERROR(ndr, "result", r->out.result);
10087                 ndr->depth--;
10088         }
10089         ndr->depth--;
10090 }
10091
10092 static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
10093 {
10094         if (flags & NDR_IN) {
10095                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10096                 if (r->in.logon_server) {
10097                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10098                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10099                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10100                         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));
10101                 }
10102                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
10103                 if (r->in.domainname) {
10104                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10105                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10106                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10107                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10108                 }
10109         }
10110         if (flags & NDR_OUT) {
10111                 if (r->out.dcname == NULL) {
10112                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10113                 }
10114                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
10115                 if (*r->out.dcname) {
10116                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10117                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10118                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10119                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10120                 }
10121                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10122         }
10123         return NDR_ERR_SUCCESS;
10124 }
10125
10126 static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
10127 {
10128         uint32_t _ptr_logon_server;
10129         uint32_t _ptr_domainname;
10130         uint32_t _ptr_dcname;
10131         TALLOC_CTX *_mem_save_logon_server_0;
10132         TALLOC_CTX *_mem_save_domainname_0;
10133         TALLOC_CTX *_mem_save_dcname_0;
10134         TALLOC_CTX *_mem_save_dcname_1;
10135         if (flags & NDR_IN) {
10136                 ZERO_STRUCT(r->out);
10137
10138                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10139                 if (_ptr_logon_server) {
10140                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10141                 } else {
10142                         r->in.logon_server = NULL;
10143                 }
10144                 if (r->in.logon_server) {
10145                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10146                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10147                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10148                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10149                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10150                                 return 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));
10151                         }
10152                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10153                         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));
10154                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10155                 }
10156                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
10157                 if (_ptr_domainname) {
10158                         NDR_PULL_ALLOC(ndr, r->in.domainname);
10159                 } else {
10160                         r->in.domainname = NULL;
10161                 }
10162                 if (r->in.domainname) {
10163                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10164                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
10165                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
10166                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
10167                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
10168                                 return 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));
10169                         }
10170                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
10171                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
10172                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
10173                 }
10174                 NDR_PULL_ALLOC(ndr, r->out.dcname);
10175                 ZERO_STRUCTP(r->out.dcname);
10176         }
10177         if (flags & NDR_OUT) {
10178                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10179                         NDR_PULL_ALLOC(ndr, r->out.dcname);
10180                 }
10181                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10182                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
10183                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
10184                 if (_ptr_dcname) {
10185                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
10186                 } else {
10187                         *r->out.dcname = NULL;
10188                 }
10189                 if (*r->out.dcname) {
10190                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
10191                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
10192                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
10193                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
10194                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
10195                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.dcname), ndr_get_array_length(ndr, r->out.dcname));
10196                         }
10197                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
10198                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
10199                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
10200                 }
10201                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
10202                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10203         }
10204         return NDR_ERR_SUCCESS;
10205 }
10206
10207 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
10208 {
10209         ndr_print_struct(ndr, name, "netr_GetAnyDCName");
10210         ndr->depth++;
10211         if (flags & NDR_SET_VALUES) {
10212                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10213         }
10214         if (flags & NDR_IN) {
10215                 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
10216                 ndr->depth++;
10217                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10218                 ndr->depth++;
10219                 if (r->in.logon_server) {
10220                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10221                 }
10222                 ndr->depth--;
10223                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
10224                 ndr->depth++;
10225                 if (r->in.domainname) {
10226                         ndr_print_string(ndr, "domainname", r->in.domainname);
10227                 }
10228                 ndr->depth--;
10229                 ndr->depth--;
10230         }
10231         if (flags & NDR_OUT) {
10232                 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
10233                 ndr->depth++;
10234                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
10235                 ndr->depth++;
10236                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
10237                 ndr->depth++;
10238                 if (*r->out.dcname) {
10239                         ndr_print_string(ndr, "dcname", *r->out.dcname);
10240                 }
10241                 ndr->depth--;
10242                 ndr->depth--;
10243                 ndr_print_WERROR(ndr, "result", r->out.result);
10244                 ndr->depth--;
10245         }
10246         ndr->depth--;
10247 }
10248
10249 static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
10250 {
10251         if (flags & NDR_IN) {
10252                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10253                 if (r->in.logon_server) {
10254                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10255                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10256                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10257                         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));
10258                 }
10259                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
10260                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10261                 if (r->in.data == NULL) {
10262                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10263                 }
10264                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
10265                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
10266         }
10267         if (flags & NDR_OUT) {
10268                 if (r->out.query == NULL) {
10269                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10270                 }
10271                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10272                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10273                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10274         }
10275         return NDR_ERR_SUCCESS;
10276 }
10277
10278 static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
10279 {
10280         uint32_t _ptr_logon_server;
10281         TALLOC_CTX *_mem_save_logon_server_0;
10282         TALLOC_CTX *_mem_save_data_0;
10283         TALLOC_CTX *_mem_save_query_0;
10284         if (flags & NDR_IN) {
10285                 ZERO_STRUCT(r->out);
10286
10287                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10288                 if (_ptr_logon_server) {
10289                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10290                 } else {
10291                         r->in.logon_server = NULL;
10292                 }
10293                 if (r->in.logon_server) {
10294                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10295                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10296                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10297                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10298                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10299                                 return 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));
10300                         }
10301                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10302                         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));
10303                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10304                 }
10305                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
10306                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10307                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10308                         NDR_PULL_ALLOC(ndr, r->in.data);
10309                 }
10310                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
10311                 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
10312                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
10313                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
10314                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
10315                 NDR_PULL_ALLOC(ndr, r->out.query);
10316                 ZERO_STRUCTP(r->out.query);
10317         }
10318         if (flags & NDR_OUT) {
10319                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10320                         NDR_PULL_ALLOC(ndr, r->out.query);
10321                 }
10322                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10323                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10324                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10325                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10326                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10327                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10328         }
10329         return NDR_ERR_SUCCESS;
10330 }
10331
10332 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
10333 {
10334         ndr_print_struct(ndr, name, "netr_LogonControl2");
10335         ndr->depth++;
10336         if (flags & NDR_SET_VALUES) {
10337                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10338         }
10339         if (flags & NDR_IN) {
10340                 ndr_print_struct(ndr, "in", "netr_LogonControl2");
10341                 ndr->depth++;
10342                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10343                 ndr->depth++;
10344                 if (r->in.logon_server) {
10345                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10346                 }
10347                 ndr->depth--;
10348                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
10349                 ndr_print_uint32(ndr, "level", r->in.level);
10350                 ndr_print_ptr(ndr, "data", r->in.data);
10351                 ndr->depth++;
10352                 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
10353                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
10354                 ndr->depth--;
10355                 ndr->depth--;
10356         }
10357         if (flags & NDR_OUT) {
10358                 ndr_print_struct(ndr, "out", "netr_LogonControl2");
10359                 ndr->depth++;
10360                 ndr_print_ptr(ndr, "query", r->out.query);
10361                 ndr->depth++;
10362                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10363                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10364                 ndr->depth--;
10365                 ndr_print_WERROR(ndr, "result", r->out.result);
10366                 ndr->depth--;
10367         }
10368         ndr->depth--;
10369 }
10370
10371 static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
10372 {
10373         if (flags & NDR_IN) {
10374                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10375                 if (r->in.server_name) {
10376                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10377                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10378                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10379                         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));
10380                 }
10381                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10382                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10383                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10384                 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));
10385                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
10386                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10387                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10388                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10389                 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));
10390                 if (r->in.credentials == NULL) {
10391                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10392                 }
10393                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10394                 if (r->in.negotiate_flags == NULL) {
10395                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10396                 }
10397                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
10398         }
10399         if (flags & NDR_OUT) {
10400                 if (r->out.return_credentials == NULL) {
10401                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10402                 }
10403                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10404                 if (r->out.negotiate_flags == NULL) {
10405                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10406                 }
10407                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
10408                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10409         }
10410         return NDR_ERR_SUCCESS;
10411 }
10412
10413 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
10414 {
10415         uint32_t _ptr_server_name;
10416         TALLOC_CTX *_mem_save_server_name_0;
10417         TALLOC_CTX *_mem_save_credentials_0;
10418         TALLOC_CTX *_mem_save_return_credentials_0;
10419         TALLOC_CTX *_mem_save_negotiate_flags_0;
10420         if (flags & NDR_IN) {
10421                 ZERO_STRUCT(r->out);
10422
10423                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10424                 if (_ptr_server_name) {
10425                         NDR_PULL_ALLOC(ndr, r->in.server_name);
10426                 } else {
10427                         r->in.server_name = NULL;
10428                 }
10429                 if (r->in.server_name) {
10430                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10431                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10432                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10433                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10434                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10435                                 return 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));
10436                         }
10437                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10438                         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));
10439                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10440                 }
10441                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
10442                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
10443                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
10444                         return 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));
10445                 }
10446                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
10447                 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));
10448                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
10449                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10450                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10451                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10452                         return 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));
10453                 }
10454                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10455                 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));
10456                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10457                         NDR_PULL_ALLOC(ndr, r->in.credentials);
10458                 }
10459                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10460                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
10461                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10462                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10463                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10464                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
10465                 }
10466                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10467                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10468                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
10469                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10470                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10471                 ZERO_STRUCTP(r->out.return_credentials);
10472                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10473                 *r->out.negotiate_flags = *r->in.negotiate_flags;
10474         }
10475         if (flags & NDR_OUT) {
10476                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10477                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10478                 }
10479                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10480                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
10481                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10482                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10483                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10484                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10485                 }
10486                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10487                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10488                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
10489                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10490                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10491         }
10492         return NDR_ERR_SUCCESS;
10493 }
10494
10495 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
10496 {
10497         ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
10498         ndr->depth++;
10499         if (flags & NDR_SET_VALUES) {
10500                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10501         }
10502         if (flags & NDR_IN) {
10503                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
10504                 ndr->depth++;
10505                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10506                 ndr->depth++;
10507                 if (r->in.server_name) {
10508                         ndr_print_string(ndr, "server_name", r->in.server_name);
10509                 }
10510                 ndr->depth--;
10511                 ndr_print_string(ndr, "account_name", r->in.account_name);
10512                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10513                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10514                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
10515                 ndr->depth++;
10516                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
10517                 ndr->depth--;
10518                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
10519                 ndr->depth++;
10520                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
10521                 ndr->depth--;
10522                 ndr->depth--;
10523         }
10524         if (flags & NDR_OUT) {
10525                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
10526                 ndr->depth++;
10527                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
10528                 ndr->depth++;
10529                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
10530                 ndr->depth--;
10531                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
10532                 ndr->depth++;
10533                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
10534                 ndr->depth--;
10535                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10536                 ndr->depth--;
10537         }
10538         ndr->depth--;
10539 }
10540
10541 static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
10542 {
10543         if (flags & NDR_IN) {
10544                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10545                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10546                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10547                 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));
10548                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10549                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10550                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10551                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10552                 if (r->in.credential == NULL) {
10553                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10554                 }
10555                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10556                 if (r->in.return_authenticator == NULL) {
10557                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10558                 }
10559                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10560                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10561                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.restart_state));
10562                 if (r->in.sync_context == NULL) {
10563                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10564                 }
10565                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
10566                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10567         }
10568         if (flags & NDR_OUT) {
10569                 if (r->out.return_authenticator == NULL) {
10570                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10571                 }
10572                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10573                 if (r->out.sync_context == NULL) {
10574                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10575                 }
10576                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
10577                 if (r->out.delta_enum_array == NULL) {
10578                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10579                 }
10580                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10581                 if (*r->out.delta_enum_array) {
10582                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10583                 }
10584                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10585         }
10586         return NDR_ERR_SUCCESS;
10587 }
10588
10589 static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
10590 {
10591         uint32_t _ptr_delta_enum_array;
10592         TALLOC_CTX *_mem_save_credential_0;
10593         TALLOC_CTX *_mem_save_return_authenticator_0;
10594         TALLOC_CTX *_mem_save_sync_context_0;
10595         TALLOC_CTX *_mem_save_delta_enum_array_0;
10596         TALLOC_CTX *_mem_save_delta_enum_array_1;
10597         if (flags & NDR_IN) {
10598                 ZERO_STRUCT(r->out);
10599
10600                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10601                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10602                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10603                         return 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));
10604                 }
10605                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10606                 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));
10607                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10608                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10609                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10610                         return 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));
10611                 }
10612                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10613                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10614                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10615                         NDR_PULL_ALLOC(ndr, r->in.credential);
10616                 }
10617                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10618                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10619                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10620                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10621                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10622                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10623                 }
10624                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10625                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10626                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10627                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10628                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10629                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.restart_state));
10630                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10631                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
10632                 }
10633                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10634                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
10635                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
10636                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10637                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10638                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10639                 *r->out.return_authenticator = *r->in.return_authenticator;
10640                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10641                 *r->out.sync_context = *r->in.sync_context;
10642                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10643                 ZERO_STRUCTP(r->out.delta_enum_array);
10644         }
10645         if (flags & NDR_OUT) {
10646                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10647                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10648                 }
10649                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10650                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10651                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10652                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10653                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10654                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
10655                 }
10656                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10657                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
10658                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
10659                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10660                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10661                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10662                 }
10663                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10664                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10665                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10666                 if (_ptr_delta_enum_array) {
10667                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
10668                 } else {
10669                         *r->out.delta_enum_array = NULL;
10670                 }
10671                 if (*r->out.delta_enum_array) {
10672                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
10673                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
10674                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10675                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
10676                 }
10677                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10678                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10679         }
10680         return NDR_ERR_SUCCESS;
10681 }
10682
10683 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
10684 {
10685         ndr_print_struct(ndr, name, "netr_DatabaseSync2");
10686         ndr->depth++;
10687         if (flags & NDR_SET_VALUES) {
10688                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10689         }
10690         if (flags & NDR_IN) {
10691                 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
10692                 ndr->depth++;
10693                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10694                 ndr_print_string(ndr, "computername", r->in.computername);
10695                 ndr_print_ptr(ndr, "credential", r->in.credential);
10696                 ndr->depth++;
10697                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10698                 ndr->depth--;
10699                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10700                 ndr->depth++;
10701                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10702                 ndr->depth--;
10703                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10704                 ndr_print_uint16(ndr, "restart_state", r->in.restart_state);
10705                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
10706                 ndr->depth++;
10707                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
10708                 ndr->depth--;
10709                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10710                 ndr->depth--;
10711         }
10712         if (flags & NDR_OUT) {
10713                 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
10714                 ndr->depth++;
10715                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10716                 ndr->depth++;
10717                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10718                 ndr->depth--;
10719                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
10720                 ndr->depth++;
10721                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
10722                 ndr->depth--;
10723                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10724                 ndr->depth++;
10725                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10726                 ndr->depth++;
10727                 if (*r->out.delta_enum_array) {
10728                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10729                 }
10730                 ndr->depth--;
10731                 ndr->depth--;
10732                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10733                 ndr->depth--;
10734         }
10735         ndr->depth--;
10736 }
10737
10738 static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
10739 {
10740         if (flags & NDR_IN) {
10741                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10742                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10743                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10744                 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));
10745                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10746                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10747                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10748                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10749                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10750                 if (r->in.return_authenticator == NULL) {
10751                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10752                 }
10753                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10754                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.change_log_entry));
10755                 if (r->in.change_log_entry) {
10756                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10757                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, r->in.change_log_entry_size));
10758                 }
10759                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10760         }
10761         if (flags & NDR_OUT) {
10762                 if (r->out.return_authenticator == NULL) {
10763                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10764                 }
10765                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10766                 if (r->out.delta_enum_array == NULL) {
10767                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10768                 }
10769                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10770                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10771         }
10772         return NDR_ERR_SUCCESS;
10773 }
10774
10775 static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
10776 {
10777         uint32_t _ptr_change_log_entry;
10778         TALLOC_CTX *_mem_save_return_authenticator_0;
10779         TALLOC_CTX *_mem_save_change_log_entry_0;
10780         TALLOC_CTX *_mem_save_delta_enum_array_0;
10781         if (flags & NDR_IN) {
10782                 ZERO_STRUCT(r->out);
10783
10784                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10785                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10786                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10787                         return 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));
10788                 }
10789                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10790                 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));
10791                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10792                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10793                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10794                         return 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));
10795                 }
10796                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10797                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10798                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10799                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10800                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10801                 }
10802                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10803                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10804                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10805                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10806                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_change_log_entry));
10807                 if (_ptr_change_log_entry) {
10808                         NDR_PULL_ALLOC(ndr, r->in.change_log_entry);
10809                 } else {
10810                         r->in.change_log_entry = NULL;
10811                 }
10812                 if (r->in.change_log_entry) {
10813                         _mem_save_change_log_entry_0 = NDR_PULL_GET_MEM_CTX(ndr);
10814                         NDR_PULL_SET_MEM_CTX(ndr, r->in.change_log_entry, 0);
10815                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.change_log_entry));
10816                         NDR_PULL_ALLOC_N(ndr, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry));
10817                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry)));
10818                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_change_log_entry_0, 0);
10819                 }
10820                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
10821                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10822                 *r->out.return_authenticator = *r->in.return_authenticator;
10823                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10824                 ZERO_STRUCTP(r->out.delta_enum_array);
10825                 if (r->in.change_log_entry) {
10826                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.change_log_entry, r->in.change_log_entry_size));
10827                 }
10828         }
10829         if (flags & NDR_OUT) {
10830                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10831                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10832                 }
10833                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10834                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10835                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10836                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10837                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10838                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10839                 }
10840                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10841                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10842                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10843                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10844                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10845         }
10846         return NDR_ERR_SUCCESS;
10847 }
10848
10849 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
10850 {
10851         ndr_print_struct(ndr, name, "netr_DatabaseRedo");
10852         ndr->depth++;
10853         if (flags & NDR_SET_VALUES) {
10854                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10855         }
10856         if (flags & NDR_IN) {
10857                 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
10858                 ndr->depth++;
10859                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10860                 ndr_print_string(ndr, "computername", r->in.computername);
10861                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10862                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10863                 ndr->depth++;
10864                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10865                 ndr->depth--;
10866                 ndr_print_ptr(ndr, "change_log_entry", r->in.change_log_entry);
10867                 ndr->depth++;
10868                 if (r->in.change_log_entry) {
10869                         ndr_print_array_uint8(ndr, "change_log_entry", r->in.change_log_entry, r->in.change_log_entry_size);
10870                 }
10871                 ndr->depth--;
10872                 ndr_print_uint32(ndr, "change_log_entry_size", r->in.change_log_entry_size);
10873                 ndr->depth--;
10874         }
10875         if (flags & NDR_OUT) {
10876                 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
10877                 ndr->depth++;
10878                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10879                 ndr->depth++;
10880                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10881                 ndr->depth--;
10882                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10883                 ndr->depth++;
10884                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
10885                 ndr->depth--;
10886                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10887                 ndr->depth--;
10888         }
10889         ndr->depth--;
10890 }
10891
10892 static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
10893 {
10894         if (flags & NDR_IN) {
10895                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10896                 if (r->in.logon_server) {
10897                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10898                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10899                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10900                         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));
10901                 }
10902                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
10903                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10904                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
10905                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10906         }
10907         if (flags & NDR_OUT) {
10908                 if (r->out.query == NULL) {
10909                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10910                 }
10911                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10912                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10913                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10914         }
10915         return NDR_ERR_SUCCESS;
10916 }
10917
10918 static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
10919 {
10920         uint32_t _ptr_logon_server;
10921         TALLOC_CTX *_mem_save_logon_server_0;
10922         TALLOC_CTX *_mem_save_query_0;
10923         if (flags & NDR_IN) {
10924                 ZERO_STRUCT(r->out);
10925
10926                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10927                 if (_ptr_logon_server) {
10928                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10929                 } else {
10930                         r->in.logon_server = NULL;
10931                 }
10932                 if (r->in.logon_server) {
10933                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10934                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10935                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10936                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10937                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10938                                 return 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));
10939                         }
10940                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10941                         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));
10942                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10943                 }
10944                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
10945                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10946                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
10947                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10948                 NDR_PULL_ALLOC(ndr, r->out.query);
10949                 ZERO_STRUCTP(r->out.query);
10950         }
10951         if (flags & NDR_OUT) {
10952                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10953                         NDR_PULL_ALLOC(ndr, r->out.query);
10954                 }
10955                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10956                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10957                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10958                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10959                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10960                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10961         }
10962         return NDR_ERR_SUCCESS;
10963 }
10964
10965 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
10966 {
10967         ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
10968         ndr->depth++;
10969         if (flags & NDR_SET_VALUES) {
10970                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10971         }
10972         if (flags & NDR_IN) {
10973                 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
10974                 ndr->depth++;
10975                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10976                 ndr->depth++;
10977                 if (r->in.logon_server) {
10978                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10979                 }
10980                 ndr->depth--;
10981                 ndr_print_uint32(ndr, "function_code", r->in.function_code);
10982                 ndr_print_uint32(ndr, "level", r->in.level);
10983                 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
10984                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
10985                 ndr->depth--;
10986         }
10987         if (flags & NDR_OUT) {
10988                 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
10989                 ndr->depth++;
10990                 ndr_print_ptr(ndr, "query", r->out.query);
10991                 ndr->depth++;
10992                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10993                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10994                 ndr->depth--;
10995                 ndr_print_WERROR(ndr, "result", r->out.result);
10996                 ndr->depth--;
10997         }
10998         ndr->depth--;
10999 }
11000
11001 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
11002 {
11003         if (flags & NDR_IN) {
11004                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11005                 if (r->in.server_name) {
11006                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11007                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11008                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11009                         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));
11010                 }
11011         }
11012         if (flags & NDR_OUT) {
11013                 if (r->out.trusted_domains_blob == NULL) {
11014                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11015                 }
11016                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
11017                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11018         }
11019         return NDR_ERR_SUCCESS;
11020 }
11021
11022 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r)
11023 {
11024         uint32_t _ptr_server_name;
11025         TALLOC_CTX *_mem_save_server_name_0;
11026         TALLOC_CTX *_mem_save_trusted_domains_blob_0;
11027         if (flags & NDR_IN) {
11028                 ZERO_STRUCT(r->out);
11029
11030                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11031                 if (_ptr_server_name) {
11032                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11033                 } else {
11034                         r->in.server_name = NULL;
11035                 }
11036                 if (r->in.server_name) {
11037                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11038                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11039                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11040                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11041                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11042                                 return 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));
11043                         }
11044                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11045                         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));
11046                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11047                 }
11048                 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11049                 ZERO_STRUCTP(r->out.trusted_domains_blob);
11050         }
11051         if (flags & NDR_OUT) {
11052                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11053                         NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11054                 }
11055                 _mem_save_trusted_domains_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
11056                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusted_domains_blob, LIBNDR_FLAG_REF_ALLOC);
11057                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
11058                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_blob_0, LIBNDR_FLAG_REF_ALLOC);
11059                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11060         }
11061         return NDR_ERR_SUCCESS;
11062 }
11063
11064 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
11065 {
11066         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomains");
11067         ndr->depth++;
11068         if (flags & NDR_SET_VALUES) {
11069                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11070         }
11071         if (flags & NDR_IN) {
11072                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomains");
11073                 ndr->depth++;
11074                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11075                 ndr->depth++;
11076                 if (r->in.server_name) {
11077                         ndr_print_string(ndr, "server_name", r->in.server_name);
11078                 }
11079                 ndr->depth--;
11080                 ndr->depth--;
11081         }
11082         if (flags & NDR_OUT) {
11083                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomains");
11084                 ndr->depth++;
11085                 ndr_print_ptr(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11086                 ndr->depth++;
11087                 ndr_print_netr_Blob(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11088                 ndr->depth--;
11089                 ndr_print_WERROR(ndr, "result", r->out.result);
11090                 ndr->depth--;
11091         }
11092         ndr->depth--;
11093 }
11094
11095 static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
11096 {
11097         if (flags & NDR_IN) {
11098                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11099                 if (r->in.server_unc) {
11100                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11101                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11102                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11103                         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));
11104                 }
11105                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11106                 if (r->in.domain_name) {
11107                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11108                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11109                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11110                         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));
11111                 }
11112                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11113                 if (r->in.domain_guid) {
11114                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
11115                 }
11116                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
11117                 if (r->in.site_guid) {
11118                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.site_guid));
11119                 }
11120                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11121         }
11122         if (flags & NDR_OUT) {
11123                 if (r->out.info == NULL) {
11124                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11125                 }
11126                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
11127                 if (*r->out.info) {
11128                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11129                 }
11130                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11131         }
11132         return NDR_ERR_SUCCESS;
11133 }
11134
11135 static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
11136 {
11137         uint32_t _ptr_server_unc;
11138         uint32_t _ptr_domain_name;
11139         uint32_t _ptr_domain_guid;
11140         uint32_t _ptr_site_guid;
11141         uint32_t _ptr_info;
11142         TALLOC_CTX *_mem_save_server_unc_0;
11143         TALLOC_CTX *_mem_save_domain_name_0;
11144         TALLOC_CTX *_mem_save_domain_guid_0;
11145         TALLOC_CTX *_mem_save_site_guid_0;
11146         TALLOC_CTX *_mem_save_info_0;
11147         TALLOC_CTX *_mem_save_info_1;
11148         if (flags & NDR_IN) {
11149                 ZERO_STRUCT(r->out);
11150
11151                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11152                 if (_ptr_server_unc) {
11153                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
11154                 } else {
11155                         r->in.server_unc = NULL;
11156                 }
11157                 if (r->in.server_unc) {
11158                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11159                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11160                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11161                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11162                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11163                                 return 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));
11164                         }
11165                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11166                         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));
11167                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11168                 }
11169                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11170                 if (_ptr_domain_name) {
11171                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11172                 } else {
11173                         r->in.domain_name = NULL;
11174                 }
11175                 if (r->in.domain_name) {
11176                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11177                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11178                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11179                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11180                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11181                                 return 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));
11182                         }
11183                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11184                         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));
11185                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11186                 }
11187                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11188                 if (_ptr_domain_guid) {
11189                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11190                 } else {
11191                         r->in.domain_guid = NULL;
11192                 }
11193                 if (r->in.domain_guid) {
11194                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11195                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11196                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
11197                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11198                 }
11199                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
11200                 if (_ptr_site_guid) {
11201                         NDR_PULL_ALLOC(ndr, r->in.site_guid);
11202                 } else {
11203                         r->in.site_guid = NULL;
11204                 }
11205                 if (r->in.site_guid) {
11206                         _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11207                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
11208                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.site_guid));
11209                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
11210                 }
11211                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11212                 NDR_PULL_ALLOC(ndr, r->out.info);
11213                 ZERO_STRUCTP(r->out.info);
11214         }
11215         if (flags & NDR_OUT) {
11216                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11217                         NDR_PULL_ALLOC(ndr, r->out.info);
11218                 }
11219                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11220                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11221                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11222                 if (_ptr_info) {
11223                         NDR_PULL_ALLOC(ndr, *r->out.info);
11224                 } else {
11225                         *r->out.info = NULL;
11226                 }
11227                 if (*r->out.info) {
11228                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
11229                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
11230                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11231                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
11232                 }
11233                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11234                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11235         }
11236         return NDR_ERR_SUCCESS;
11237 }
11238
11239 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
11240 {
11241         ndr_print_struct(ndr, name, "netr_DsRGetDCName");
11242         ndr->depth++;
11243         if (flags & NDR_SET_VALUES) {
11244                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11245         }
11246         if (flags & NDR_IN) {
11247                 ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
11248                 ndr->depth++;
11249                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11250                 ndr->depth++;
11251                 if (r->in.server_unc) {
11252                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11253                 }
11254                 ndr->depth--;
11255                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11256                 ndr->depth++;
11257                 if (r->in.domain_name) {
11258                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11259                 }
11260                 ndr->depth--;
11261                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11262                 ndr->depth++;
11263                 if (r->in.domain_guid) {
11264                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11265                 }
11266                 ndr->depth--;
11267                 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
11268                 ndr->depth++;
11269                 if (r->in.site_guid) {
11270                         ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
11271                 }
11272                 ndr->depth--;
11273                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11274                 ndr->depth--;
11275         }
11276         if (flags & NDR_OUT) {
11277                 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
11278                 ndr->depth++;
11279                 ndr_print_ptr(ndr, "info", r->out.info);
11280                 ndr->depth++;
11281                 ndr_print_ptr(ndr, "info", *r->out.info);
11282                 ndr->depth++;
11283                 if (*r->out.info) {
11284                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
11285                 }
11286                 ndr->depth--;
11287                 ndr->depth--;
11288                 ndr_print_WERROR(ndr, "result", r->out.result);
11289                 ndr->depth--;
11290         }
11291         ndr->depth--;
11292 }
11293
11294 static enum ndr_err_code ndr_push_netr_NETRLOGONDUMMYROUTINE1(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11295 {
11296         if (flags & NDR_IN) {
11297         }
11298         if (flags & NDR_OUT) {
11299                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11300         }
11301         return NDR_ERR_SUCCESS;
11302 }
11303
11304 static enum ndr_err_code ndr_pull_netr_NETRLOGONDUMMYROUTINE1(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONDUMMYROUTINE1 *r)
11305 {
11306         if (flags & NDR_IN) {
11307         }
11308         if (flags & NDR_OUT) {
11309                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11310         }
11311         return NDR_ERR_SUCCESS;
11312 }
11313
11314 _PUBLIC_ void ndr_print_netr_NETRLOGONDUMMYROUTINE1(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11315 {
11316         ndr_print_struct(ndr, name, "netr_NETRLOGONDUMMYROUTINE1");
11317         ndr->depth++;
11318         if (flags & NDR_SET_VALUES) {
11319                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11320         }
11321         if (flags & NDR_IN) {
11322                 ndr_print_struct(ndr, "in", "netr_NETRLOGONDUMMYROUTINE1");
11323                 ndr->depth++;
11324                 ndr->depth--;
11325         }
11326         if (flags & NDR_OUT) {
11327                 ndr_print_struct(ndr, "out", "netr_NETRLOGONDUMMYROUTINE1");
11328                 ndr->depth++;
11329                 ndr_print_WERROR(ndr, "result", r->out.result);
11330                 ndr->depth--;
11331         }
11332         ndr->depth--;
11333 }
11334
11335 static enum ndr_err_code ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11336 {
11337         if (flags & NDR_IN) {
11338         }
11339         if (flags & NDR_OUT) {
11340                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11341         }
11342         return NDR_ERR_SUCCESS;
11343 }
11344
11345 static enum ndr_err_code ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
11346 {
11347         if (flags & NDR_IN) {
11348         }
11349         if (flags & NDR_OUT) {
11350                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11351         }
11352         return NDR_ERR_SUCCESS;
11353 }
11354
11355 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11356 {
11357         ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
11358         ndr->depth++;
11359         if (flags & NDR_SET_VALUES) {
11360                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11361         }
11362         if (flags & NDR_IN) {
11363                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
11364                 ndr->depth++;
11365                 ndr->depth--;
11366         }
11367         if (flags & NDR_OUT) {
11368                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
11369                 ndr->depth++;
11370                 ndr_print_WERROR(ndr, "result", r->out.result);
11371                 ndr->depth--;
11372         }
11373         ndr->depth--;
11374 }
11375
11376 static enum ndr_err_code ndr_push_netr_LogonGetTrustRid(struct ndr_push *ndr, int flags, const struct netr_LogonGetTrustRid *r)
11377 {
11378         if (flags & NDR_IN) {
11379                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11380                 if (r->in.server_name) {
11381                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11382                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11383                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11384                         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));
11385                 }
11386                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11387                 if (r->in.domain_name) {
11388                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11389                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11390                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11391                         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));
11392                 }
11393         }
11394         if (flags & NDR_OUT) {
11395                 if (r->out.rid == NULL) {
11396                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11397                 }
11398                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11399                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11400         }
11401         return NDR_ERR_SUCCESS;
11402 }
11403
11404 static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, int flags, struct netr_LogonGetTrustRid *r)
11405 {
11406         uint32_t _ptr_server_name;
11407         uint32_t _ptr_domain_name;
11408         TALLOC_CTX *_mem_save_server_name_0;
11409         TALLOC_CTX *_mem_save_domain_name_0;
11410         TALLOC_CTX *_mem_save_rid_0;
11411         if (flags & NDR_IN) {
11412                 ZERO_STRUCT(r->out);
11413
11414                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11415                 if (_ptr_server_name) {
11416                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11417                 } else {
11418                         r->in.server_name = NULL;
11419                 }
11420                 if (r->in.server_name) {
11421                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11422                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11423                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11424                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11425                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11426                                 return 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));
11427                         }
11428                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11429                         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));
11430                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11431                 }
11432                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11433                 if (_ptr_domain_name) {
11434                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11435                 } else {
11436                         r->in.domain_name = NULL;
11437                 }
11438                 if (r->in.domain_name) {
11439                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11440                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11441                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11442                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11443                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11444                                 return 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));
11445                         }
11446                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11447                         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));
11448                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11449                 }
11450                 NDR_PULL_ALLOC(ndr, r->out.rid);
11451                 ZERO_STRUCTP(r->out.rid);
11452         }
11453         if (flags & NDR_OUT) {
11454                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11455                         NDR_PULL_ALLOC(ndr, r->out.rid);
11456                 }
11457                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11458                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11459                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11460                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11461                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11462         }
11463         return NDR_ERR_SUCCESS;
11464 }
11465
11466 _PUBLIC_ void ndr_print_netr_LogonGetTrustRid(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetTrustRid *r)
11467 {
11468         ndr_print_struct(ndr, name, "netr_LogonGetTrustRid");
11469         ndr->depth++;
11470         if (flags & NDR_SET_VALUES) {
11471                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11472         }
11473         if (flags & NDR_IN) {
11474                 ndr_print_struct(ndr, "in", "netr_LogonGetTrustRid");
11475                 ndr->depth++;
11476                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11477                 ndr->depth++;
11478                 if (r->in.server_name) {
11479                         ndr_print_string(ndr, "server_name", r->in.server_name);
11480                 }
11481                 ndr->depth--;
11482                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11483                 ndr->depth++;
11484                 if (r->in.domain_name) {
11485                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11486                 }
11487                 ndr->depth--;
11488                 ndr->depth--;
11489         }
11490         if (flags & NDR_OUT) {
11491                 ndr_print_struct(ndr, "out", "netr_LogonGetTrustRid");
11492                 ndr->depth++;
11493                 ndr_print_ptr(ndr, "rid", r->out.rid);
11494                 ndr->depth++;
11495                 ndr_print_uint32(ndr, "rid", *r->out.rid);
11496                 ndr->depth--;
11497                 ndr_print_WERROR(ndr, "result", r->out.result);
11498                 ndr->depth--;
11499         }
11500         ndr->depth--;
11501 }
11502
11503 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11504 {
11505         if (flags & NDR_IN) {
11506         }
11507         if (flags & NDR_OUT) {
11508                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11509         }
11510         return NDR_ERR_SUCCESS;
11511 }
11512
11513 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11514 {
11515         if (flags & NDR_IN) {
11516         }
11517         if (flags & NDR_OUT) {
11518                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11519         }
11520         return NDR_ERR_SUCCESS;
11521 }
11522
11523 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11524 {
11525         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
11526         ndr->depth++;
11527         if (flags & NDR_SET_VALUES) {
11528                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11529         }
11530         if (flags & NDR_IN) {
11531                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11532                 ndr->depth++;
11533                 ndr->depth--;
11534         }
11535         if (flags & NDR_OUT) {
11536                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11537                 ndr->depth++;
11538                 ndr_print_WERROR(ndr, "result", r->out.result);
11539                 ndr->depth--;
11540         }
11541         ndr->depth--;
11542 }
11543
11544 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11545 {
11546         if (flags & NDR_IN) {
11547         }
11548         if (flags & NDR_OUT) {
11549                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11550         }
11551         return NDR_ERR_SUCCESS;
11552 }
11553
11554 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11555 {
11556         if (flags & NDR_IN) {
11557         }
11558         if (flags & NDR_OUT) {
11559                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11560         }
11561         return NDR_ERR_SUCCESS;
11562 }
11563
11564 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11565 {
11566         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11567         ndr->depth++;
11568         if (flags & NDR_SET_VALUES) {
11569                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11570         }
11571         if (flags & NDR_IN) {
11572                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11573                 ndr->depth++;
11574                 ndr->depth--;
11575         }
11576         if (flags & NDR_OUT) {
11577                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11578                 ndr->depth++;
11579                 ndr_print_WERROR(ndr, "result", r->out.result);
11580                 ndr->depth--;
11581         }
11582         ndr->depth--;
11583 }
11584
11585 static enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
11586 {
11587         if (flags & NDR_IN) {
11588                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11589                 if (r->in.server_name) {
11590                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11591                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11592                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11593                         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));
11594                 }
11595                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11596                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11597                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11598                 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));
11599                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11600                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11601                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11602                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11603                 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));
11604                 if (r->in.credentials == NULL) {
11605                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11606                 }
11607                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11608                 if (r->in.negotiate_flags == NULL) {
11609                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11610                 }
11611                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
11612         }
11613         if (flags & NDR_OUT) {
11614                 if (r->out.credentials == NULL) {
11615                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11616                 }
11617                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11618                 if (r->out.negotiate_flags == NULL) {
11619                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11620                 }
11621                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
11622                 if (r->out.rid == NULL) {
11623                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11624                 }
11625                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11626                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11627         }
11628         return NDR_ERR_SUCCESS;
11629 }
11630
11631 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
11632 {
11633         uint32_t _ptr_server_name;
11634         TALLOC_CTX *_mem_save_server_name_0;
11635         TALLOC_CTX *_mem_save_credentials_0;
11636         TALLOC_CTX *_mem_save_negotiate_flags_0;
11637         TALLOC_CTX *_mem_save_rid_0;
11638         if (flags & NDR_IN) {
11639                 ZERO_STRUCT(r->out);
11640
11641                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11642                 if (_ptr_server_name) {
11643                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11644                 } else {
11645                         r->in.server_name = NULL;
11646                 }
11647                 if (r->in.server_name) {
11648                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11649                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11650                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11651                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11652                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11653                                 return 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));
11654                         }
11655                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11656                         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));
11657                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11658                 }
11659                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11660                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11661                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11662                         return 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));
11663                 }
11664                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11665                 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));
11666                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11667                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11668                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11669                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11670                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
11671                 }
11672                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11673                 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));
11674                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11675                         NDR_PULL_ALLOC(ndr, r->in.credentials);
11676                 }
11677                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11678                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
11679                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11680                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11681                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11682                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
11683                 }
11684                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11685                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11686                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
11687                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11688                 NDR_PULL_ALLOC(ndr, r->out.credentials);
11689                 *r->out.credentials = *r->in.credentials;
11690                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11691                 *r->out.negotiate_flags = *r->in.negotiate_flags;
11692                 NDR_PULL_ALLOC(ndr, r->out.rid);
11693                 ZERO_STRUCTP(r->out.rid);
11694         }
11695         if (flags & NDR_OUT) {
11696                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11697                         NDR_PULL_ALLOC(ndr, r->out.credentials);
11698                 }
11699                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11700                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
11701                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11702                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11703                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11704                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11705                 }
11706                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11707                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11708                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
11709                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11710                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11711                         NDR_PULL_ALLOC(ndr, r->out.rid);
11712                 }
11713                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11714                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11715                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11716                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11717                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11718         }
11719         return NDR_ERR_SUCCESS;
11720 }
11721
11722 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
11723 {
11724         ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
11725         ndr->depth++;
11726         if (flags & NDR_SET_VALUES) {
11727                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11728         }
11729         if (flags & NDR_IN) {
11730                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
11731                 ndr->depth++;
11732                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11733                 ndr->depth++;
11734                 if (r->in.server_name) {
11735                         ndr_print_string(ndr, "server_name", r->in.server_name);
11736                 }
11737                 ndr->depth--;
11738                 ndr_print_string(ndr, "account_name", r->in.account_name);
11739                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
11740                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11741                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
11742                 ndr->depth++;
11743                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
11744                 ndr->depth--;
11745                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
11746                 ndr->depth++;
11747                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
11748                 ndr->depth--;
11749                 ndr->depth--;
11750         }
11751         if (flags & NDR_OUT) {
11752                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
11753                 ndr->depth++;
11754                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
11755                 ndr->depth++;
11756                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
11757                 ndr->depth--;
11758                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
11759                 ndr->depth++;
11760                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
11761                 ndr->depth--;
11762                 ndr_print_ptr(ndr, "rid", r->out.rid);
11763                 ndr->depth++;
11764                 ndr_print_uint32(ndr, "rid", *r->out.rid);
11765                 ndr->depth--;
11766                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11767                 ndr->depth--;
11768         }
11769         ndr->depth--;
11770 }
11771
11772 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
11773 {
11774         if (flags & NDR_IN) {
11775                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11776                 if (r->in.server_unc) {
11777                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11778                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11779                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11780                         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));
11781                 }
11782                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11783                 if (r->in.domain_name) {
11784                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11785                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11786                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11787                         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));
11788                 }
11789                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11790                 if (r->in.domain_guid) {
11791                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
11792                 }
11793                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
11794                 if (r->in.site_name) {
11795                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11796                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11797                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11798                         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));
11799                 }
11800                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11801         }
11802         if (flags & NDR_OUT) {
11803                 if (r->out.info == NULL) {
11804                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11805                 }
11806                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
11807                 if (*r->out.info) {
11808                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11809                 }
11810                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11811         }
11812         return NDR_ERR_SUCCESS;
11813 }
11814
11815 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
11816 {
11817         uint32_t _ptr_server_unc;
11818         uint32_t _ptr_domain_name;
11819         uint32_t _ptr_domain_guid;
11820         uint32_t _ptr_site_name;
11821         uint32_t _ptr_info;
11822         TALLOC_CTX *_mem_save_server_unc_0;
11823         TALLOC_CTX *_mem_save_domain_name_0;
11824         TALLOC_CTX *_mem_save_domain_guid_0;
11825         TALLOC_CTX *_mem_save_site_name_0;
11826         TALLOC_CTX *_mem_save_info_0;
11827         TALLOC_CTX *_mem_save_info_1;
11828         if (flags & NDR_IN) {
11829                 ZERO_STRUCT(r->out);
11830
11831                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11832                 if (_ptr_server_unc) {
11833                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
11834                 } else {
11835                         r->in.server_unc = NULL;
11836                 }
11837                 if (r->in.server_unc) {
11838                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11839                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11840                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11841                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11842                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11843                                 return 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));
11844                         }
11845                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11846                         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));
11847                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11848                 }
11849                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11850                 if (_ptr_domain_name) {
11851                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11852                 } else {
11853                         r->in.domain_name = NULL;
11854                 }
11855                 if (r->in.domain_name) {
11856                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11857                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11858                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11859                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11860                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11861                                 return 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));
11862                         }
11863                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11864                         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));
11865                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11866                 }
11867                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11868                 if (_ptr_domain_guid) {
11869                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11870                 } else {
11871                         r->in.domain_guid = NULL;
11872                 }
11873                 if (r->in.domain_guid) {
11874                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11875                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11876                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
11877                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11878                 }
11879                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
11880                 if (_ptr_site_name) {
11881                         NDR_PULL_ALLOC(ndr, r->in.site_name);
11882                 } else {
11883                         r->in.site_name = NULL;
11884                 }
11885                 if (r->in.site_name) {
11886                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11887                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
11888                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
11889                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
11890                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
11891                                 return 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));
11892                         }
11893                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
11894                         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));
11895                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
11896                 }
11897                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11898                 NDR_PULL_ALLOC(ndr, r->out.info);
11899                 ZERO_STRUCTP(r->out.info);
11900         }
11901         if (flags & NDR_OUT) {
11902                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11903                         NDR_PULL_ALLOC(ndr, r->out.info);
11904                 }
11905                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11906                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11907                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11908                 if (_ptr_info) {
11909                         NDR_PULL_ALLOC(ndr, *r->out.info);
11910                 } else {
11911                         *r->out.info = NULL;
11912                 }
11913                 if (*r->out.info) {
11914                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
11915                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
11916                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11917                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
11918                 }
11919                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11920                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11921         }
11922         return NDR_ERR_SUCCESS;
11923 }
11924
11925 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
11926 {
11927         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
11928         ndr->depth++;
11929         if (flags & NDR_SET_VALUES) {
11930                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11931         }
11932         if (flags & NDR_IN) {
11933                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
11934                 ndr->depth++;
11935                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11936                 ndr->depth++;
11937                 if (r->in.server_unc) {
11938                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11939                 }
11940                 ndr->depth--;
11941                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11942                 ndr->depth++;
11943                 if (r->in.domain_name) {
11944                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11945                 }
11946                 ndr->depth--;
11947                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11948                 ndr->depth++;
11949                 if (r->in.domain_guid) {
11950                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11951                 }
11952                 ndr->depth--;
11953                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
11954                 ndr->depth++;
11955                 if (r->in.site_name) {
11956                         ndr_print_string(ndr, "site_name", r->in.site_name);
11957                 }
11958                 ndr->depth--;
11959                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11960                 ndr->depth--;
11961         }
11962         if (flags & NDR_OUT) {
11963                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
11964                 ndr->depth++;
11965                 ndr_print_ptr(ndr, "info", r->out.info);
11966                 ndr->depth++;
11967                 ndr_print_ptr(ndr, "info", *r->out.info);
11968                 ndr->depth++;
11969                 if (*r->out.info) {
11970                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
11971                 }
11972                 ndr->depth--;
11973                 ndr->depth--;
11974                 ndr_print_WERROR(ndr, "result", r->out.result);
11975                 ndr->depth--;
11976         }
11977         ndr->depth--;
11978 }
11979
11980 static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
11981 {
11982         if (flags & NDR_IN) {
11983                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
11984                 if (r->in.computer_name) {
11985                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11986                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11987                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11988                         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));
11989                 }
11990         }
11991         if (flags & NDR_OUT) {
11992                 if (r->out.site == NULL) {
11993                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11994                 }
11995                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.site));
11996                 if (*r->out.site) {
11997                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
11998                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11999                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
12000                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12001                 }
12002                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12003         }
12004         return NDR_ERR_SUCCESS;
12005 }
12006
12007 static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
12008 {
12009         uint32_t _ptr_computer_name;
12010         uint32_t _ptr_site;
12011         TALLOC_CTX *_mem_save_computer_name_0;
12012         TALLOC_CTX *_mem_save_site_0;
12013         TALLOC_CTX *_mem_save_site_1;
12014         if (flags & NDR_IN) {
12015                 ZERO_STRUCT(r->out);
12016
12017                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12018                 if (_ptr_computer_name) {
12019                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
12020                 } else {
12021                         r->in.computer_name = NULL;
12022                 }
12023                 if (r->in.computer_name) {
12024                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12025                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12026                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12027                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12028                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12029                                 return 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));
12030                         }
12031                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12032                         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));
12033                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12034                 }
12035                 NDR_PULL_ALLOC(ndr, r->out.site);
12036                 ZERO_STRUCTP(r->out.site);
12037         }
12038         if (flags & NDR_OUT) {
12039                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12040                         NDR_PULL_ALLOC(ndr, r->out.site);
12041                 }
12042                 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
12043                 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
12044                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site));
12045                 if (_ptr_site) {
12046                         NDR_PULL_ALLOC(ndr, *r->out.site);
12047                 } else {
12048                         *r->out.site = NULL;
12049                 }
12050                 if (*r->out.site) {
12051                         _mem_save_site_1 = NDR_PULL_GET_MEM_CTX(ndr);
12052                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.site, 0);
12053                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
12054                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
12055                         if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
12056                                 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));
12057                         }
12058                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
12059                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
12060                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_1, 0);
12061                 }
12062                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
12063                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12064         }
12065         return NDR_ERR_SUCCESS;
12066 }
12067
12068 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
12069 {
12070         ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
12071         ndr->depth++;
12072         if (flags & NDR_SET_VALUES) {
12073                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12074         }
12075         if (flags & NDR_IN) {
12076                 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
12077                 ndr->depth++;
12078                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12079                 ndr->depth++;
12080                 if (r->in.computer_name) {
12081                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12082                 }
12083                 ndr->depth--;
12084                 ndr->depth--;
12085         }
12086         if (flags & NDR_OUT) {
12087                 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
12088                 ndr->depth++;
12089                 ndr_print_ptr(ndr, "site", r->out.site);
12090                 ndr->depth++;
12091                 ndr_print_ptr(ndr, "site", *r->out.site);
12092                 ndr->depth++;
12093                 if (*r->out.site) {
12094                         ndr_print_string(ndr, "site", *r->out.site);
12095                 }
12096                 ndr->depth--;
12097                 ndr->depth--;
12098                 ndr_print_WERROR(ndr, "result", r->out.result);
12099                 ndr->depth--;
12100         }
12101         ndr->depth--;
12102 }
12103
12104 static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
12105 {
12106         if (flags & NDR_IN) {
12107                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12108                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12109                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12110                 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));
12111                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12112                 if (r->in.computer_name) {
12113                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12114                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12115                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12116                         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));
12117                 }
12118                 if (r->in.credential == NULL) {
12119                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12120                 }
12121                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12122                 if (r->in.return_authenticator == NULL) {
12123                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12124                 }
12125                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12126                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12127                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level));
12128                 NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
12129         }
12130         if (flags & NDR_OUT) {
12131                 if (r->out.return_authenticator == NULL) {
12132                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12133                 }
12134                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12135                 if (r->out.info == NULL) {
12136                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12137                 }
12138                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
12139                 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12140                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12141         }
12142         return NDR_ERR_SUCCESS;
12143 }
12144
12145 static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
12146 {
12147         uint32_t _ptr_computer_name;
12148         TALLOC_CTX *_mem_save_computer_name_0;
12149         TALLOC_CTX *_mem_save_credential_0;
12150         TALLOC_CTX *_mem_save_return_authenticator_0;
12151         TALLOC_CTX *_mem_save_info_0;
12152         if (flags & NDR_IN) {
12153                 ZERO_STRUCT(r->out);
12154
12155                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12156                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12157                 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12158                         return 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));
12159                 }
12160                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12161                 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));
12162                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12163                 if (_ptr_computer_name) {
12164                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
12165                 } else {
12166                         r->in.computer_name = NULL;
12167                 }
12168                 if (r->in.computer_name) {
12169                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12170                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12171                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12172                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12173                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12174                                 return 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));
12175                         }
12176                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12177                         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));
12178                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12179                 }
12180                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12181                         NDR_PULL_ALLOC(ndr, r->in.credential);
12182                 }
12183                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12184                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12185                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12186                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12187                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12188                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
12189                 }
12190                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12191                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12192                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12193                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12194                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12195                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level));
12196                 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
12197                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12198                 *r->out.return_authenticator = *r->in.return_authenticator;
12199                 NDR_PULL_ALLOC(ndr, r->out.info);
12200                 ZERO_STRUCTP(r->out.info);
12201         }
12202         if (flags & NDR_OUT) {
12203                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12204                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12205                 }
12206                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12207                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12208                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12209                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12210                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12211                         NDR_PULL_ALLOC(ndr, r->out.info);
12212                 }
12213                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12214                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12215                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
12216                 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12217                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12218                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12219         }
12220         return NDR_ERR_SUCCESS;
12221 }
12222
12223 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
12224 {
12225         ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
12226         ndr->depth++;
12227         if (flags & NDR_SET_VALUES) {
12228                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12229         }
12230         if (flags & NDR_IN) {
12231                 ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
12232                 ndr->depth++;
12233                 ndr_print_string(ndr, "server_name", r->in.server_name);
12234                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12235                 ndr->depth++;
12236                 if (r->in.computer_name) {
12237                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12238                 }
12239                 ndr->depth--;
12240                 ndr_print_ptr(ndr, "credential", r->in.credential);
12241                 ndr->depth++;
12242                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12243                 ndr->depth--;
12244                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12245                 ndr->depth++;
12246                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12247                 ndr->depth--;
12248                 ndr_print_uint32(ndr, "level", r->in.level);
12249                 ndr_print_set_switch_value(ndr, &r->in.query, r->in.level);
12250                 ndr_print_netr_DomainQuery(ndr, "query", &r->in.query);
12251                 ndr->depth--;
12252         }
12253         if (flags & NDR_OUT) {
12254                 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
12255                 ndr->depth++;
12256                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12257                 ndr->depth++;
12258                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12259                 ndr->depth--;
12260                 ndr_print_ptr(ndr, "info", r->out.info);
12261                 ndr->depth++;
12262                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
12263                 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
12264                 ndr->depth--;
12265                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12266                 ndr->depth--;
12267         }
12268         ndr->depth--;
12269 }
12270
12271 static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
12272 {
12273         if (flags & NDR_IN) {
12274                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12275                 if (r->in.server_name) {
12276                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12277                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12278                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12279                         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));
12280                 }
12281                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12282                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12283                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12284                 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));
12285                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12286                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12287                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12288                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12289                 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));
12290                 if (r->in.credential == NULL) {
12291                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12292                 }
12293                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12294                 if (r->in.new_password == NULL) {
12295                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12296                 }
12297                 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
12298         }
12299         if (flags & NDR_OUT) {
12300                 if (r->out.return_authenticator == NULL) {
12301                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12302                 }
12303                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12304                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12305         }
12306         return NDR_ERR_SUCCESS;
12307 }
12308
12309 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
12310 {
12311         uint32_t _ptr_server_name;
12312         TALLOC_CTX *_mem_save_server_name_0;
12313         TALLOC_CTX *_mem_save_credential_0;
12314         TALLOC_CTX *_mem_save_return_authenticator_0;
12315         TALLOC_CTX *_mem_save_new_password_0;
12316         if (flags & NDR_IN) {
12317                 ZERO_STRUCT(r->out);
12318
12319                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12320                 if (_ptr_server_name) {
12321                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12322                 } else {
12323                         r->in.server_name = NULL;
12324                 }
12325                 if (r->in.server_name) {
12326                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12327                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12328                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12329                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12330                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12331                                 return 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));
12332                         }
12333                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12334                         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));
12335                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12336                 }
12337                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12338                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12339                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12340                         return 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));
12341                 }
12342                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12343                 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));
12344                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12345                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12346                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12347                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12348                         return 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));
12349                 }
12350                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12351                 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));
12352                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12353                         NDR_PULL_ALLOC(ndr, r->in.credential);
12354                 }
12355                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12356                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12357                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12358                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12359                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12360                         NDR_PULL_ALLOC(ndr, r->in.new_password);
12361                 }
12362                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
12363                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
12364                 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
12365                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
12366                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12367                 ZERO_STRUCTP(r->out.return_authenticator);
12368         }
12369         if (flags & NDR_OUT) {
12370                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12371                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12372                 }
12373                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12374                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12375                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12376                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12377                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12378         }
12379         return NDR_ERR_SUCCESS;
12380 }
12381
12382 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
12383 {
12384         ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
12385         ndr->depth++;
12386         if (flags & NDR_SET_VALUES) {
12387                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12388         }
12389         if (flags & NDR_IN) {
12390                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
12391                 ndr->depth++;
12392                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12393                 ndr->depth++;
12394                 if (r->in.server_name) {
12395                         ndr_print_string(ndr, "server_name", r->in.server_name);
12396                 }
12397                 ndr->depth--;
12398                 ndr_print_string(ndr, "account_name", r->in.account_name);
12399                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12400                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12401                 ndr_print_ptr(ndr, "credential", r->in.credential);
12402                 ndr->depth++;
12403                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12404                 ndr->depth--;
12405                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
12406                 ndr->depth++;
12407                 ndr_print_netr_CryptPassword(ndr, "new_password", r->in.new_password);
12408                 ndr->depth--;
12409                 ndr->depth--;
12410         }
12411         if (flags & NDR_OUT) {
12412                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
12413                 ndr->depth++;
12414                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12415                 ndr->depth++;
12416                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12417                 ndr->depth--;
12418                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12419                 ndr->depth--;
12420         }
12421         ndr->depth--;
12422 }
12423
12424 static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordGet *r)
12425 {
12426         if (flags & NDR_IN) {
12427                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12428                 if (r->in.server_name) {
12429                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12430                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12431                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12432                         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));
12433                 }
12434                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12435                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12436                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12437                 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));
12438                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12439                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12440                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12441                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12442                 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));
12443                 if (r->in.credential == NULL) {
12444                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12445                 }
12446                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12447         }
12448         if (flags & NDR_OUT) {
12449                 if (r->out.return_authenticator == NULL) {
12450                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12451                 }
12452                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12453                 if (r->out.password == NULL) {
12454                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12455                 }
12456                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
12457                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12458         }
12459         return NDR_ERR_SUCCESS;
12460 }
12461
12462 static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r)
12463 {
12464         uint32_t _ptr_server_name;
12465         TALLOC_CTX *_mem_save_server_name_0;
12466         TALLOC_CTX *_mem_save_credential_0;
12467         TALLOC_CTX *_mem_save_return_authenticator_0;
12468         TALLOC_CTX *_mem_save_password_0;
12469         if (flags & NDR_IN) {
12470                 ZERO_STRUCT(r->out);
12471
12472                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12473                 if (_ptr_server_name) {
12474                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12475                 } else {
12476                         r->in.server_name = NULL;
12477                 }
12478                 if (r->in.server_name) {
12479                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12480                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12481                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12482                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12483                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12484                                 return 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));
12485                         }
12486                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12487                         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));
12488                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12489                 }
12490                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12491                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12492                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12493                         return 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));
12494                 }
12495                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12496                 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));
12497                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12498                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12499                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12500                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12501                         return 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));
12502                 }
12503                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12504                 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));
12505                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12506                         NDR_PULL_ALLOC(ndr, r->in.credential);
12507                 }
12508                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12509                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12510                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12511                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12512                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12513                 ZERO_STRUCTP(r->out.return_authenticator);
12514                 NDR_PULL_ALLOC(ndr, r->out.password);
12515                 ZERO_STRUCTP(r->out.password);
12516         }
12517         if (flags & NDR_OUT) {
12518                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12519                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12520                 }
12521                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12522                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12523                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12524                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12525                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12526                         NDR_PULL_ALLOC(ndr, r->out.password);
12527                 }
12528                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
12529                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
12530                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
12531                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
12532                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12533         }
12534         return NDR_ERR_SUCCESS;
12535 }
12536
12537 _PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordGet *r)
12538 {
12539         ndr_print_struct(ndr, name, "netr_ServerPasswordGet");
12540         ndr->depth++;
12541         if (flags & NDR_SET_VALUES) {
12542                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12543         }
12544         if (flags & NDR_IN) {
12545                 ndr_print_struct(ndr, "in", "netr_ServerPasswordGet");
12546                 ndr->depth++;
12547                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12548                 ndr->depth++;
12549                 if (r->in.server_name) {
12550                         ndr_print_string(ndr, "server_name", r->in.server_name);
12551                 }
12552                 ndr->depth--;
12553                 ndr_print_string(ndr, "account_name", r->in.account_name);
12554                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12555                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12556                 ndr_print_ptr(ndr, "credential", r->in.credential);
12557                 ndr->depth++;
12558                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12559                 ndr->depth--;
12560                 ndr->depth--;
12561         }
12562         if (flags & NDR_OUT) {
12563                 ndr_print_struct(ndr, "out", "netr_ServerPasswordGet");
12564                 ndr->depth++;
12565                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12566                 ndr->depth++;
12567                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12568                 ndr->depth--;
12569                 ndr_print_ptr(ndr, "password", r->out.password);
12570                 ndr->depth++;
12571                 ndr_print_samr_Password(ndr, "password", r->out.password);
12572                 ndr->depth--;
12573                 ndr_print_WERROR(ndr, "result", r->out.result);
12574                 ndr->depth--;
12575         }
12576         ndr->depth--;
12577 }
12578
12579 static enum ndr_err_code ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12580 {
12581         if (flags & NDR_IN) {
12582         }
12583         if (flags & NDR_OUT) {
12584                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12585         }
12586         return NDR_ERR_SUCCESS;
12587 }
12588
12589 static enum ndr_err_code ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
12590 {
12591         if (flags & NDR_IN) {
12592         }
12593         if (flags & NDR_OUT) {
12594                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12595         }
12596         return NDR_ERR_SUCCESS;
12597 }
12598
12599 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12600 {
12601         ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
12602         ndr->depth++;
12603         if (flags & NDR_SET_VALUES) {
12604                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12605         }
12606         if (flags & NDR_IN) {
12607                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
12608                 ndr->depth++;
12609                 ndr->depth--;
12610         }
12611         if (flags & NDR_OUT) {
12612                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
12613                 ndr->depth++;
12614                 ndr_print_WERROR(ndr, "result", r->out.result);
12615                 ndr->depth--;
12616         }
12617         ndr->depth--;
12618 }
12619
12620 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesW *r)
12621 {
12622         uint32_t cntr_addresses_1;
12623         if (flags & NDR_IN) {
12624                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12625                 if (r->in.server_name) {
12626                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12627                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12628                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12629                         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));
12630                 }
12631                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12632                 if (r->in.addresses == NULL) {
12633                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12634                 }
12635                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12636                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12637                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12638                 }
12639                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12640                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12641                 }
12642         }
12643         if (flags & NDR_OUT) {
12644                 if (r->out.ctr == NULL) {
12645                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12646                 }
12647                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
12648                 if (*r->out.ctr) {
12649                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12650                 }
12651                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12652         }
12653         return NDR_ERR_SUCCESS;
12654 }
12655
12656 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r)
12657 {
12658         uint32_t _ptr_server_name;
12659         uint32_t cntr_addresses_1;
12660         uint32_t _ptr_ctr;
12661         TALLOC_CTX *_mem_save_server_name_0;
12662         TALLOC_CTX *_mem_save_addresses_1;
12663         TALLOC_CTX *_mem_save_ctr_0;
12664         TALLOC_CTX *_mem_save_ctr_1;
12665         if (flags & NDR_IN) {
12666                 ZERO_STRUCT(r->out);
12667
12668                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12669                 if (_ptr_server_name) {
12670                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12671                 } else {
12672                         r->in.server_name = NULL;
12673                 }
12674                 if (r->in.server_name) {
12675                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12676                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12677                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12678                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12679                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12680                                 return 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));
12681                         }
12682                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12683                         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));
12684                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12685                 }
12686                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
12687                 if (r->in.count < 0 || r->in.count > 32000) {
12688                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
12689                 }
12690                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
12691                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12692                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
12693                 }
12694                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
12695                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
12696                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12697                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12698                 }
12699                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12700                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12701                 }
12702                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
12703                 NDR_PULL_ALLOC(ndr, r->out.ctr);
12704                 ZERO_STRUCTP(r->out.ctr);
12705                 if (r->in.addresses) {
12706                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
12707                 }
12708         }
12709         if (flags & NDR_OUT) {
12710                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12711                         NDR_PULL_ALLOC(ndr, r->out.ctr);
12712                 }
12713                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
12714                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12715                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
12716                 if (_ptr_ctr) {
12717                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
12718                 } else {
12719                         *r->out.ctr = NULL;
12720                 }
12721                 if (*r->out.ctr) {
12722                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
12723                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
12724                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12725                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
12726                 }
12727                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
12728                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12729         }
12730         return NDR_ERR_SUCCESS;
12731 }
12732
12733 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesW *r)
12734 {
12735         uint32_t cntr_addresses_1;
12736         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesW");
12737         ndr->depth++;
12738         if (flags & NDR_SET_VALUES) {
12739                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12740         }
12741         if (flags & NDR_IN) {
12742                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesW");
12743                 ndr->depth++;
12744                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12745                 ndr->depth++;
12746                 if (r->in.server_name) {
12747                         ndr_print_string(ndr, "server_name", r->in.server_name);
12748                 }
12749                 ndr->depth--;
12750                 ndr_print_uint32(ndr, "count", r->in.count);
12751                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
12752                 ndr->depth++;
12753                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
12754                 ndr->depth++;
12755                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
12756                         char *idx_1=NULL;
12757                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
12758                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
12759                                 free(idx_1);
12760                         }
12761                 }
12762                 ndr->depth--;
12763                 ndr->depth--;
12764                 ndr->depth--;
12765         }
12766         if (flags & NDR_OUT) {
12767                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesW");
12768                 ndr->depth++;
12769                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
12770                 ndr->depth++;
12771                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
12772                 ndr->depth++;
12773                 if (*r->out.ctr) {
12774                         ndr_print_netr_DsRAddressToSitenamesWCtr(ndr, "ctr", *r->out.ctr);
12775                 }
12776                 ndr->depth--;
12777                 ndr->depth--;
12778                 ndr_print_WERROR(ndr, "result", r->out.result);
12779                 ndr->depth--;
12780         }
12781         ndr->depth--;
12782 }
12783
12784 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
12785 {
12786         if (flags & NDR_IN) {
12787                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
12788                 if (r->in.server_unc) {
12789                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12790                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12791                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12792                         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));
12793                 }
12794                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
12795                 if (r->in.client_account) {
12796                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12797                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12798                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12799                         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));
12800                 }
12801                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.mask));
12802                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12803                 if (r->in.domain_name) {
12804                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12805                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12806                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12807                         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));
12808                 }
12809                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
12810                 if (r->in.domain_guid) {
12811                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12812                 }
12813                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
12814                 if (r->in.site_name) {
12815                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12816                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12817                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12818                         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));
12819                 }
12820                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
12821         }
12822         if (flags & NDR_OUT) {
12823                 if (r->out.info == NULL) {
12824                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12825                 }
12826                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
12827                 if (*r->out.info) {
12828                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12829                 }
12830                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12831         }
12832         return NDR_ERR_SUCCESS;
12833 }
12834
12835 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
12836 {
12837         uint32_t _ptr_server_unc;
12838         uint32_t _ptr_client_account;
12839         uint32_t _ptr_domain_name;
12840         uint32_t _ptr_domain_guid;
12841         uint32_t _ptr_site_name;
12842         uint32_t _ptr_info;
12843         TALLOC_CTX *_mem_save_server_unc_0;
12844         TALLOC_CTX *_mem_save_client_account_0;
12845         TALLOC_CTX *_mem_save_domain_name_0;
12846         TALLOC_CTX *_mem_save_domain_guid_0;
12847         TALLOC_CTX *_mem_save_site_name_0;
12848         TALLOC_CTX *_mem_save_info_0;
12849         TALLOC_CTX *_mem_save_info_1;
12850         if (flags & NDR_IN) {
12851                 ZERO_STRUCT(r->out);
12852
12853                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12854                 if (_ptr_server_unc) {
12855                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
12856                 } else {
12857                         r->in.server_unc = NULL;
12858                 }
12859                 if (r->in.server_unc) {
12860                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12861                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12862                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12863                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12864                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12865                                 return 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));
12866                         }
12867                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12868                         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));
12869                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12870                 }
12871                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
12872                 if (_ptr_client_account) {
12873                         NDR_PULL_ALLOC(ndr, r->in.client_account);
12874                 } else {
12875                         r->in.client_account = NULL;
12876                 }
12877                 if (r->in.client_account) {
12878                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
12879                         NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
12880                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
12881                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
12882                         if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
12883                                 return 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));
12884                         }
12885                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
12886                         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));
12887                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
12888                 }
12889                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask));
12890                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12891                 if (_ptr_domain_name) {
12892                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12893                 } else {
12894                         r->in.domain_name = NULL;
12895                 }
12896                 if (r->in.domain_name) {
12897                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12898                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12899                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12900                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12901                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12902                                 return 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));
12903                         }
12904                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12905                         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));
12906                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12907                 }
12908                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12909                 if (_ptr_domain_guid) {
12910                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12911                 } else {
12912                         r->in.domain_guid = NULL;
12913                 }
12914                 if (r->in.domain_guid) {
12915                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12916                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12917                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12918                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12919                 }
12920                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
12921                 if (_ptr_site_name) {
12922                         NDR_PULL_ALLOC(ndr, r->in.site_name);
12923                 } else {
12924                         r->in.site_name = NULL;
12925                 }
12926                 if (r->in.site_name) {
12927                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12928                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
12929                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
12930                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
12931                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
12932                                 return 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));
12933                         }
12934                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
12935                         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));
12936                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
12937                 }
12938                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12939                 NDR_PULL_ALLOC(ndr, r->out.info);
12940                 ZERO_STRUCTP(r->out.info);
12941         }
12942         if (flags & NDR_OUT) {
12943                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12944                         NDR_PULL_ALLOC(ndr, r->out.info);
12945                 }
12946                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12947                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12948                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12949                 if (_ptr_info) {
12950                         NDR_PULL_ALLOC(ndr, *r->out.info);
12951                 } else {
12952                         *r->out.info = NULL;
12953                 }
12954                 if (*r->out.info) {
12955                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
12956                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
12957                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12958                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
12959                 }
12960                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12961                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12962         }
12963         return NDR_ERR_SUCCESS;
12964 }
12965
12966 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
12967 {
12968         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
12969         ndr->depth++;
12970         if (flags & NDR_SET_VALUES) {
12971                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12972         }
12973         if (flags & NDR_IN) {
12974                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
12975                 ndr->depth++;
12976                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
12977                 ndr->depth++;
12978                 if (r->in.server_unc) {
12979                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
12980                 }
12981                 ndr->depth--;
12982                 ndr_print_ptr(ndr, "client_account", r->in.client_account);
12983                 ndr->depth++;
12984                 if (r->in.client_account) {
12985                         ndr_print_string(ndr, "client_account", r->in.client_account);
12986                 }
12987                 ndr->depth--;
12988                 ndr_print_samr_AcctFlags(ndr, "mask", r->in.mask);
12989                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12990                 ndr->depth++;
12991                 if (r->in.domain_name) {
12992                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12993                 }
12994                 ndr->depth--;
12995                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
12996                 ndr->depth++;
12997                 if (r->in.domain_guid) {
12998                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
12999                 }
13000                 ndr->depth--;
13001                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
13002                 ndr->depth++;
13003                 if (r->in.site_name) {
13004                         ndr_print_string(ndr, "site_name", r->in.site_name);
13005                 }
13006                 ndr->depth--;
13007                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
13008                 ndr->depth--;
13009         }
13010         if (flags & NDR_OUT) {
13011                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
13012                 ndr->depth++;
13013                 ndr_print_ptr(ndr, "info", r->out.info);
13014                 ndr->depth++;
13015                 ndr_print_ptr(ndr, "info", *r->out.info);
13016                 ndr->depth++;
13017                 if (*r->out.info) {
13018                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
13019                 }
13020                 ndr->depth--;
13021                 ndr->depth--;
13022                 ndr_print_WERROR(ndr, "result", r->out.result);
13023                 ndr->depth--;
13024         }
13025         ndr->depth--;
13026 }
13027
13028 static enum ndr_err_code ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13029 {
13030         if (flags & NDR_IN) {
13031         }
13032         if (flags & NDR_OUT) {
13033                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13034         }
13035         return NDR_ERR_SUCCESS;
13036 }
13037
13038 static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13039 {
13040         if (flags & NDR_IN) {
13041         }
13042         if (flags & NDR_OUT) {
13043                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13044         }
13045         return NDR_ERR_SUCCESS;
13046 }
13047
13048 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13049 {
13050         ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13051         ndr->depth++;
13052         if (flags & NDR_SET_VALUES) {
13053                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13054         }
13055         if (flags & NDR_IN) {
13056                 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13057                 ndr->depth++;
13058                 ndr->depth--;
13059         }
13060         if (flags & NDR_OUT) {
13061                 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13062                 ndr->depth++;
13063                 ndr_print_WERROR(ndr, "result", r->out.result);
13064                 ndr->depth--;
13065         }
13066         ndr->depth--;
13067 }
13068
13069 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
13070 {
13071         if (flags & NDR_IN) {
13072                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13073                 if (r->in.server_name) {
13074                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13075                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13076                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13077                         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));
13078                 }
13079         }
13080         if (flags & NDR_OUT) {
13081                 if (r->out.dom_trust_list == NULL) {
13082                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13083                 }
13084                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
13085                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13086         }
13087         return NDR_ERR_SUCCESS;
13088 }
13089
13090 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r)
13091 {
13092         uint32_t _ptr_server_name;
13093         TALLOC_CTX *_mem_save_server_name_0;
13094         TALLOC_CTX *_mem_save_dom_trust_list_0;
13095         if (flags & NDR_IN) {
13096                 ZERO_STRUCT(r->out);
13097
13098                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13099                 if (_ptr_server_name) {
13100                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13101                 } else {
13102                         r->in.server_name = NULL;
13103                 }
13104                 if (r->in.server_name) {
13105                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13106                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13107                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13108                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13109                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13110                                 return 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));
13111                         }
13112                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13113                         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));
13114                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13115                 }
13116                 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13117                 ZERO_STRUCTP(r->out.dom_trust_list);
13118         }
13119         if (flags & NDR_OUT) {
13120                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13121                         NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13122                 }
13123                 _mem_save_dom_trust_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
13124                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dom_trust_list, LIBNDR_FLAG_REF_ALLOC);
13125                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
13126                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_trust_list_0, LIBNDR_FLAG_REF_ALLOC);
13127                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13128         }
13129         return NDR_ERR_SUCCESS;
13130 }
13131
13132 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
13133 {
13134         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomainsEx");
13135         ndr->depth++;
13136         if (flags & NDR_SET_VALUES) {
13137                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13138         }
13139         if (flags & NDR_IN) {
13140                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomainsEx");
13141                 ndr->depth++;
13142                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13143                 ndr->depth++;
13144                 if (r->in.server_name) {
13145                         ndr_print_string(ndr, "server_name", r->in.server_name);
13146                 }
13147                 ndr->depth--;
13148                 ndr->depth--;
13149         }
13150         if (flags & NDR_OUT) {
13151                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomainsEx");
13152                 ndr->depth++;
13153                 ndr_print_ptr(ndr, "dom_trust_list", r->out.dom_trust_list);
13154                 ndr->depth++;
13155                 ndr_print_netr_DomainTrustList(ndr, "dom_trust_list", r->out.dom_trust_list);
13156                 ndr->depth--;
13157                 ndr_print_WERROR(ndr, "result", r->out.result);
13158                 ndr->depth--;
13159         }
13160         ndr->depth--;
13161 }
13162
13163 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesExW *r)
13164 {
13165         uint32_t cntr_addresses_1;
13166         if (flags & NDR_IN) {
13167                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13168                 if (r->in.server_name) {
13169                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13170                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13171                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13172                         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));
13173                 }
13174                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13175                 if (r->in.addresses == NULL) {
13176                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13177                 }
13178                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13179                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13180                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13181                 }
13182                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13183                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13184                 }
13185         }
13186         if (flags & NDR_OUT) {
13187                 if (r->out.ctr == NULL) {
13188                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13189                 }
13190                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
13191                 if (*r->out.ctr) {
13192                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13193                 }
13194                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13195         }
13196         return NDR_ERR_SUCCESS;
13197 }
13198
13199 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r)
13200 {
13201         uint32_t _ptr_server_name;
13202         uint32_t cntr_addresses_1;
13203         uint32_t _ptr_ctr;
13204         TALLOC_CTX *_mem_save_server_name_0;
13205         TALLOC_CTX *_mem_save_addresses_1;
13206         TALLOC_CTX *_mem_save_ctr_0;
13207         TALLOC_CTX *_mem_save_ctr_1;
13208         if (flags & NDR_IN) {
13209                 ZERO_STRUCT(r->out);
13210
13211                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13212                 if (_ptr_server_name) {
13213                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13214                 } else {
13215                         r->in.server_name = NULL;
13216                 }
13217                 if (r->in.server_name) {
13218                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13219                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13220                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13221                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13222                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13223                                 return 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));
13224                         }
13225                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13226                         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));
13227                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13228                 }
13229                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
13230                 if (r->in.count < 0 || r->in.count > 32000) {
13231                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13232                 }
13233                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
13234                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13235                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
13236                 }
13237                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
13238                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
13239                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13240                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13241                 }
13242                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13243                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13244                 }
13245                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
13246                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13247                 ZERO_STRUCTP(r->out.ctr);
13248                 if (r->in.addresses) {
13249                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
13250                 }
13251         }
13252         if (flags & NDR_OUT) {
13253                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13254                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13255                 }
13256                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13257                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13258                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
13259                 if (_ptr_ctr) {
13260                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
13261                 } else {
13262                         *r->out.ctr = NULL;
13263                 }
13264                 if (*r->out.ctr) {
13265                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
13266                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
13267                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13268                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
13269                 }
13270                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13271                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13272         }
13273         return NDR_ERR_SUCCESS;
13274 }
13275
13276 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesExW *r)
13277 {
13278         uint32_t cntr_addresses_1;
13279         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExW");
13280         ndr->depth++;
13281         if (flags & NDR_SET_VALUES) {
13282                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13283         }
13284         if (flags & NDR_IN) {
13285                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesExW");
13286                 ndr->depth++;
13287                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13288                 ndr->depth++;
13289                 if (r->in.server_name) {
13290                         ndr_print_string(ndr, "server_name", r->in.server_name);
13291                 }
13292                 ndr->depth--;
13293                 ndr_print_uint32(ndr, "count", r->in.count);
13294                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
13295                 ndr->depth++;
13296                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
13297                 ndr->depth++;
13298                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
13299                         char *idx_1=NULL;
13300                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
13301                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
13302                                 free(idx_1);
13303                         }
13304                 }
13305                 ndr->depth--;
13306                 ndr->depth--;
13307                 ndr->depth--;
13308         }
13309         if (flags & NDR_OUT) {
13310                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesExW");
13311                 ndr->depth++;
13312                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13313                 ndr->depth++;
13314                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
13315                 ndr->depth++;
13316                 if (*r->out.ctr) {
13317                         ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr, "ctr", *r->out.ctr);
13318                 }
13319                 ndr->depth--;
13320                 ndr->depth--;
13321                 ndr_print_WERROR(ndr, "result", r->out.result);
13322                 ndr->depth--;
13323         }
13324         ndr->depth--;
13325 }
13326
13327 static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *ndr, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13328 {
13329         if (flags & NDR_IN) {
13330                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13331                 if (r->in.server_name) {
13332                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13333                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13334                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13335                         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));
13336                 }
13337         }
13338         if (flags & NDR_OUT) {
13339                 if (r->out.ctr == NULL) {
13340                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13341                 }
13342                 NDR_CHECK(ndr_push_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13343                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13344         }
13345         return NDR_ERR_SUCCESS;
13346 }
13347
13348 static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r)
13349 {
13350         uint32_t _ptr_server_name;
13351         TALLOC_CTX *_mem_save_server_name_0;
13352         TALLOC_CTX *_mem_save_ctr_0;
13353         if (flags & NDR_IN) {
13354                 ZERO_STRUCT(r->out);
13355
13356                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13357                 if (_ptr_server_name) {
13358                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13359                 } else {
13360                         r->in.server_name = NULL;
13361                 }
13362                 if (r->in.server_name) {
13363                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13364                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13365                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13366                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13367                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13368                                 return 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));
13369                         }
13370                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13371                         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));
13372                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13373                 }
13374                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13375                 ZERO_STRUCTP(r->out.ctr);
13376         }
13377         if (flags & NDR_OUT) {
13378                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13379                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13380                 }
13381                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13382                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13383                 NDR_CHECK(ndr_pull_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13384                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13385                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13386         }
13387         return NDR_ERR_SUCCESS;
13388 }
13389
13390 _PUBLIC_ void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13391 {
13392         ndr_print_struct(ndr, name, "netr_DsrGetDcSiteCoverageW");
13393         ndr->depth++;
13394         if (flags & NDR_SET_VALUES) {
13395                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13396         }
13397         if (flags & NDR_IN) {
13398                 ndr_print_struct(ndr, "in", "netr_DsrGetDcSiteCoverageW");
13399                 ndr->depth++;
13400                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13401                 ndr->depth++;
13402                 if (r->in.server_name) {
13403                         ndr_print_string(ndr, "server_name", r->in.server_name);
13404                 }
13405                 ndr->depth--;
13406                 ndr->depth--;
13407         }
13408         if (flags & NDR_OUT) {
13409                 ndr_print_struct(ndr, "out", "netr_DsrGetDcSiteCoverageW");
13410                 ndr->depth++;
13411                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13412                 ndr->depth++;
13413                 ndr_print_DcSitesCtr(ndr, "ctr", r->out.ctr);
13414                 ndr->depth--;
13415                 ndr_print_WERROR(ndr, "result", r->out.result);
13416                 ndr->depth--;
13417         }
13418         ndr->depth--;
13419 }
13420
13421 static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
13422 {
13423         if (flags & NDR_IN) {
13424                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13425                 if (r->in.server_name) {
13426                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13427                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13428                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13429                         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));
13430                 }
13431                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13432                 if (r->in.computer_name) {
13433                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13434                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13435                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13436                         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));
13437                 }
13438                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
13439                 if (r->in.logon == NULL) {
13440                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13441                 }
13442                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
13443                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
13444                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
13445                 if (r->in.flags == NULL) {
13446                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13447                 }
13448                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
13449         }
13450         if (flags & NDR_OUT) {
13451                 if (r->out.validation == NULL) {
13452                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13453                 }
13454                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13455                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13456                 if (r->out.authoritative == NULL) {
13457                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13458                 }
13459                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
13460                 if (r->out.flags == NULL) {
13461                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13462                 }
13463                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
13464                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13465         }
13466         return NDR_ERR_SUCCESS;
13467 }
13468
13469 static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
13470 {
13471         uint32_t _ptr_server_name;
13472         uint32_t _ptr_computer_name;
13473         TALLOC_CTX *_mem_save_server_name_0;
13474         TALLOC_CTX *_mem_save_computer_name_0;
13475         TALLOC_CTX *_mem_save_logon_0;
13476         TALLOC_CTX *_mem_save_validation_0;
13477         TALLOC_CTX *_mem_save_authoritative_0;
13478         TALLOC_CTX *_mem_save_flags_0;
13479         if (flags & NDR_IN) {
13480                 ZERO_STRUCT(r->out);
13481
13482                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13483                 if (_ptr_server_name) {
13484                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13485                 } else {
13486                         r->in.server_name = NULL;
13487                 }
13488                 if (r->in.server_name) {
13489                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13490                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13491                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13492                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13493                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13494                                 return 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));
13495                         }
13496                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13497                         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));
13498                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13499                 }
13500                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13501                 if (_ptr_computer_name) {
13502                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13503                 } else {
13504                         r->in.computer_name = NULL;
13505                 }
13506                 if (r->in.computer_name) {
13507                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13508                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13509                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13510                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13511                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13512                                 return 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));
13513                         }
13514                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13515                         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));
13516                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13517                 }
13518                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
13519                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13520                         NDR_PULL_ALLOC(ndr, r->in.logon);
13521                 }
13522                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
13523                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
13524                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
13525                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
13526                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
13527                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
13528                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13529                         NDR_PULL_ALLOC(ndr, r->in.flags);
13530                 }
13531                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13532                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
13533                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
13534                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13535                 NDR_PULL_ALLOC(ndr, r->out.validation);
13536                 ZERO_STRUCTP(r->out.validation);
13537                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
13538                 ZERO_STRUCTP(r->out.authoritative);
13539                 NDR_PULL_ALLOC(ndr, r->out.flags);
13540                 *r->out.flags = *r->in.flags;
13541         }
13542         if (flags & NDR_OUT) {
13543                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13544                         NDR_PULL_ALLOC(ndr, r->out.validation);
13545                 }
13546                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
13547                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
13548                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13549                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13550                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
13551                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13552                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
13553                 }
13554                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
13555                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
13556                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
13557                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
13558                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13559                         NDR_PULL_ALLOC(ndr, r->out.flags);
13560                 }
13561                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13562                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
13563                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
13564                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13565                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13566         }
13567         return NDR_ERR_SUCCESS;
13568 }
13569
13570 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
13571 {
13572         ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
13573         ndr->depth++;
13574         if (flags & NDR_SET_VALUES) {
13575                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13576         }
13577         if (flags & NDR_IN) {
13578                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
13579                 ndr->depth++;
13580                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13581                 ndr->depth++;
13582                 if (r->in.server_name) {
13583                         ndr_print_string(ndr, "server_name", r->in.server_name);
13584                 }
13585                 ndr->depth--;
13586                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13587                 ndr->depth++;
13588                 if (r->in.computer_name) {
13589                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
13590                 }
13591                 ndr->depth--;
13592                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
13593                 ndr_print_ptr(ndr, "logon", r->in.logon);
13594                 ndr->depth++;
13595                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
13596                 ndr_print_netr_LogonInfo(ndr, "logon", r->in.logon);
13597                 ndr->depth--;
13598                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
13599                 ndr_print_ptr(ndr, "flags", r->in.flags);
13600                 ndr->depth++;
13601                 ndr_print_uint32(ndr, "flags", *r->in.flags);
13602                 ndr->depth--;
13603                 ndr->depth--;
13604         }
13605         if (flags & NDR_OUT) {
13606                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
13607                 ndr->depth++;
13608                 ndr_print_ptr(ndr, "validation", r->out.validation);
13609                 ndr->depth++;
13610                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
13611                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
13612                 ndr->depth--;
13613                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
13614                 ndr->depth++;
13615                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
13616                 ndr->depth--;
13617                 ndr_print_ptr(ndr, "flags", r->out.flags);
13618                 ndr->depth++;
13619                 ndr_print_uint32(ndr, "flags", *r->out.flags);
13620                 ndr->depth--;
13621                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13622                 ndr->depth--;
13623         }
13624         ndr->depth--;
13625 }
13626
13627 static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13628 {
13629         if (flags & NDR_IN) {
13630                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13631                 if (r->in.server_name) {
13632                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13633                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13634                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13635                         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));
13636                 }
13637                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
13638         }
13639         if (flags & NDR_OUT) {
13640                 if (r->out.trusts == NULL) {
13641                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13642                 }
13643                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13644                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13645         }
13646         return NDR_ERR_SUCCESS;
13647 }
13648
13649 static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
13650 {
13651         uint32_t _ptr_server_name;
13652         TALLOC_CTX *_mem_save_server_name_0;
13653         TALLOC_CTX *_mem_save_trusts_0;
13654         if (flags & NDR_IN) {
13655                 ZERO_STRUCT(r->out);
13656
13657                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13658                 if (_ptr_server_name) {
13659                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13660                 } else {
13661                         r->in.server_name = NULL;
13662                 }
13663                 if (r->in.server_name) {
13664                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13665                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13666                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13667                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13668                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13669                                 return 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));
13670                         }
13671                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13672                         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));
13673                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13674                 }
13675                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
13676                 NDR_PULL_ALLOC(ndr, r->out.trusts);
13677                 ZERO_STRUCTP(r->out.trusts);
13678         }
13679         if (flags & NDR_OUT) {
13680                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13681                         NDR_PULL_ALLOC(ndr, r->out.trusts);
13682                 }
13683                 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
13684                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
13685                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13686                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, LIBNDR_FLAG_REF_ALLOC);
13687                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13688         }
13689         return NDR_ERR_SUCCESS;
13690 }
13691
13692 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13693 {
13694         ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
13695         ndr->depth++;
13696         if (flags & NDR_SET_VALUES) {
13697                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13698         }
13699         if (flags & NDR_IN) {
13700                 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
13701                 ndr->depth++;
13702                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13703                 ndr->depth++;
13704                 if (r->in.server_name) {
13705                         ndr_print_string(ndr, "server_name", r->in.server_name);
13706                 }
13707                 ndr->depth--;
13708                 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
13709                 ndr->depth--;
13710         }
13711         if (flags & NDR_OUT) {
13712                 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
13713                 ndr->depth++;
13714                 ndr_print_ptr(ndr, "trusts", r->out.trusts);
13715                 ndr->depth++;
13716                 ndr_print_netr_DomainTrustList(ndr, "trusts", r->out.trusts);
13717                 ndr->depth--;
13718                 ndr_print_WERROR(ndr, "result", r->out.result);
13719                 ndr->depth--;
13720         }
13721         ndr->depth--;
13722 }
13723
13724 static enum ndr_err_code ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push *ndr, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
13725 {
13726         if (flags & NDR_IN) {
13727                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13728                 if (r->in.server_name) {
13729                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13730                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13731                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13732                         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));
13733                 }
13734                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain));
13735                 if (r->in.domain) {
13736                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
13737                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13738                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
13739                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13740                 }
13741                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
13742                 if (r->in.domain_guid) {
13743                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
13744                 }
13745                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dsa_guid));
13746                 if (r->in.dsa_guid) {
13747                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
13748                 }
13749                 if (r->in.dns_host == NULL) {
13750                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13751                 }
13752                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, 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.dns_host, CH_UTF16)));
13755                 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));
13756         }
13757         if (flags & NDR_OUT) {
13758                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13759         }
13760         return NDR_ERR_SUCCESS;
13761 }
13762
13763 static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull *ndr, int flags, struct netr_DsrDeregisterDNSHostRecords *r)
13764 {
13765         uint32_t _ptr_server_name;
13766         uint32_t _ptr_domain;
13767         uint32_t _ptr_domain_guid;
13768         uint32_t _ptr_dsa_guid;
13769         TALLOC_CTX *_mem_save_server_name_0;
13770         TALLOC_CTX *_mem_save_domain_0;
13771         TALLOC_CTX *_mem_save_domain_guid_0;
13772         TALLOC_CTX *_mem_save_dsa_guid_0;
13773         if (flags & NDR_IN) {
13774                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13775                 if (_ptr_server_name) {
13776                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13777                 } else {
13778                         r->in.server_name = NULL;
13779                 }
13780                 if (r->in.server_name) {
13781                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13782                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13783                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13784                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13785                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13786                                 return 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));
13787                         }
13788                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13789                         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));
13790                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13791                 }
13792                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
13793                 if (_ptr_domain) {
13794                         NDR_PULL_ALLOC(ndr, r->in.domain);
13795                 } else {
13796                         r->in.domain = NULL;
13797                 }
13798                 if (r->in.domain) {
13799                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
13800                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain, 0);
13801                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
13802                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
13803                         if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
13804                                 return 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));
13805                         }
13806                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t)));
13807                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t), CH_UTF16));
13808                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
13809                 }
13810                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
13811                 if (_ptr_domain_guid) {
13812                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
13813                 } else {
13814                         r->in.domain_guid = NULL;
13815                 }
13816                 if (r->in.domain_guid) {
13817                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13818                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
13819                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
13820                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
13821                 }
13822                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_guid));
13823                 if (_ptr_dsa_guid) {
13824                         NDR_PULL_ALLOC(ndr, r->in.dsa_guid);
13825                 } else {
13826                         r->in.dsa_guid = NULL;
13827                 }
13828                 if (r->in.dsa_guid) {
13829                         _mem_save_dsa_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13830                         NDR_PULL_SET_MEM_CTX(ndr, r->in.dsa_guid, 0);
13831                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
13832                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_guid_0, 0);
13833                 }
13834                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_host));
13835                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_host));
13836                 if (ndr_get_array_length(ndr, &r->in.dns_host) > ndr_get_array_size(ndr, &r->in.dns_host)) {
13837                         return 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));
13838                 }
13839                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t)));
13840                 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));
13841         }
13842         if (flags & NDR_OUT) {
13843                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13844         }
13845         return NDR_ERR_SUCCESS;
13846 }
13847
13848 _PUBLIC_ void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
13849 {
13850         ndr_print_struct(ndr, name, "netr_DsrDeregisterDNSHostRecords");
13851         ndr->depth++;
13852         if (flags & NDR_SET_VALUES) {
13853                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13854         }
13855         if (flags & NDR_IN) {
13856                 ndr_print_struct(ndr, "in", "netr_DsrDeregisterDNSHostRecords");
13857                 ndr->depth++;
13858                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13859                 ndr->depth++;
13860                 if (r->in.server_name) {
13861                         ndr_print_string(ndr, "server_name", r->in.server_name);
13862                 }
13863                 ndr->depth--;
13864                 ndr_print_ptr(ndr, "domain", r->in.domain);
13865                 ndr->depth++;
13866                 if (r->in.domain) {
13867                         ndr_print_string(ndr, "domain", r->in.domain);
13868                 }
13869                 ndr->depth--;
13870                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
13871                 ndr->depth++;
13872                 if (r->in.domain_guid) {
13873                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
13874                 }
13875                 ndr->depth--;
13876                 ndr_print_ptr(ndr, "dsa_guid", r->in.dsa_guid);
13877                 ndr->depth++;
13878                 if (r->in.dsa_guid) {
13879                         ndr_print_GUID(ndr, "dsa_guid", r->in.dsa_guid);
13880                 }
13881                 ndr->depth--;
13882                 ndr_print_ptr(ndr, "dns_host", r->in.dns_host);
13883                 ndr->depth++;
13884                 ndr_print_string(ndr, "dns_host", r->in.dns_host);
13885                 ndr->depth--;
13886                 ndr->depth--;
13887         }
13888         if (flags & NDR_OUT) {
13889                 ndr_print_struct(ndr, "out", "netr_DsrDeregisterDNSHostRecords");
13890                 ndr->depth++;
13891                 ndr_print_WERROR(ndr, "result", r->out.result);
13892                 ndr->depth--;
13893         }
13894         ndr->depth--;
13895 }
13896
13897 static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push *ndr, int flags, const struct netr_ServerTrustPasswordsGet *r)
13898 {
13899         if (flags & NDR_IN) {
13900                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13901                 if (r->in.server_name) {
13902                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13903                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13904                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13905                         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));
13906                 }
13907                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13908                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13909                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13910                 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));
13911                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13912                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13913                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13914                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13915                 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));
13916                 if (r->in.credential == NULL) {
13917                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13918                 }
13919                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13920         }
13921         if (flags & NDR_OUT) {
13922                 if (r->out.return_authenticator == NULL) {
13923                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13924                 }
13925                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13926                 if (r->out.password == NULL) {
13927                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13928                 }
13929                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
13930                 if (r->out.password2 == NULL) {
13931                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13932                 }
13933                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password2));
13934                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13935         }
13936         return NDR_ERR_SUCCESS;
13937 }
13938
13939 static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r)
13940 {
13941         uint32_t _ptr_server_name;
13942         TALLOC_CTX *_mem_save_server_name_0;
13943         TALLOC_CTX *_mem_save_credential_0;
13944         TALLOC_CTX *_mem_save_return_authenticator_0;
13945         TALLOC_CTX *_mem_save_password_0;
13946         TALLOC_CTX *_mem_save_password2_0;
13947         if (flags & NDR_IN) {
13948                 ZERO_STRUCT(r->out);
13949
13950                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13951                 if (_ptr_server_name) {
13952                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13953                 } else {
13954                         r->in.server_name = NULL;
13955                 }
13956                 if (r->in.server_name) {
13957                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13958                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13959                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13960                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13961                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13962                                 return 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));
13963                         }
13964                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13965                         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));
13966                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13967                 }
13968                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13969                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13970                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13971                         return 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));
13972                 }
13973                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13974                 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));
13975                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13976                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13977                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13978                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13979                         return 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));
13980                 }
13981                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13982                 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));
13983                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13984                         NDR_PULL_ALLOC(ndr, r->in.credential);
13985                 }
13986                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13987                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13988                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13989                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13990                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13991                 ZERO_STRUCTP(r->out.return_authenticator);
13992                 NDR_PULL_ALLOC(ndr, r->out.password);
13993                 ZERO_STRUCTP(r->out.password);
13994                 NDR_PULL_ALLOC(ndr, r->out.password2);
13995                 ZERO_STRUCTP(r->out.password2);
13996         }
13997         if (flags & NDR_OUT) {
13998                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13999                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14000                 }
14001                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14002                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14003                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14004                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14005                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14006                         NDR_PULL_ALLOC(ndr, r->out.password);
14007                 }
14008                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
14009                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
14010                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
14011                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
14012                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14013                         NDR_PULL_ALLOC(ndr, r->out.password2);
14014                 }
14015                 _mem_save_password2_0 = NDR_PULL_GET_MEM_CTX(ndr);
14016                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password2, LIBNDR_FLAG_REF_ALLOC);
14017                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password2));
14018                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password2_0, LIBNDR_FLAG_REF_ALLOC);
14019                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14020         }
14021         return NDR_ERR_SUCCESS;
14022 }
14023
14024 _PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerTrustPasswordsGet *r)
14025 {
14026         ndr_print_struct(ndr, name, "netr_ServerTrustPasswordsGet");
14027         ndr->depth++;
14028         if (flags & NDR_SET_VALUES) {
14029                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14030         }
14031         if (flags & NDR_IN) {
14032                 ndr_print_struct(ndr, "in", "netr_ServerTrustPasswordsGet");
14033                 ndr->depth++;
14034                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14035                 ndr->depth++;
14036                 if (r->in.server_name) {
14037                         ndr_print_string(ndr, "server_name", r->in.server_name);
14038                 }
14039                 ndr->depth--;
14040                 ndr_print_string(ndr, "account_name", r->in.account_name);
14041                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
14042                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
14043                 ndr_print_ptr(ndr, "credential", r->in.credential);
14044                 ndr->depth++;
14045                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14046                 ndr->depth--;
14047                 ndr->depth--;
14048         }
14049         if (flags & NDR_OUT) {
14050                 ndr_print_struct(ndr, "out", "netr_ServerTrustPasswordsGet");
14051                 ndr->depth++;
14052                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14053                 ndr->depth++;
14054                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14055                 ndr->depth--;
14056                 ndr_print_ptr(ndr, "password", r->out.password);
14057                 ndr->depth++;
14058                 ndr_print_samr_Password(ndr, "password", r->out.password);
14059                 ndr->depth--;
14060                 ndr_print_ptr(ndr, "password2", r->out.password2);
14061                 ndr->depth++;
14062                 ndr_print_samr_Password(ndr, "password2", r->out.password2);
14063                 ndr->depth--;
14064                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14065                 ndr->depth--;
14066         }
14067         ndr->depth--;
14068 }
14069
14070 static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_DsRGetForestTrustInformation *r)
14071 {
14072         if (flags & NDR_IN) {
14073                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14074                 if (r->in.server_name) {
14075                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14076                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14077                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14078                         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));
14079                 }
14080                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.trusted_domain_name));
14081                 if (r->in.trusted_domain_name) {
14082                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14083                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14084                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14085                         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));
14086                 }
14087                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14088         }
14089         if (flags & NDR_OUT) {
14090                 if (r->out.forest_trust_info == NULL) {
14091                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14092                 }
14093                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
14094                 if (*r->out.forest_trust_info) {
14095                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14096                 }
14097                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14098         }
14099         return NDR_ERR_SUCCESS;
14100 }
14101
14102 static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r)
14103 {
14104         uint32_t _ptr_server_name;
14105         uint32_t _ptr_trusted_domain_name;
14106         uint32_t _ptr_forest_trust_info;
14107         TALLOC_CTX *_mem_save_server_name_0;
14108         TALLOC_CTX *_mem_save_trusted_domain_name_0;
14109         TALLOC_CTX *_mem_save_forest_trust_info_0;
14110         TALLOC_CTX *_mem_save_forest_trust_info_1;
14111         if (flags & NDR_IN) {
14112                 ZERO_STRUCT(r->out);
14113
14114                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14115                 if (_ptr_server_name) {
14116                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14117                 } else {
14118                         r->in.server_name = NULL;
14119                 }
14120                 if (r->in.server_name) {
14121                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14122                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14123                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14124                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14125                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14126                                 return 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));
14127                         }
14128                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14129                         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));
14130                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14131                 }
14132                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
14133                 if (_ptr_trusted_domain_name) {
14134                         NDR_PULL_ALLOC(ndr, r->in.trusted_domain_name);
14135                 } else {
14136                         r->in.trusted_domain_name = NULL;
14137                 }
14138                 if (r->in.trusted_domain_name) {
14139                         _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14140                         NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0);
14141                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
14142                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
14143                         if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
14144                                 return 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));
14145                         }
14146                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
14147                         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));
14148                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
14149                 }
14150                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
14151                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14152                 ZERO_STRUCTP(r->out.forest_trust_info);
14153         }
14154         if (flags & NDR_OUT) {
14155                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14156                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14157                 }
14158                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14159                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
14160                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
14161                 if (_ptr_forest_trust_info) {
14162                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
14163                 } else {
14164                         *r->out.forest_trust_info = NULL;
14165                 }
14166                 if (*r->out.forest_trust_info) {
14167                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14168                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
14169                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14170                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
14171                 }
14172                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
14173                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14174         }
14175         return NDR_ERR_SUCCESS;
14176 }
14177
14178 _PUBLIC_ void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r)
14179 {
14180         ndr_print_struct(ndr, name, "netr_DsRGetForestTrustInformation");
14181         ndr->depth++;
14182         if (flags & NDR_SET_VALUES) {
14183                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14184         }
14185         if (flags & NDR_IN) {
14186                 ndr_print_struct(ndr, "in", "netr_DsRGetForestTrustInformation");
14187                 ndr->depth++;
14188                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14189                 ndr->depth++;
14190                 if (r->in.server_name) {
14191                         ndr_print_string(ndr, "server_name", r->in.server_name);
14192                 }
14193                 ndr->depth--;
14194                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14195                 ndr->depth++;
14196                 if (r->in.trusted_domain_name) {
14197                         ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14198                 }
14199                 ndr->depth--;
14200                 ndr_print_uint32(ndr, "flags", r->in.flags);
14201                 ndr->depth--;
14202         }
14203         if (flags & NDR_OUT) {
14204                 ndr_print_struct(ndr, "out", "netr_DsRGetForestTrustInformation");
14205                 ndr->depth++;
14206                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
14207                 ndr->depth++;
14208                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
14209                 ndr->depth++;
14210                 if (*r->out.forest_trust_info) {
14211                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
14212                 }
14213                 ndr->depth--;
14214                 ndr->depth--;
14215                 ndr_print_WERROR(ndr, "result", r->out.result);
14216                 ndr->depth--;
14217         }
14218         ndr->depth--;
14219 }
14220
14221 static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_GetForestTrustInformation *r)
14222 {
14223         if (flags & NDR_IN) {
14224                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14225                 if (r->in.server_name) {
14226                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14227                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14228                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14229                         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));
14230                 }
14231                 if (r->in.trusted_domain_name == NULL) {
14232                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14233                 }
14234                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14235                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14236                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14237                 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));
14238                 if (r->in.credential == NULL) {
14239                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14240                 }
14241                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14242                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14243         }
14244         if (flags & NDR_OUT) {
14245                 if (r->out.return_authenticator == NULL) {
14246                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14247                 }
14248                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14249                 if (r->out.forest_trust_info == NULL) {
14250                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14251                 }
14252                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
14253                 if (*r->out.forest_trust_info) {
14254                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14255                 }
14256                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14257         }
14258         return NDR_ERR_SUCCESS;
14259 }
14260
14261 static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r)
14262 {
14263         uint32_t _ptr_server_name;
14264         uint32_t _ptr_forest_trust_info;
14265         TALLOC_CTX *_mem_save_server_name_0;
14266         TALLOC_CTX *_mem_save_credential_0;
14267         TALLOC_CTX *_mem_save_return_authenticator_0;
14268         TALLOC_CTX *_mem_save_forest_trust_info_0;
14269         TALLOC_CTX *_mem_save_forest_trust_info_1;
14270         if (flags & NDR_IN) {
14271                 ZERO_STRUCT(r->out);
14272
14273                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14274                 if (_ptr_server_name) {
14275                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14276                 } else {
14277                         r->in.server_name = NULL;
14278                 }
14279                 if (r->in.server_name) {
14280                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14281                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14282                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14283                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14284                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14285                                 return 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));
14286                         }
14287                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14288                         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));
14289                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14290                 }
14291                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
14292                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
14293                 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
14294                         return 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));
14295                 }
14296                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
14297                 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));
14298                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14299                         NDR_PULL_ALLOC(ndr, r->in.credential);
14300                 }
14301                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14302                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
14303                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14304                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
14305                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
14306                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14307                 ZERO_STRUCTP(r->out.return_authenticator);
14308                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14309                 ZERO_STRUCTP(r->out.forest_trust_info);
14310         }
14311         if (flags & NDR_OUT) {
14312                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14313                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14314                 }
14315                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14316                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14317                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14318                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14319                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14320                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14321                 }
14322                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14323                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
14324                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
14325                 if (_ptr_forest_trust_info) {
14326                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
14327                 } else {
14328                         *r->out.forest_trust_info = NULL;
14329                 }
14330                 if (*r->out.forest_trust_info) {
14331                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14332                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
14333                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14334                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
14335                 }
14336                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
14337                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14338         }
14339         return NDR_ERR_SUCCESS;
14340 }
14341
14342 _PUBLIC_ void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r)
14343 {
14344         ndr_print_struct(ndr, name, "netr_GetForestTrustInformation");
14345         ndr->depth++;
14346         if (flags & NDR_SET_VALUES) {
14347                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14348         }
14349         if (flags & NDR_IN) {
14350                 ndr_print_struct(ndr, "in", "netr_GetForestTrustInformation");
14351                 ndr->depth++;
14352                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14353                 ndr->depth++;
14354                 if (r->in.server_name) {
14355                         ndr_print_string(ndr, "server_name", r->in.server_name);
14356                 }
14357                 ndr->depth--;
14358                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14359                 ndr->depth++;
14360                 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14361                 ndr->depth--;
14362                 ndr_print_ptr(ndr, "credential", r->in.credential);
14363                 ndr->depth++;
14364                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14365                 ndr->depth--;
14366                 ndr_print_uint32(ndr, "flags", r->in.flags);
14367                 ndr->depth--;
14368         }
14369         if (flags & NDR_OUT) {
14370                 ndr_print_struct(ndr, "out", "netr_GetForestTrustInformation");
14371                 ndr->depth++;
14372                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14373                 ndr->depth++;
14374                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14375                 ndr->depth--;
14376                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
14377                 ndr->depth++;
14378                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
14379                 ndr->depth++;
14380                 if (*r->out.forest_trust_info) {
14381                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
14382                 }
14383                 ndr->depth--;
14384                 ndr->depth--;
14385                 ndr_print_WERROR(ndr, "result", r->out.result);
14386                 ndr->depth--;
14387         }
14388         ndr->depth--;
14389 }
14390
14391 static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
14392 {
14393         if (flags & NDR_IN) {
14394                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14395                 if (r->in.server_name) {
14396                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14397                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14398                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14399                         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));
14400                 }
14401                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
14402                 if (r->in.computer_name) {
14403                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14404                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14405                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14406                         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));
14407                 }
14408                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
14409                 if (r->in.credential) {
14410                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14411                 }
14412                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
14413                 if (r->in.return_authenticator) {
14414                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14415                 }
14416                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
14417                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14418                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14419                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
14420                 if (r->in.flags == NULL) {
14421                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14422                 }
14423                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
14424         }
14425         if (flags & NDR_OUT) {
14426                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
14427                 if (r->out.return_authenticator) {
14428                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14429                 }
14430                 if (r->out.validation == NULL) {
14431                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14432                 }
14433                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14434                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14435                 if (r->out.authoritative == NULL) {
14436                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14437                 }
14438                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
14439                 if (r->out.flags == NULL) {
14440                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14441                 }
14442                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
14443                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
14444         }
14445         return NDR_ERR_SUCCESS;
14446 }
14447
14448 static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
14449 {
14450         uint32_t _ptr_server_name;
14451         uint32_t _ptr_computer_name;
14452         uint32_t _ptr_credential;
14453         uint32_t _ptr_return_authenticator;
14454         TALLOC_CTX *_mem_save_server_name_0;
14455         TALLOC_CTX *_mem_save_computer_name_0;
14456         TALLOC_CTX *_mem_save_credential_0;
14457         TALLOC_CTX *_mem_save_return_authenticator_0;
14458         TALLOC_CTX *_mem_save_validation_0;
14459         TALLOC_CTX *_mem_save_authoritative_0;
14460         TALLOC_CTX *_mem_save_flags_0;
14461         if (flags & NDR_IN) {
14462                 ZERO_STRUCT(r->out);
14463
14464                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14465                 if (_ptr_server_name) {
14466                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14467                 } else {
14468                         r->in.server_name = NULL;
14469                 }
14470                 if (r->in.server_name) {
14471                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14472                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14473                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14474                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14475                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14476                                 return 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));
14477                         }
14478                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14479                         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));
14480                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14481                 }
14482                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
14483                 if (_ptr_computer_name) {
14484                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
14485                 } else {
14486                         r->in.computer_name = NULL;
14487                 }
14488                 if (r->in.computer_name) {
14489                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14490                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
14491                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14492                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14493                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14494                                 return 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));
14495                         }
14496                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14497                         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));
14498                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
14499                 }
14500                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
14501                 if (_ptr_credential) {
14502                         NDR_PULL_ALLOC(ndr, r->in.credential);
14503                 } else {
14504                         r->in.credential = NULL;
14505                 }
14506                 if (r->in.credential) {
14507                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14508                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
14509                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14510                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
14511                 }
14512                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14513                 if (_ptr_return_authenticator) {
14514                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
14515                 } else {
14516                         r->in.return_authenticator = NULL;
14517                 }
14518                 if (r->in.return_authenticator) {
14519                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14520                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
14521                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14522                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14523                 }
14524                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
14525                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14526                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14527                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
14528                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14529                         NDR_PULL_ALLOC(ndr, r->in.flags);
14530                 }
14531                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14532                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
14533                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
14534                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14535                 NDR_PULL_ALLOC(ndr, r->out.validation);
14536                 ZERO_STRUCTP(r->out.validation);
14537                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
14538                 ZERO_STRUCTP(r->out.authoritative);
14539                 NDR_PULL_ALLOC(ndr, r->out.flags);
14540                 *r->out.flags = *r->in.flags;
14541         }
14542         if (flags & NDR_OUT) {
14543                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14544                 if (_ptr_return_authenticator) {
14545                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14546                 } else {
14547                         r->out.return_authenticator = NULL;
14548                 }
14549                 if (r->out.return_authenticator) {
14550                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14551                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
14552                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14553                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14554                 }
14555                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14556                         NDR_PULL_ALLOC(ndr, r->out.validation);
14557                 }
14558                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
14559                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
14560                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14561                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14562                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
14563                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14564                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
14565                 }
14566                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
14567                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
14568                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
14569                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
14570                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14571                         NDR_PULL_ALLOC(ndr, r->out.flags);
14572                 }
14573                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14574                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
14575                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
14576                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14577                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14578         }
14579         return NDR_ERR_SUCCESS;
14580 }
14581
14582 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
14583 {
14584         ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
14585         ndr->depth++;
14586         if (flags & NDR_SET_VALUES) {
14587                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14588         }
14589         if (flags & NDR_IN) {
14590                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
14591                 ndr->depth++;
14592                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14593                 ndr->depth++;
14594                 if (r->in.server_name) {
14595                         ndr_print_string(ndr, "server_name", r->in.server_name);
14596                 }
14597                 ndr->depth--;
14598                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14599                 ndr->depth++;
14600                 if (r->in.computer_name) {
14601                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
14602                 }
14603                 ndr->depth--;
14604                 ndr_print_ptr(ndr, "credential", r->in.credential);
14605                 ndr->depth++;
14606                 if (r->in.credential) {
14607                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14608                 }
14609                 ndr->depth--;
14610                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
14611                 ndr->depth++;
14612                 if (r->in.return_authenticator) {
14613                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
14614                 }
14615                 ndr->depth--;
14616                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
14617                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
14618                 ndr_print_netr_LogonInfo(ndr, "logon", &r->in.logon);
14619                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
14620                 ndr_print_ptr(ndr, "flags", r->in.flags);
14621                 ndr->depth++;
14622                 ndr_print_uint32(ndr, "flags", *r->in.flags);
14623                 ndr->depth--;
14624                 ndr->depth--;
14625         }
14626         if (flags & NDR_OUT) {
14627                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
14628                 ndr->depth++;
14629                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14630                 ndr->depth++;
14631                 if (r->out.return_authenticator) {
14632                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14633                 }
14634                 ndr->depth--;
14635                 ndr_print_ptr(ndr, "validation", r->out.validation);
14636                 ndr->depth++;
14637                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
14638                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
14639                 ndr->depth--;
14640                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
14641                 ndr->depth++;
14642                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
14643                 ndr->depth--;
14644                 ndr_print_ptr(ndr, "flags", r->out.flags);
14645                 ndr->depth++;
14646                 ndr_print_uint32(ndr, "flags", *r->out.flags);
14647                 ndr->depth--;
14648                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14649                 ndr->depth--;
14650         }
14651         ndr->depth--;
14652 }
14653
14654 static enum ndr_err_code ndr_push_netr_NETRSERVERGETTRUSTINFO(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14655 {
14656         if (flags & NDR_IN) {
14657         }
14658         if (flags & NDR_OUT) {
14659                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14660         }
14661         return NDR_ERR_SUCCESS;
14662 }
14663
14664 static enum ndr_err_code ndr_pull_netr_NETRSERVERGETTRUSTINFO(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERGETTRUSTINFO *r)
14665 {
14666         if (flags & NDR_IN) {
14667         }
14668         if (flags & NDR_OUT) {
14669                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14670         }
14671         return NDR_ERR_SUCCESS;
14672 }
14673
14674 _PUBLIC_ void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14675 {
14676         ndr_print_struct(ndr, name, "netr_NETRSERVERGETTRUSTINFO");
14677         ndr->depth++;
14678         if (flags & NDR_SET_VALUES) {
14679                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14680         }
14681         if (flags & NDR_IN) {
14682                 ndr_print_struct(ndr, "in", "netr_NETRSERVERGETTRUSTINFO");
14683                 ndr->depth++;
14684                 ndr->depth--;
14685         }
14686         if (flags & NDR_OUT) {
14687                 ndr_print_struct(ndr, "out", "netr_NETRSERVERGETTRUSTINFO");
14688                 ndr->depth++;
14689                 ndr_print_WERROR(ndr, "result", r->out.result);
14690                 ndr->depth--;
14691         }
14692         ndr->depth--;
14693 }
14694
14695 static const struct ndr_interface_call netlogon_calls[] = {
14696         {
14697                 "netr_LogonUasLogon",
14698                 sizeof(struct netr_LogonUasLogon),
14699                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
14700                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
14701                 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
14702                 false,
14703         },
14704         {
14705                 "netr_LogonUasLogoff",
14706                 sizeof(struct netr_LogonUasLogoff),
14707                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
14708                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
14709                 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
14710                 false,
14711         },
14712         {
14713                 "netr_LogonSamLogon",
14714                 sizeof(struct netr_LogonSamLogon),
14715                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
14716                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
14717                 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
14718                 false,
14719         },
14720         {
14721                 "netr_LogonSamLogoff",
14722                 sizeof(struct netr_LogonSamLogoff),
14723                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
14724                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
14725                 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
14726                 false,
14727         },
14728         {
14729                 "netr_ServerReqChallenge",
14730                 sizeof(struct netr_ServerReqChallenge),
14731                 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
14732                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
14733                 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
14734                 false,
14735         },
14736         {
14737                 "netr_ServerAuthenticate",
14738                 sizeof(struct netr_ServerAuthenticate),
14739                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
14740                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
14741                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
14742                 false,
14743         },
14744         {
14745                 "netr_ServerPasswordSet",
14746                 sizeof(struct netr_ServerPasswordSet),
14747                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
14748                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
14749                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
14750                 false,
14751         },
14752         {
14753                 "netr_DatabaseDeltas",
14754                 sizeof(struct netr_DatabaseDeltas),
14755                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
14756                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
14757                 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
14758                 false,
14759         },
14760         {
14761                 "netr_DatabaseSync",
14762                 sizeof(struct netr_DatabaseSync),
14763                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
14764                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
14765                 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
14766                 false,
14767         },
14768         {
14769                 "netr_AccountDeltas",
14770                 sizeof(struct netr_AccountDeltas),
14771                 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
14772                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
14773                 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
14774                 false,
14775         },
14776         {
14777                 "netr_AccountSync",
14778                 sizeof(struct netr_AccountSync),
14779                 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
14780                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
14781                 (ndr_print_function_t) ndr_print_netr_AccountSync,
14782                 false,
14783         },
14784         {
14785                 "netr_GetDcName",
14786                 sizeof(struct netr_GetDcName),
14787                 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
14788                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
14789                 (ndr_print_function_t) ndr_print_netr_GetDcName,
14790                 false,
14791         },
14792         {
14793                 "netr_LogonControl",
14794                 sizeof(struct netr_LogonControl),
14795                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
14796                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
14797                 (ndr_print_function_t) ndr_print_netr_LogonControl,
14798                 false,
14799         },
14800         {
14801                 "netr_GetAnyDCName",
14802                 sizeof(struct netr_GetAnyDCName),
14803                 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
14804                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
14805                 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
14806                 false,
14807         },
14808         {
14809                 "netr_LogonControl2",
14810                 sizeof(struct netr_LogonControl2),
14811                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
14812                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
14813                 (ndr_print_function_t) ndr_print_netr_LogonControl2,
14814                 false,
14815         },
14816         {
14817                 "netr_ServerAuthenticate2",
14818                 sizeof(struct netr_ServerAuthenticate2),
14819                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
14820                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
14821                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
14822                 false,
14823         },
14824         {
14825                 "netr_DatabaseSync2",
14826                 sizeof(struct netr_DatabaseSync2),
14827                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
14828                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
14829                 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
14830                 false,
14831         },
14832         {
14833                 "netr_DatabaseRedo",
14834                 sizeof(struct netr_DatabaseRedo),
14835                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
14836                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
14837                 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
14838                 false,
14839         },
14840         {
14841                 "netr_LogonControl2Ex",
14842                 sizeof(struct netr_LogonControl2Ex),
14843                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
14844                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
14845                 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
14846                 false,
14847         },
14848         {
14849                 "netr_NetrEnumerateTrustedDomains",
14850                 sizeof(struct netr_NetrEnumerateTrustedDomains),
14851                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomains,
14852                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomains,
14853                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomains,
14854                 false,
14855         },
14856         {
14857                 "netr_DsRGetDCName",
14858                 sizeof(struct netr_DsRGetDCName),
14859                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
14860                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
14861                 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
14862                 false,
14863         },
14864         {
14865                 "netr_NETRLOGONDUMMYROUTINE1",
14866                 sizeof(struct netr_NETRLOGONDUMMYROUTINE1),
14867                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONDUMMYROUTINE1,
14868                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONDUMMYROUTINE1,
14869                 (ndr_print_function_t) ndr_print_netr_NETRLOGONDUMMYROUTINE1,
14870                 false,
14871         },
14872         {
14873                 "netr_NETRLOGONSETSERVICEBITS",
14874                 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
14875                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
14876                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
14877                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
14878                 false,
14879         },
14880         {
14881                 "netr_LogonGetTrustRid",
14882                 sizeof(struct netr_LogonGetTrustRid),
14883                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetTrustRid,
14884                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetTrustRid,
14885                 (ndr_print_function_t) ndr_print_netr_LogonGetTrustRid,
14886                 false,
14887         },
14888         {
14889                 "netr_NETRLOGONCOMPUTESERVERDIGEST",
14890                 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
14891                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
14892                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
14893                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
14894                 false,
14895         },
14896         {
14897                 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
14898                 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
14899                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14900                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14901                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14902                 false,
14903         },
14904         {
14905                 "netr_ServerAuthenticate3",
14906                 sizeof(struct netr_ServerAuthenticate3),
14907                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
14908                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
14909                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
14910                 false,
14911         },
14912         {
14913                 "netr_DsRGetDCNameEx",
14914                 sizeof(struct netr_DsRGetDCNameEx),
14915                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
14916                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
14917                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
14918                 false,
14919         },
14920         {
14921                 "netr_DsRGetSiteName",
14922                 sizeof(struct netr_DsRGetSiteName),
14923                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
14924                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
14925                 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
14926                 false,
14927         },
14928         {
14929                 "netr_LogonGetDomainInfo",
14930                 sizeof(struct netr_LogonGetDomainInfo),
14931                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
14932                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
14933                 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
14934                 false,
14935         },
14936         {
14937                 "netr_ServerPasswordSet2",
14938                 sizeof(struct netr_ServerPasswordSet2),
14939                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
14940                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
14941                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
14942                 false,
14943         },
14944         {
14945                 "netr_ServerPasswordGet",
14946                 sizeof(struct netr_ServerPasswordGet),
14947                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordGet,
14948                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordGet,
14949                 (ndr_print_function_t) ndr_print_netr_ServerPasswordGet,
14950                 false,
14951         },
14952         {
14953                 "netr_NETRLOGONSENDTOSAM",
14954                 sizeof(struct netr_NETRLOGONSENDTOSAM),
14955                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
14956                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
14957                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
14958                 false,
14959         },
14960         {
14961                 "netr_DsRAddressToSitenamesW",
14962                 sizeof(struct netr_DsRAddressToSitenamesW),
14963                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesW,
14964                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesW,
14965                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesW,
14966                 false,
14967         },
14968         {
14969                 "netr_DsRGetDCNameEx2",
14970                 sizeof(struct netr_DsRGetDCNameEx2),
14971                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
14972                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
14973                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
14974                 false,
14975         },
14976         {
14977                 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
14978                 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
14979                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14980                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14981                 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14982                 false,
14983         },
14984         {
14985                 "netr_NetrEnumerateTrustedDomainsEx",
14986                 sizeof(struct netr_NetrEnumerateTrustedDomainsEx),
14987                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomainsEx,
14988                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomainsEx,
14989                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomainsEx,
14990                 false,
14991         },
14992         {
14993                 "netr_DsRAddressToSitenamesExW",
14994                 sizeof(struct netr_DsRAddressToSitenamesExW),
14995                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesExW,
14996                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesExW,
14997                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesExW,
14998                 false,
14999         },
15000         {
15001                 "netr_DsrGetDcSiteCoverageW",
15002                 sizeof(struct netr_DsrGetDcSiteCoverageW),
15003                 (ndr_push_flags_fn_t) ndr_push_netr_DsrGetDcSiteCoverageW,
15004                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrGetDcSiteCoverageW,
15005                 (ndr_print_function_t) ndr_print_netr_DsrGetDcSiteCoverageW,
15006                 false,
15007         },
15008         {
15009                 "netr_LogonSamLogonEx",
15010                 sizeof(struct netr_LogonSamLogonEx),
15011                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
15012                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
15013                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
15014                 false,
15015         },
15016         {
15017                 "netr_DsrEnumerateDomainTrusts",
15018                 sizeof(struct netr_DsrEnumerateDomainTrusts),
15019                 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
15020                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
15021                 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
15022                 false,
15023         },
15024         {
15025                 "netr_DsrDeregisterDNSHostRecords",
15026                 sizeof(struct netr_DsrDeregisterDNSHostRecords),
15027                 (ndr_push_flags_fn_t) ndr_push_netr_DsrDeregisterDNSHostRecords,
15028                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrDeregisterDNSHostRecords,
15029                 (ndr_print_function_t) ndr_print_netr_DsrDeregisterDNSHostRecords,
15030                 false,
15031         },
15032         {
15033                 "netr_ServerTrustPasswordsGet",
15034                 sizeof(struct netr_ServerTrustPasswordsGet),
15035                 (ndr_push_flags_fn_t) ndr_push_netr_ServerTrustPasswordsGet,
15036                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerTrustPasswordsGet,
15037                 (ndr_print_function_t) ndr_print_netr_ServerTrustPasswordsGet,
15038                 false,
15039         },
15040         {
15041                 "netr_DsRGetForestTrustInformation",
15042                 sizeof(struct netr_DsRGetForestTrustInformation),
15043                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetForestTrustInformation,
15044                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetForestTrustInformation,
15045                 (ndr_print_function_t) ndr_print_netr_DsRGetForestTrustInformation,
15046                 false,
15047         },
15048         {
15049                 "netr_GetForestTrustInformation",
15050                 sizeof(struct netr_GetForestTrustInformation),
15051                 (ndr_push_flags_fn_t) ndr_push_netr_GetForestTrustInformation,
15052                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetForestTrustInformation,
15053                 (ndr_print_function_t) ndr_print_netr_GetForestTrustInformation,
15054                 false,
15055         },
15056         {
15057                 "netr_LogonSamLogonWithFlags",
15058                 sizeof(struct netr_LogonSamLogonWithFlags),
15059                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
15060                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
15061                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
15062                 false,
15063         },
15064         {
15065                 "netr_NETRSERVERGETTRUSTINFO",
15066                 sizeof(struct netr_NETRSERVERGETTRUSTINFO),
15067                 (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERGETTRUSTINFO,
15068                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERGETTRUSTINFO,
15069                 (ndr_print_function_t) ndr_print_netr_NETRSERVERGETTRUSTINFO,
15070                 false,
15071         },
15072         { NULL, 0, NULL, NULL, NULL, false }
15073 };
15074
15075 static const char * const netlogon_endpoint_strings[] = {
15076         "ncacn_np:[\\pipe\\netlogon]", 
15077         "ncacn_ip_tcp:", 
15078         "ncalrpc:", 
15079 };
15080
15081 static const struct ndr_interface_string_array netlogon_endpoints = {
15082         .count  = 3,
15083         .names  = netlogon_endpoint_strings
15084 };
15085
15086 static const char * const netlogon_authservice_strings[] = {
15087         "host", 
15088 };
15089
15090 static const struct ndr_interface_string_array netlogon_authservices = {
15091         .count  = 1,
15092         .names  = netlogon_authservice_strings
15093 };
15094
15095
15096 const struct ndr_interface_table ndr_table_netlogon = {
15097         .name           = "netlogon",
15098         .syntax_id      = {
15099                 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
15100                 NDR_NETLOGON_VERSION
15101         },
15102         .helpstring     = NDR_NETLOGON_HELPSTRING,
15103         .num_calls      = 47,
15104         .calls          = netlogon_calls,
15105         .endpoints      = &netlogon_endpoints,
15106         .authservices   = &netlogon_authservices
15107 };
15108