Move shared gen_ndr files to librpc/gen_ndr in the root.
[sfrench/samba-autobuild/.git] / 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 static enum ndr_err_code ndr_push_netr_GenericInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_GenericInfo *r)
542 {
543         {
544                 uint32_t _flags_save_STRUCT = ndr->flags;
545                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
546                 if (ndr_flags & NDR_SCALARS) {
547                         NDR_CHECK(ndr_push_align(ndr, 4));
548                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
549                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->package_name));
550                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
551                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
552                 }
553                 if (ndr_flags & NDR_BUFFERS) {
554                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
555                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
556                         if (r->data) {
557                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
558                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
559                         }
560                 }
561                 ndr->flags = _flags_save_STRUCT;
562         }
563         return NDR_ERR_SUCCESS;
564 }
565
566 static enum ndr_err_code ndr_pull_netr_GenericInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_GenericInfo *r)
567 {
568         uint32_t _ptr_data;
569         TALLOC_CTX *_mem_save_data_0;
570         {
571                 uint32_t _flags_save_STRUCT = ndr->flags;
572                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
573                 if (ndr_flags & NDR_SCALARS) {
574                         NDR_CHECK(ndr_pull_align(ndr, 4));
575                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
576                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->package_name));
577                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
578                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
579                         if (_ptr_data) {
580                                 NDR_PULL_ALLOC(ndr, r->data);
581                         } else {
582                                 r->data = NULL;
583                         }
584                 }
585                 if (ndr_flags & NDR_BUFFERS) {
586                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
587                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
588                         if (r->data) {
589                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
590                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
591                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
592                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
593                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
594                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
595                         }
596                         if (r->data) {
597                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
598                         }
599                 }
600                 ndr->flags = _flags_save_STRUCT;
601         }
602         return NDR_ERR_SUCCESS;
603 }
604
605 _PUBLIC_ void ndr_print_netr_GenericInfo(struct ndr_print *ndr, const char *name, const struct netr_GenericInfo *r)
606 {
607         ndr_print_struct(ndr, name, "netr_GenericInfo");
608         {
609                 uint32_t _flags_save_STRUCT = ndr->flags;
610                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
611                 ndr->depth++;
612                 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
613                 ndr_print_lsa_String(ndr, "package_name", &r->package_name);
614                 ndr_print_uint32(ndr, "length", r->length);
615                 ndr_print_ptr(ndr, "data", r->data);
616                 ndr->depth++;
617                 if (r->data) {
618                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
619                 }
620                 ndr->depth--;
621                 ndr->depth--;
622                 ndr->flags = _flags_save_STRUCT;
623         }
624 }
625
626 static enum ndr_err_code ndr_push_netr_LogonInfoClass(struct ndr_push *ndr, int ndr_flags, enum netr_LogonInfoClass r)
627 {
628         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
629         return NDR_ERR_SUCCESS;
630 }
631
632 static enum ndr_err_code ndr_pull_netr_LogonInfoClass(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonInfoClass *r)
633 {
634         uint16_t v;
635         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
636         *r = v;
637         return NDR_ERR_SUCCESS;
638 }
639
640 _PUBLIC_ void ndr_print_netr_LogonInfoClass(struct ndr_print *ndr, const char *name, enum netr_LogonInfoClass r)
641 {
642         const char *val = NULL;
643
644         switch (r) {
645                 case NetlogonInteractiveInformation: val = "NetlogonInteractiveInformation"; break;
646                 case NetlogonNetworkInformation: val = "NetlogonNetworkInformation"; break;
647                 case NetlogonServiceInformation: val = "NetlogonServiceInformation"; break;
648                 case NetlogonGenericInformation: val = "NetlogonGenericInformation"; break;
649                 case NetlogonInteractiveTransitiveInformation: val = "NetlogonInteractiveTransitiveInformation"; break;
650                 case NetlogonNetworkTransitiveInformation: val = "NetlogonNetworkTransitiveInformation"; break;
651                 case NetlogonServiceTransitiveInformation: val = "NetlogonServiceTransitiveInformation"; break;
652         }
653         ndr_print_enum(ndr, name, "ENUM", val, r);
654 }
655
656 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonLevel(struct ndr_push *ndr, int ndr_flags, const union netr_LogonLevel *r)
657 {
658         if (ndr_flags & NDR_SCALARS) {
659                 int level = ndr_push_get_switch_value(ndr, r);
660                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, level));
661                 switch (level) {
662                         case NetlogonInteractiveInformation: {
663                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
664                         break; }
665
666                         case NetlogonNetworkInformation: {
667                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
668                         break; }
669
670                         case NetlogonServiceInformation: {
671                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
672                         break; }
673
674                         case NetlogonGenericInformation: {
675                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->generic));
676                         break; }
677
678                         case NetlogonInteractiveTransitiveInformation: {
679                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
680                         break; }
681
682                         case NetlogonNetworkTransitiveInformation: {
683                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
684                         break; }
685
686                         case NetlogonServiceTransitiveInformation: {
687                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
688                         break; }
689
690                         default:
691                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
692                 }
693         }
694         if (ndr_flags & NDR_BUFFERS) {
695                 int level = ndr_push_get_switch_value(ndr, r);
696                 switch (level) {
697                         case NetlogonInteractiveInformation:
698                                 if (r->password) {
699                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
700                                 }
701                         break;
702
703                         case NetlogonNetworkInformation:
704                                 if (r->network) {
705                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
706                                 }
707                         break;
708
709                         case NetlogonServiceInformation:
710                                 if (r->password) {
711                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
712                                 }
713                         break;
714
715                         case NetlogonGenericInformation:
716                                 if (r->generic) {
717                                         NDR_CHECK(ndr_push_netr_GenericInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
718                                 }
719                         break;
720
721                         case NetlogonInteractiveTransitiveInformation:
722                                 if (r->password) {
723                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
724                                 }
725                         break;
726
727                         case NetlogonNetworkTransitiveInformation:
728                                 if (r->network) {
729                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
730                                 }
731                         break;
732
733                         case NetlogonServiceTransitiveInformation:
734                                 if (r->password) {
735                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
736                                 }
737                         break;
738
739                         default:
740                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
741                 }
742         }
743         return NDR_ERR_SUCCESS;
744 }
745
746 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonLevel(struct ndr_pull *ndr, int ndr_flags, union netr_LogonLevel *r)
747 {
748         int level;
749         uint16_t _level;
750         TALLOC_CTX *_mem_save_password_0;
751         TALLOC_CTX *_mem_save_network_0;
752         TALLOC_CTX *_mem_save_generic_0;
753         level = ndr_pull_get_switch_value(ndr, r);
754         if (ndr_flags & NDR_SCALARS) {
755                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
756                 if (_level != level) {
757                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
758                 }
759                 switch (level) {
760                         case NetlogonInteractiveInformation: {
761                                 uint32_t _ptr_password;
762                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
763                                 if (_ptr_password) {
764                                         NDR_PULL_ALLOC(ndr, r->password);
765                                 } else {
766                                         r->password = NULL;
767                                 }
768                         break; }
769
770                         case NetlogonNetworkInformation: {
771                                 uint32_t _ptr_network;
772                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
773                                 if (_ptr_network) {
774                                         NDR_PULL_ALLOC(ndr, r->network);
775                                 } else {
776                                         r->network = NULL;
777                                 }
778                         break; }
779
780                         case NetlogonServiceInformation: {
781                                 uint32_t _ptr_password;
782                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
783                                 if (_ptr_password) {
784                                         NDR_PULL_ALLOC(ndr, r->password);
785                                 } else {
786                                         r->password = NULL;
787                                 }
788                         break; }
789
790                         case NetlogonGenericInformation: {
791                                 uint32_t _ptr_generic;
792                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_generic));
793                                 if (_ptr_generic) {
794                                         NDR_PULL_ALLOC(ndr, r->generic);
795                                 } else {
796                                         r->generic = NULL;
797                                 }
798                         break; }
799
800                         case NetlogonInteractiveTransitiveInformation: {
801                                 uint32_t _ptr_password;
802                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
803                                 if (_ptr_password) {
804                                         NDR_PULL_ALLOC(ndr, r->password);
805                                 } else {
806                                         r->password = NULL;
807                                 }
808                         break; }
809
810                         case NetlogonNetworkTransitiveInformation: {
811                                 uint32_t _ptr_network;
812                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
813                                 if (_ptr_network) {
814                                         NDR_PULL_ALLOC(ndr, r->network);
815                                 } else {
816                                         r->network = NULL;
817                                 }
818                         break; }
819
820                         case NetlogonServiceTransitiveInformation: {
821                                 uint32_t _ptr_password;
822                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
823                                 if (_ptr_password) {
824                                         NDR_PULL_ALLOC(ndr, r->password);
825                                 } else {
826                                         r->password = NULL;
827                                 }
828                         break; }
829
830                         default:
831                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
832                 }
833         }
834         if (ndr_flags & NDR_BUFFERS) {
835                 switch (level) {
836                         case NetlogonInteractiveInformation:
837                                 if (r->password) {
838                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
839                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
840                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
841                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
842                                 }
843                         break;
844
845                         case NetlogonNetworkInformation:
846                                 if (r->network) {
847                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
848                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
849                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
850                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
851                                 }
852                         break;
853
854                         case NetlogonServiceInformation:
855                                 if (r->password) {
856                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
857                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
858                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
859                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
860                                 }
861                         break;
862
863                         case NetlogonGenericInformation:
864                                 if (r->generic) {
865                                         _mem_save_generic_0 = NDR_PULL_GET_MEM_CTX(ndr);
866                                         NDR_PULL_SET_MEM_CTX(ndr, r->generic, 0);
867                                         NDR_CHECK(ndr_pull_netr_GenericInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
868                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_generic_0, 0);
869                                 }
870                         break;
871
872                         case NetlogonInteractiveTransitiveInformation:
873                                 if (r->password) {
874                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
875                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
876                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
877                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
878                                 }
879                         break;
880
881                         case NetlogonNetworkTransitiveInformation:
882                                 if (r->network) {
883                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
884                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
885                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
886                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
887                                 }
888                         break;
889
890                         case NetlogonServiceTransitiveInformation:
891                                 if (r->password) {
892                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
893                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
894                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
895                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
896                                 }
897                         break;
898
899                         default:
900                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
901                 }
902         }
903         return NDR_ERR_SUCCESS;
904 }
905
906 _PUBLIC_ void ndr_print_netr_LogonLevel(struct ndr_print *ndr, const char *name, const union netr_LogonLevel *r)
907 {
908         int level;
909         level = ndr_print_get_switch_value(ndr, r);
910         ndr_print_union(ndr, name, level, "netr_LogonLevel");
911         switch (level) {
912                 case NetlogonInteractiveInformation:
913                         ndr_print_ptr(ndr, "password", r->password);
914                         ndr->depth++;
915                         if (r->password) {
916                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
917                         }
918                         ndr->depth--;
919                 break;
920
921                 case NetlogonNetworkInformation:
922                         ndr_print_ptr(ndr, "network", r->network);
923                         ndr->depth++;
924                         if (r->network) {
925                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
926                         }
927                         ndr->depth--;
928                 break;
929
930                 case NetlogonServiceInformation:
931                         ndr_print_ptr(ndr, "password", r->password);
932                         ndr->depth++;
933                         if (r->password) {
934                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
935                         }
936                         ndr->depth--;
937                 break;
938
939                 case NetlogonGenericInformation:
940                         ndr_print_ptr(ndr, "generic", r->generic);
941                         ndr->depth++;
942                         if (r->generic) {
943                                 ndr_print_netr_GenericInfo(ndr, "generic", r->generic);
944                         }
945                         ndr->depth--;
946                 break;
947
948                 case NetlogonInteractiveTransitiveInformation:
949                         ndr_print_ptr(ndr, "password", r->password);
950                         ndr->depth++;
951                         if (r->password) {
952                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
953                         }
954                         ndr->depth--;
955                 break;
956
957                 case NetlogonNetworkTransitiveInformation:
958                         ndr_print_ptr(ndr, "network", r->network);
959                         ndr->depth++;
960                         if (r->network) {
961                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
962                         }
963                         ndr->depth--;
964                 break;
965
966                 case NetlogonServiceTransitiveInformation:
967                         ndr_print_ptr(ndr, "password", r->password);
968                         ndr->depth++;
969                         if (r->password) {
970                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
971                         }
972                         ndr->depth--;
973                 break;
974
975                 default:
976                         ndr_print_bad_level(ndr, name, level);
977         }
978 }
979
980 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_UserSessionKey *r)
981 {
982         {
983                 uint32_t _flags_save_STRUCT = ndr->flags;
984                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
985                 if (ndr_flags & NDR_SCALARS) {
986                         NDR_CHECK(ndr_push_align(ndr, 1));
987                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 16));
988                 }
989                 if (ndr_flags & NDR_BUFFERS) {
990                 }
991                 ndr->flags = _flags_save_STRUCT;
992         }
993         return NDR_ERR_SUCCESS;
994 }
995
996 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r)
997 {
998         {
999                 uint32_t _flags_save_STRUCT = ndr->flags;
1000                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1001                 if (ndr_flags & NDR_SCALARS) {
1002                         NDR_CHECK(ndr_pull_align(ndr, 1));
1003                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16));
1004                 }
1005                 if (ndr_flags & NDR_BUFFERS) {
1006                 }
1007                 ndr->flags = _flags_save_STRUCT;
1008         }
1009         return NDR_ERR_SUCCESS;
1010 }
1011
1012 _PUBLIC_ void ndr_print_netr_UserSessionKey(struct ndr_print *ndr, const char *name, const struct netr_UserSessionKey *r)
1013 {
1014         ndr_print_struct(ndr, name, "netr_UserSessionKey");
1015         {
1016                 uint32_t _flags_save_STRUCT = ndr->flags;
1017                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1018                 ndr->depth++;
1019                 ndr_print_array_uint8(ndr, "key", r->key, 16);
1020                 ndr->depth--;
1021                 ndr->flags = _flags_save_STRUCT;
1022         }
1023 }
1024
1025 _PUBLIC_ enum ndr_err_code ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_LMSessionKey *r)
1026 {
1027         {
1028                 uint32_t _flags_save_STRUCT = ndr->flags;
1029                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1030                 if (ndr_flags & NDR_SCALARS) {
1031                         NDR_CHECK(ndr_push_align(ndr, 1));
1032                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 8));
1033                 }
1034                 if (ndr_flags & NDR_BUFFERS) {
1035                 }
1036                 ndr->flags = _flags_save_STRUCT;
1037         }
1038         return NDR_ERR_SUCCESS;
1039 }
1040
1041 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r)
1042 {
1043         {
1044                 uint32_t _flags_save_STRUCT = ndr->flags;
1045                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1046                 if (ndr_flags & NDR_SCALARS) {
1047                         NDR_CHECK(ndr_pull_align(ndr, 1));
1048                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8));
1049                 }
1050                 if (ndr_flags & NDR_BUFFERS) {
1051                 }
1052                 ndr->flags = _flags_save_STRUCT;
1053         }
1054         return NDR_ERR_SUCCESS;
1055 }
1056
1057 _PUBLIC_ void ndr_print_netr_LMSessionKey(struct ndr_print *ndr, const char *name, const struct netr_LMSessionKey *r)
1058 {
1059         ndr_print_struct(ndr, name, "netr_LMSessionKey");
1060         {
1061                 uint32_t _flags_save_STRUCT = ndr->flags;
1062                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1063                 ndr->depth++;
1064                 ndr_print_array_uint8(ndr, "key", r->key, 8);
1065                 ndr->depth--;
1066                 ndr->flags = _flags_save_STRUCT;
1067         }
1068 }
1069
1070 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1071 {
1072         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1073         return NDR_ERR_SUCCESS;
1074 }
1075
1076 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1077 {
1078         uint32_t v;
1079         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1080         *r = v;
1081         return NDR_ERR_SUCCESS;
1082 }
1083
1084 _PUBLIC_ void ndr_print_netr_UserFlags(struct ndr_print *ndr, const char *name, uint32_t r)
1085 {
1086         ndr_print_uint32(ndr, name, r);
1087         ndr->depth++;
1088         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST, r);
1089         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION, r);
1090         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT, r);
1091         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD, r);
1092         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS, r);
1093         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY, r);
1094         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT, r);
1095         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED, r);
1096         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS, r);
1097         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED, r);
1098         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON, r);
1099         ndr->depth--;
1100 }
1101
1102 static enum ndr_err_code ndr_push_netr_SamBaseInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_SamBaseInfo *r)
1103 {
1104         uint32_t cntr_unknown_0;
1105         if (ndr_flags & NDR_SCALARS) {
1106                 NDR_CHECK(ndr_push_align(ndr, 4));
1107                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
1108                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
1109                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
1110                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
1111                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
1112                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
1113                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1114                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1115                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
1116                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
1117                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
1118                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
1119                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
1120                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
1121                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
1122                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
1123                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1124                 NDR_CHECK(ndr_push_netr_UserFlags(ndr, NDR_SCALARS, r->user_flags));
1125                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
1126                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
1127                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
1128                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
1129                 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
1130                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
1131                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1132                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
1133                 }
1134         }
1135         if (ndr_flags & NDR_BUFFERS) {
1136                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1137                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1138                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1139                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1140                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1141                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1142                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1143                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1144                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1145                 if (r->domain_sid) {
1146                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1147                 }
1148         }
1149         return NDR_ERR_SUCCESS;
1150 }
1151
1152 static enum ndr_err_code ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_SamBaseInfo *r)
1153 {
1154         uint32_t _ptr_domain_sid;
1155         TALLOC_CTX *_mem_save_domain_sid_0;
1156         uint32_t cntr_unknown_0;
1157         if (ndr_flags & NDR_SCALARS) {
1158                 NDR_CHECK(ndr_pull_align(ndr, 4));
1159                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
1160                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
1161                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
1162                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
1163                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
1164                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
1165                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1166                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1167                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
1168                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
1169                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
1170                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
1171                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
1172                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
1173                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
1174                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
1175                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1176                 NDR_CHECK(ndr_pull_netr_UserFlags(ndr, NDR_SCALARS, &r->user_flags));
1177                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
1178                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
1179                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
1180                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
1181                 if (_ptr_domain_sid) {
1182                         NDR_PULL_ALLOC(ndr, r->domain_sid);
1183                 } else {
1184                         r->domain_sid = NULL;
1185                 }
1186                 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
1187                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
1188                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1189                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
1190                 }
1191         }
1192         if (ndr_flags & NDR_BUFFERS) {
1193                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1194                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1195                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1196                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1197                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1198                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1199                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1200                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1201                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1202                 if (r->domain_sid) {
1203                         _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1204                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1205                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1206                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1207                 }
1208         }
1209         return NDR_ERR_SUCCESS;
1210 }
1211
1212 _PUBLIC_ void ndr_print_netr_SamBaseInfo(struct ndr_print *ndr, const char *name, const struct netr_SamBaseInfo *r)
1213 {
1214         uint32_t cntr_unknown_0;
1215         ndr_print_struct(ndr, name, "netr_SamBaseInfo");
1216         ndr->depth++;
1217         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
1218         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
1219         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
1220         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
1221         ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
1222         ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
1223         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
1224         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
1225         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
1226         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
1227         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
1228         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
1229         ndr_print_uint16(ndr, "logon_count", r->logon_count);
1230         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
1231         ndr_print_uint32(ndr, "rid", r->rid);
1232         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
1233         ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
1234         ndr_print_netr_UserFlags(ndr, "user_flags", r->user_flags);
1235         ndr_print_netr_UserSessionKey(ndr, "key", &r->key);
1236         ndr_print_lsa_StringLarge(ndr, "logon_server", &r->logon_server);
1237         ndr_print_lsa_StringLarge(ndr, "domain", &r->domain);
1238         ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
1239         ndr->depth++;
1240         if (r->domain_sid) {
1241                 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
1242         }
1243         ndr->depth--;
1244         ndr_print_netr_LMSessionKey(ndr, "LMSessKey", &r->LMSessKey);
1245         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
1246         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)7);
1247         ndr->depth++;
1248         for (cntr_unknown_0=0;cntr_unknown_0<7;cntr_unknown_0++) {
1249                 char *idx_0=NULL;
1250                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
1251                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
1252                         free(idx_0);
1253                 }
1254         }
1255         ndr->depth--;
1256         ndr->depth--;
1257 }
1258
1259 static enum ndr_err_code ndr_push_netr_SamInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo2 *r)
1260 {
1261         if (ndr_flags & NDR_SCALARS) {
1262                 NDR_CHECK(ndr_push_align(ndr, 4));
1263                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1264         }
1265         if (ndr_flags & NDR_BUFFERS) {
1266                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1267         }
1268         return NDR_ERR_SUCCESS;
1269 }
1270
1271 static enum ndr_err_code ndr_pull_netr_SamInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo2 *r)
1272 {
1273         if (ndr_flags & NDR_SCALARS) {
1274                 NDR_CHECK(ndr_pull_align(ndr, 4));
1275                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1276         }
1277         if (ndr_flags & NDR_BUFFERS) {
1278                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1279         }
1280         return NDR_ERR_SUCCESS;
1281 }
1282
1283 _PUBLIC_ void ndr_print_netr_SamInfo2(struct ndr_print *ndr, const char *name, const struct netr_SamInfo2 *r)
1284 {
1285         ndr_print_struct(ndr, name, "netr_SamInfo2");
1286         ndr->depth++;
1287         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1288         ndr->depth--;
1289 }
1290
1291 static enum ndr_err_code ndr_push_netr_SidAttr(struct ndr_push *ndr, int ndr_flags, const struct netr_SidAttr *r)
1292 {
1293         if (ndr_flags & NDR_SCALARS) {
1294                 NDR_CHECK(ndr_push_align(ndr, 4));
1295                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
1296                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
1297         }
1298         if (ndr_flags & NDR_BUFFERS) {
1299                 if (r->sid) {
1300                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1301                 }
1302         }
1303         return NDR_ERR_SUCCESS;
1304 }
1305
1306 static enum ndr_err_code ndr_pull_netr_SidAttr(struct ndr_pull *ndr, int ndr_flags, struct netr_SidAttr *r)
1307 {
1308         uint32_t _ptr_sid;
1309         TALLOC_CTX *_mem_save_sid_0;
1310         if (ndr_flags & NDR_SCALARS) {
1311                 NDR_CHECK(ndr_pull_align(ndr, 4));
1312                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
1313                 if (_ptr_sid) {
1314                         NDR_PULL_ALLOC(ndr, r->sid);
1315                 } else {
1316                         r->sid = NULL;
1317                 }
1318                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
1319         }
1320         if (ndr_flags & NDR_BUFFERS) {
1321                 if (r->sid) {
1322                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1323                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
1324                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1325                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
1326                 }
1327         }
1328         return NDR_ERR_SUCCESS;
1329 }
1330
1331 _PUBLIC_ void ndr_print_netr_SidAttr(struct ndr_print *ndr, const char *name, const struct netr_SidAttr *r)
1332 {
1333         ndr_print_struct(ndr, name, "netr_SidAttr");
1334         ndr->depth++;
1335         ndr_print_ptr(ndr, "sid", r->sid);
1336         ndr->depth++;
1337         if (r->sid) {
1338                 ndr_print_dom_sid2(ndr, "sid", r->sid);
1339         }
1340         ndr->depth--;
1341         ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
1342         ndr->depth--;
1343 }
1344
1345 _PUBLIC_ enum ndr_err_code ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo3 *r)
1346 {
1347         uint32_t cntr_sids_1;
1348         if (ndr_flags & NDR_SCALARS) {
1349                 NDR_CHECK(ndr_push_align(ndr, 4));
1350                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1351                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1352                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1353         }
1354         if (ndr_flags & NDR_BUFFERS) {
1355                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1356                 if (r->sids) {
1357                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1358                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1359                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1360                         }
1361                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1362                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1363                         }
1364                 }
1365         }
1366         return NDR_ERR_SUCCESS;
1367 }
1368
1369 _PUBLIC_ enum ndr_err_code ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r)
1370 {
1371         uint32_t _ptr_sids;
1372         uint32_t cntr_sids_1;
1373         TALLOC_CTX *_mem_save_sids_0;
1374         TALLOC_CTX *_mem_save_sids_1;
1375         if (ndr_flags & NDR_SCALARS) {
1376                 NDR_CHECK(ndr_pull_align(ndr, 4));
1377                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1378                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1379                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1380                 if (_ptr_sids) {
1381                         NDR_PULL_ALLOC(ndr, r->sids);
1382                 } else {
1383                         r->sids = NULL;
1384                 }
1385         }
1386         if (ndr_flags & NDR_BUFFERS) {
1387                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1388                 if (r->sids) {
1389                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1390                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1391                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1392                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1393                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1394                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1395                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1396                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1397                         }
1398                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1399                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1400                         }
1401                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1402                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1403                 }
1404                 if (r->sids) {
1405                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1406                 }
1407         }
1408         return NDR_ERR_SUCCESS;
1409 }
1410
1411 _PUBLIC_ void ndr_print_netr_SamInfo3(struct ndr_print *ndr, const char *name, const struct netr_SamInfo3 *r)
1412 {
1413         uint32_t cntr_sids_1;
1414         ndr_print_struct(ndr, name, "netr_SamInfo3");
1415         ndr->depth++;
1416         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1417         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1418         ndr_print_ptr(ndr, "sids", r->sids);
1419         ndr->depth++;
1420         if (r->sids) {
1421                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1422                 ndr->depth++;
1423                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1424                         char *idx_1=NULL;
1425                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1426                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1427                                 free(idx_1);
1428                         }
1429                 }
1430                 ndr->depth--;
1431         }
1432         ndr->depth--;
1433         ndr->depth--;
1434 }
1435
1436 static enum ndr_err_code ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo6 *r)
1437 {
1438         uint32_t cntr_sids_1;
1439         uint32_t cntr_unknown4_0;
1440         if (ndr_flags & NDR_SCALARS) {
1441                 NDR_CHECK(ndr_push_align(ndr, 4));
1442                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1443                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1444                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1445                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
1446                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principle));
1447                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1448                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4[cntr_unknown4_0]));
1449                 }
1450         }
1451         if (ndr_flags & NDR_BUFFERS) {
1452                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1453                 if (r->sids) {
1454                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1455                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1456                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1457                         }
1458                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1459                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1460                         }
1461                 }
1462                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1463                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1464         }
1465         return NDR_ERR_SUCCESS;
1466 }
1467
1468 static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r)
1469 {
1470         uint32_t _ptr_sids;
1471         uint32_t cntr_sids_1;
1472         TALLOC_CTX *_mem_save_sids_0;
1473         TALLOC_CTX *_mem_save_sids_1;
1474         uint32_t cntr_unknown4_0;
1475         if (ndr_flags & NDR_SCALARS) {
1476                 NDR_CHECK(ndr_pull_align(ndr, 4));
1477                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1478                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1479                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1480                 if (_ptr_sids) {
1481                         NDR_PULL_ALLOC(ndr, r->sids);
1482                 } else {
1483                         r->sids = NULL;
1484                 }
1485                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
1486                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle));
1487                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1488                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0]));
1489                 }
1490         }
1491         if (ndr_flags & NDR_BUFFERS) {
1492                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1493                 if (r->sids) {
1494                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1495                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1496                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1497                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1498                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1499                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1500                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1501                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1502                         }
1503                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1504                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1505                         }
1506                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1507                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1508                 }
1509                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1510                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1511                 if (r->sids) {
1512                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1513                 }
1514         }
1515         return NDR_ERR_SUCCESS;
1516 }
1517
1518 _PUBLIC_ void ndr_print_netr_SamInfo6(struct ndr_print *ndr, const char *name, const struct netr_SamInfo6 *r)
1519 {
1520         uint32_t cntr_sids_1;
1521         uint32_t cntr_unknown4_0;
1522         ndr_print_struct(ndr, name, "netr_SamInfo6");
1523         ndr->depth++;
1524         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1525         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1526         ndr_print_ptr(ndr, "sids", r->sids);
1527         ndr->depth++;
1528         if (r->sids) {
1529                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1530                 ndr->depth++;
1531                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1532                         char *idx_1=NULL;
1533                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1534                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1535                                 free(idx_1);
1536                         }
1537                 }
1538                 ndr->depth--;
1539         }
1540         ndr->depth--;
1541         ndr_print_lsa_String(ndr, "forest", &r->forest);
1542         ndr_print_lsa_String(ndr, "principle", &r->principle);
1543         ndr->print(ndr, "%s: ARRAY(%d)", "unknown4", (int)20);
1544         ndr->depth++;
1545         for (cntr_unknown4_0=0;cntr_unknown4_0<20;cntr_unknown4_0++) {
1546                 char *idx_0=NULL;
1547                 if (asprintf(&idx_0, "[%d]", cntr_unknown4_0) != -1) {
1548                         ndr_print_uint32(ndr, "unknown4", r->unknown4[cntr_unknown4_0]);
1549                         free(idx_0);
1550                 }
1551         }
1552         ndr->depth--;
1553         ndr->depth--;
1554 }
1555
1556 static enum ndr_err_code ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PacInfo *r)
1557 {
1558         uint32_t cntr_expansionroom_0;
1559         if (ndr_flags & NDR_SCALARS) {
1560                 NDR_CHECK(ndr_push_align(ndr, 4));
1561                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1562                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1563                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1564                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1565                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1566                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1567                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth));
1568                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1569                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1570                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->expansionroom[cntr_expansionroom_0]));
1571                 }
1572                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1573                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1574                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1575                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1576         }
1577         if (ndr_flags & NDR_BUFFERS) {
1578                 if (r->pac) {
1579                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1580                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pac, r->pac_size));
1581                 }
1582                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1583                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1584                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1585                 if (r->auth) {
1586                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1587                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->auth, r->auth_size));
1588                 }
1589                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1590                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1591                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1592                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1593         }
1594         return NDR_ERR_SUCCESS;
1595 }
1596
1597 static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r)
1598 {
1599         uint32_t _ptr_pac;
1600         TALLOC_CTX *_mem_save_pac_0;
1601         uint32_t _ptr_auth;
1602         TALLOC_CTX *_mem_save_auth_0;
1603         uint32_t cntr_expansionroom_0;
1604         if (ndr_flags & NDR_SCALARS) {
1605                 NDR_CHECK(ndr_pull_align(ndr, 4));
1606                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pac_size));
1607                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1608                 if (_ptr_pac) {
1609                         NDR_PULL_ALLOC(ndr, r->pac);
1610                 } else {
1611                         r->pac = NULL;
1612                 }
1613                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1614                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1615                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1616                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_size));
1617                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_auth));
1618                 if (_ptr_auth) {
1619                         NDR_PULL_ALLOC(ndr, r->auth);
1620                 } else {
1621                         r->auth = NULL;
1622                 }
1623                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1624                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1625                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0]));
1626                 }
1627                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1628                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1629                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1630                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1631         }
1632         if (ndr_flags & NDR_BUFFERS) {
1633                 if (r->pac) {
1634                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1635                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1636                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pac));
1637                         NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac));
1638                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac)));
1639                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1640                 }
1641                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1642                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1643                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1644                 if (r->auth) {
1645                         _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr);
1646                         NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0);
1647                         NDR_CHECK(ndr_pull_array_size(ndr, &r->auth));
1648                         NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth));
1649                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth)));
1650                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0);
1651                 }
1652                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1653                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1654                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1655                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1656                 if (r->pac) {
1657                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pac, r->pac_size));
1658                 }
1659                 if (r->auth) {
1660                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->auth, r->auth_size));
1661                 }
1662         }
1663         return NDR_ERR_SUCCESS;
1664 }
1665
1666 _PUBLIC_ void ndr_print_netr_PacInfo(struct ndr_print *ndr, const char *name, const struct netr_PacInfo *r)
1667 {
1668         uint32_t cntr_expansionroom_0;
1669         ndr_print_struct(ndr, name, "netr_PacInfo");
1670         ndr->depth++;
1671         ndr_print_uint32(ndr, "pac_size", r->pac_size);
1672         ndr_print_ptr(ndr, "pac", r->pac);
1673         ndr->depth++;
1674         if (r->pac) {
1675                 ndr_print_array_uint8(ndr, "pac", r->pac, r->pac_size);
1676         }
1677         ndr->depth--;
1678         ndr_print_lsa_String(ndr, "logon_domain", &r->logon_domain);
1679         ndr_print_lsa_String(ndr, "logon_server", &r->logon_server);
1680         ndr_print_lsa_String(ndr, "principal_name", &r->principal_name);
1681         ndr_print_uint32(ndr, "auth_size", r->auth_size);
1682         ndr_print_ptr(ndr, "auth", r->auth);
1683         ndr->depth++;
1684         if (r->auth) {
1685                 ndr_print_array_uint8(ndr, "auth", r->auth, r->auth_size);
1686         }
1687         ndr->depth--;
1688         ndr_print_netr_UserSessionKey(ndr, "user_session_key", &r->user_session_key);
1689         ndr->print(ndr, "%s: ARRAY(%d)", "expansionroom", (int)10);
1690         ndr->depth++;
1691         for (cntr_expansionroom_0=0;cntr_expansionroom_0<10;cntr_expansionroom_0++) {
1692                 char *idx_0=NULL;
1693                 if (asprintf(&idx_0, "[%d]", cntr_expansionroom_0) != -1) {
1694                         ndr_print_uint32(ndr, "expansionroom", r->expansionroom[cntr_expansionroom_0]);
1695                         free(idx_0);
1696                 }
1697         }
1698         ndr->depth--;
1699         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1700         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1701         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1702         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1703         ndr->depth--;
1704 }
1705
1706 static enum ndr_err_code ndr_push_netr_GenericInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_GenericInfo2 *r)
1707 {
1708         {
1709                 uint32_t _flags_save_STRUCT = ndr->flags;
1710                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1711                 if (ndr_flags & NDR_SCALARS) {
1712                         NDR_CHECK(ndr_push_align(ndr, 4));
1713                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
1714                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
1715                 }
1716                 if (ndr_flags & NDR_BUFFERS) {
1717                         if (r->data) {
1718                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
1719                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
1720                         }
1721                 }
1722                 ndr->flags = _flags_save_STRUCT;
1723         }
1724         return NDR_ERR_SUCCESS;
1725 }
1726
1727 static enum ndr_err_code ndr_pull_netr_GenericInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_GenericInfo2 *r)
1728 {
1729         uint32_t _ptr_data;
1730         TALLOC_CTX *_mem_save_data_0;
1731         {
1732                 uint32_t _flags_save_STRUCT = ndr->flags;
1733                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1734                 if (ndr_flags & NDR_SCALARS) {
1735                         NDR_CHECK(ndr_pull_align(ndr, 4));
1736                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
1737                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
1738                         if (_ptr_data) {
1739                                 NDR_PULL_ALLOC(ndr, r->data);
1740                         } else {
1741                                 r->data = NULL;
1742                         }
1743                 }
1744                 if (ndr_flags & NDR_BUFFERS) {
1745                         if (r->data) {
1746                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
1747                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
1748                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
1749                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
1750                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
1751                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
1752                         }
1753                         if (r->data) {
1754                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
1755                         }
1756                 }
1757                 ndr->flags = _flags_save_STRUCT;
1758         }
1759         return NDR_ERR_SUCCESS;
1760 }
1761
1762 _PUBLIC_ void ndr_print_netr_GenericInfo2(struct ndr_print *ndr, const char *name, const struct netr_GenericInfo2 *r)
1763 {
1764         ndr_print_struct(ndr, name, "netr_GenericInfo2");
1765         {
1766                 uint32_t _flags_save_STRUCT = ndr->flags;
1767                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1768                 ndr->depth++;
1769                 ndr_print_uint32(ndr, "length", r->length);
1770                 ndr_print_ptr(ndr, "data", r->data);
1771                 ndr->depth++;
1772                 if (r->data) {
1773                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
1774                 }
1775                 ndr->depth--;
1776                 ndr->depth--;
1777                 ndr->flags = _flags_save_STRUCT;
1778         }
1779 }
1780
1781 _PUBLIC_ enum ndr_err_code ndr_push_netr_Validation(struct ndr_push *ndr, int ndr_flags, const union netr_Validation *r)
1782 {
1783         if (ndr_flags & NDR_SCALARS) {
1784                 int level = ndr_push_get_switch_value(ndr, r);
1785                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
1786                 switch (level) {
1787                         case NetlogonValidationSamInfo: {
1788                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam2));
1789                         break; }
1790
1791                         case NetlogonValidationSamInfo2: {
1792                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam3));
1793                         break; }
1794
1795                         case 4: {
1796                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1797                         break; }
1798
1799                         case NetlogonValidationGenericInfo2: {
1800                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->generic));
1801                         break; }
1802
1803                         case NetlogonValidationSamInfo4: {
1804                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam6));
1805                         break; }
1806
1807                         default:
1808                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1809                 }
1810         }
1811         if (ndr_flags & NDR_BUFFERS) {
1812                 int level = ndr_push_get_switch_value(ndr, r);
1813                 switch (level) {
1814                         case NetlogonValidationSamInfo:
1815                                 if (r->sam2) {
1816                                         NDR_CHECK(ndr_push_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1817                                 }
1818                         break;
1819
1820                         case NetlogonValidationSamInfo2:
1821                                 if (r->sam3) {
1822                                         NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1823                                 }
1824                         break;
1825
1826                         case 4:
1827                                 if (r->pac) {
1828                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1829                                 }
1830                         break;
1831
1832                         case NetlogonValidationGenericInfo2:
1833                                 if (r->generic) {
1834                                         NDR_CHECK(ndr_push_netr_GenericInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
1835                                 }
1836                         break;
1837
1838                         case NetlogonValidationSamInfo4:
1839                                 if (r->sam6) {
1840                                         NDR_CHECK(ndr_push_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1841                                 }
1842                         break;
1843
1844                         default:
1845                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1846                 }
1847         }
1848         return NDR_ERR_SUCCESS;
1849 }
1850
1851 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int ndr_flags, union netr_Validation *r)
1852 {
1853         int level;
1854         uint16_t _level;
1855         TALLOC_CTX *_mem_save_sam2_0;
1856         TALLOC_CTX *_mem_save_sam3_0;
1857         TALLOC_CTX *_mem_save_pac_0;
1858         TALLOC_CTX *_mem_save_generic_0;
1859         TALLOC_CTX *_mem_save_sam6_0;
1860         level = ndr_pull_get_switch_value(ndr, r);
1861         if (ndr_flags & NDR_SCALARS) {
1862                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1863                 if (_level != level) {
1864                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1865                 }
1866                 switch (level) {
1867                         case NetlogonValidationSamInfo: {
1868                                 uint32_t _ptr_sam2;
1869                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2));
1870                                 if (_ptr_sam2) {
1871                                         NDR_PULL_ALLOC(ndr, r->sam2);
1872                                 } else {
1873                                         r->sam2 = NULL;
1874                                 }
1875                         break; }
1876
1877                         case NetlogonValidationSamInfo2: {
1878                                 uint32_t _ptr_sam3;
1879                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3));
1880                                 if (_ptr_sam3) {
1881                                         NDR_PULL_ALLOC(ndr, r->sam3);
1882                                 } else {
1883                                         r->sam3 = NULL;
1884                                 }
1885                         break; }
1886
1887                         case 4: {
1888                                 uint32_t _ptr_pac;
1889                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1890                                 if (_ptr_pac) {
1891                                         NDR_PULL_ALLOC(ndr, r->pac);
1892                                 } else {
1893                                         r->pac = NULL;
1894                                 }
1895                         break; }
1896
1897                         case NetlogonValidationGenericInfo2: {
1898                                 uint32_t _ptr_generic;
1899                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_generic));
1900                                 if (_ptr_generic) {
1901                                         NDR_PULL_ALLOC(ndr, r->generic);
1902                                 } else {
1903                                         r->generic = NULL;
1904                                 }
1905                         break; }
1906
1907                         case NetlogonValidationSamInfo4: {
1908                                 uint32_t _ptr_sam6;
1909                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6));
1910                                 if (_ptr_sam6) {
1911                                         NDR_PULL_ALLOC(ndr, r->sam6);
1912                                 } else {
1913                                         r->sam6 = NULL;
1914                                 }
1915                         break; }
1916
1917                         default:
1918                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1919                 }
1920         }
1921         if (ndr_flags & NDR_BUFFERS) {
1922                 switch (level) {
1923                         case NetlogonValidationSamInfo:
1924                                 if (r->sam2) {
1925                                         _mem_save_sam2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1926                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam2, 0);
1927                                         NDR_CHECK(ndr_pull_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1928                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam2_0, 0);
1929                                 }
1930                         break;
1931
1932                         case NetlogonValidationSamInfo2:
1933                                 if (r->sam3) {
1934                                         _mem_save_sam3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1935                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam3, 0);
1936                                         NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1937                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam3_0, 0);
1938                                 }
1939                         break;
1940
1941                         case 4:
1942                                 if (r->pac) {
1943                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1944                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1945                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1946                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1947                                 }
1948                         break;
1949
1950                         case NetlogonValidationGenericInfo2:
1951                                 if (r->generic) {
1952                                         _mem_save_generic_0 = NDR_PULL_GET_MEM_CTX(ndr);
1953                                         NDR_PULL_SET_MEM_CTX(ndr, r->generic, 0);
1954                                         NDR_CHECK(ndr_pull_netr_GenericInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
1955                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_generic_0, 0);
1956                                 }
1957                         break;
1958
1959                         case NetlogonValidationSamInfo4:
1960                                 if (r->sam6) {
1961                                         _mem_save_sam6_0 = NDR_PULL_GET_MEM_CTX(ndr);
1962                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam6, 0);
1963                                         NDR_CHECK(ndr_pull_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1964                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam6_0, 0);
1965                                 }
1966                         break;
1967
1968                         default:
1969                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1970                 }
1971         }
1972         return NDR_ERR_SUCCESS;
1973 }
1974
1975 _PUBLIC_ void ndr_print_netr_Validation(struct ndr_print *ndr, const char *name, const union netr_Validation *r)
1976 {
1977         int level;
1978         level = ndr_print_get_switch_value(ndr, r);
1979         ndr_print_union(ndr, name, level, "netr_Validation");
1980         switch (level) {
1981                 case NetlogonValidationSamInfo:
1982                         ndr_print_ptr(ndr, "sam2", r->sam2);
1983                         ndr->depth++;
1984                         if (r->sam2) {
1985                                 ndr_print_netr_SamInfo2(ndr, "sam2", r->sam2);
1986                         }
1987                         ndr->depth--;
1988                 break;
1989
1990                 case NetlogonValidationSamInfo2:
1991                         ndr_print_ptr(ndr, "sam3", r->sam3);
1992                         ndr->depth++;
1993                         if (r->sam3) {
1994                                 ndr_print_netr_SamInfo3(ndr, "sam3", r->sam3);
1995                         }
1996                         ndr->depth--;
1997                 break;
1998
1999                 case 4:
2000                         ndr_print_ptr(ndr, "pac", r->pac);
2001                         ndr->depth++;
2002                         if (r->pac) {
2003                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
2004                         }
2005                         ndr->depth--;
2006                 break;
2007
2008                 case NetlogonValidationGenericInfo2:
2009                         ndr_print_ptr(ndr, "generic", r->generic);
2010                         ndr->depth++;
2011                         if (r->generic) {
2012                                 ndr_print_netr_GenericInfo2(ndr, "generic", r->generic);
2013                         }
2014                         ndr->depth--;
2015                 break;
2016
2017                 case NetlogonValidationSamInfo4:
2018                         ndr_print_ptr(ndr, "sam6", r->sam6);
2019                         ndr->depth++;
2020                         if (r->sam6) {
2021                                 ndr_print_netr_SamInfo6(ndr, "sam6", r->sam6);
2022                         }
2023                         ndr->depth--;
2024                 break;
2025
2026                 default:
2027                         ndr_print_bad_level(ndr, name, level);
2028         }
2029 }
2030
2031 _PUBLIC_ enum ndr_err_code ndr_push_netr_Credential(struct ndr_push *ndr, int ndr_flags, const struct netr_Credential *r)
2032 {
2033         {
2034                 uint32_t _flags_save_STRUCT = ndr->flags;
2035                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2036                 if (ndr_flags & NDR_SCALARS) {
2037                         NDR_CHECK(ndr_push_align(ndr, 1));
2038                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 8));
2039                 }
2040                 if (ndr_flags & NDR_BUFFERS) {
2041                 }
2042                 ndr->flags = _flags_save_STRUCT;
2043         }
2044         return NDR_ERR_SUCCESS;
2045 }
2046
2047 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r)
2048 {
2049         {
2050                 uint32_t _flags_save_STRUCT = ndr->flags;
2051                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2052                 if (ndr_flags & NDR_SCALARS) {
2053                         NDR_CHECK(ndr_pull_align(ndr, 1));
2054                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8));
2055                 }
2056                 if (ndr_flags & NDR_BUFFERS) {
2057                 }
2058                 ndr->flags = _flags_save_STRUCT;
2059         }
2060         return NDR_ERR_SUCCESS;
2061 }
2062
2063 _PUBLIC_ void ndr_print_netr_Credential(struct ndr_print *ndr, const char *name, const struct netr_Credential *r)
2064 {
2065         ndr_print_struct(ndr, name, "netr_Credential");
2066         {
2067                 uint32_t _flags_save_STRUCT = ndr->flags;
2068                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2069                 ndr->depth++;
2070                 ndr_print_array_uint8(ndr, "data", r->data, 8);
2071                 ndr->depth--;
2072                 ndr->flags = _flags_save_STRUCT;
2073         }
2074 }
2075
2076 _PUBLIC_ enum ndr_err_code ndr_push_netr_Authenticator(struct ndr_push *ndr, int ndr_flags, const struct netr_Authenticator *r)
2077 {
2078         if (ndr_flags & NDR_SCALARS) {
2079                 NDR_CHECK(ndr_push_align(ndr, 4));
2080                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, &r->cred));
2081                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
2082         }
2083         if (ndr_flags & NDR_BUFFERS) {
2084         }
2085         return NDR_ERR_SUCCESS;
2086 }
2087
2088 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Authenticator(struct ndr_pull *ndr, int ndr_flags, struct netr_Authenticator *r)
2089 {
2090         if (ndr_flags & NDR_SCALARS) {
2091                 NDR_CHECK(ndr_pull_align(ndr, 4));
2092                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, &r->cred));
2093                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
2094         }
2095         if (ndr_flags & NDR_BUFFERS) {
2096         }
2097         return NDR_ERR_SUCCESS;
2098 }
2099
2100 _PUBLIC_ void ndr_print_netr_Authenticator(struct ndr_print *ndr, const char *name, const struct netr_Authenticator *r)
2101 {
2102         ndr_print_struct(ndr, name, "netr_Authenticator");
2103         ndr->depth++;
2104         ndr_print_netr_Credential(ndr, "cred", &r->cred);
2105         ndr_print_time_t(ndr, "timestamp", r->timestamp);
2106         ndr->depth--;
2107 }
2108
2109 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)
2110 {
2111         if (ndr_flags & NDR_SCALARS) {
2112                 NDR_CHECK(ndr_push_align(ndr, 4));
2113                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
2114                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2115                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2116                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2117                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2118                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2119                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2120                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2121                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2122         }
2123         if (ndr_flags & NDR_BUFFERS) {
2124                 if (r->account_name) {
2125                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
2126                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2127                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
2128                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
2129                 }
2130                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2131                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2132                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2133                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2134         }
2135         return NDR_ERR_SUCCESS;
2136 }
2137
2138 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r)
2139 {
2140         uint32_t _ptr_account_name;
2141         TALLOC_CTX *_mem_save_account_name_0;
2142         if (ndr_flags & NDR_SCALARS) {
2143                 NDR_CHECK(ndr_pull_align(ndr, 4));
2144                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
2145                 if (_ptr_account_name) {
2146                         NDR_PULL_ALLOC(ndr, r->account_name);
2147                 } else {
2148                         r->account_name = NULL;
2149                 }
2150                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2151                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2152                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2153                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2154                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2155                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2156                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2157                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2158         }
2159         if (ndr_flags & NDR_BUFFERS) {
2160                 if (r->account_name) {
2161                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2162                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
2163                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
2164                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
2165                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
2166                                 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));
2167                         }
2168                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
2169                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
2170                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
2171                 }
2172                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2173                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2174                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2175                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2176         }
2177         return NDR_ERR_SUCCESS;
2178 }
2179
2180 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_USER *r)
2181 {
2182         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_USER");
2183         ndr->depth++;
2184         ndr_print_ptr(ndr, "account_name", r->account_name);
2185         ndr->depth++;
2186         if (r->account_name) {
2187                 ndr_print_string(ndr, "account_name", r->account_name);
2188         }
2189         ndr->depth--;
2190         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2191         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2192         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2193         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2194         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2195         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2196         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2197         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2198         ndr->depth--;
2199 }
2200
2201 static enum ndr_err_code ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY16 *r)
2202 {
2203         if (ndr_flags & NDR_SCALARS) {
2204                 NDR_CHECK(ndr_push_align(ndr, 4));
2205                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
2206                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
2207                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
2208                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2209         }
2210         if (ndr_flags & NDR_BUFFERS) {
2211         }
2212         return NDR_ERR_SUCCESS;
2213 }
2214
2215 static enum ndr_err_code ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY16 *r)
2216 {
2217         if (ndr_flags & NDR_SCALARS) {
2218                 NDR_CHECK(ndr_pull_align(ndr, 4));
2219                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
2220                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
2221                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
2222                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2223         }
2224         if (ndr_flags & NDR_BUFFERS) {
2225         }
2226         return NDR_ERR_SUCCESS;
2227 }
2228
2229 _PUBLIC_ void ndr_print_netr_USER_KEY16(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY16 *r)
2230 {
2231         ndr_print_struct(ndr, name, "netr_USER_KEY16");
2232         ndr->depth++;
2233         ndr_print_uint16(ndr, "length", r->length);
2234         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
2235         ndr_print_uint32(ndr, "flags", r->flags);
2236         ndr_print_samr_Password(ndr, "pwd", &r->pwd);
2237         ndr->depth--;
2238 }
2239
2240 static enum ndr_err_code ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordHistory *r)
2241 {
2242         if (ndr_flags & NDR_SCALARS) {
2243                 NDR_CHECK(ndr_push_align(ndr, 4));
2244                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2245                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2246                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_flags));
2247                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2248                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2249                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lm_flags));
2250                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2251                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2252         }
2253         if (ndr_flags & NDR_BUFFERS) {
2254         }
2255         return NDR_ERR_SUCCESS;
2256 }
2257
2258 static enum ndr_err_code ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *r)
2259 {
2260         if (ndr_flags & NDR_SCALARS) {
2261                 NDR_CHECK(ndr_pull_align(ndr, 4));
2262                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_length));
2263                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_size));
2264                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_flags));
2265                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length));
2266                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size));
2267                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags));
2268                 NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length);
2269                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2270                 NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length);
2271                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2272         }
2273         if (ndr_flags & NDR_BUFFERS) {
2274         }
2275         return NDR_ERR_SUCCESS;
2276 }
2277
2278 _PUBLIC_ void ndr_print_netr_PasswordHistory(struct ndr_print *ndr, const char *name, const struct netr_PasswordHistory *r)
2279 {
2280         ndr_print_struct(ndr, name, "netr_PasswordHistory");
2281         ndr->depth++;
2282         ndr_print_uint16(ndr, "nt_length", r->nt_length);
2283         ndr_print_uint16(ndr, "nt_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->nt_length:r->nt_size);
2284         ndr_print_uint32(ndr, "nt_flags", r->nt_flags);
2285         ndr_print_uint16(ndr, "lm_length", r->lm_length);
2286         ndr_print_uint16(ndr, "lm_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->lm_length:r->lm_size);
2287         ndr_print_uint32(ndr, "lm_flags", r->lm_flags);
2288         ndr_print_array_uint8(ndr, "nt_history", r->nt_history, r->nt_length);
2289         ndr_print_array_uint8(ndr, "lm_history", r->lm_history, r->lm_length);
2290         ndr->depth--;
2291 }
2292
2293 static enum ndr_err_code ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS2 *r)
2294 {
2295         if (ndr_flags & NDR_SCALARS) {
2296                 NDR_CHECK(ndr_push_align(ndr, 4));
2297                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2298                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2299                 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2300         }
2301         if (ndr_flags & NDR_BUFFERS) {
2302         }
2303         return NDR_ERR_SUCCESS;
2304 }
2305
2306 static enum ndr_err_code ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS2 *r)
2307 {
2308         if (ndr_flags & NDR_SCALARS) {
2309                 NDR_CHECK(ndr_pull_align(ndr, 4));
2310                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2311                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2312                 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2313         }
2314         if (ndr_flags & NDR_BUFFERS) {
2315         }
2316         return NDR_ERR_SUCCESS;
2317 }
2318
2319 _PUBLIC_ void ndr_print_netr_USER_KEYS2(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS2 *r)
2320 {
2321         ndr_print_struct(ndr, name, "netr_USER_KEYS2");
2322         ndr->depth++;
2323         ndr_print_netr_USER_KEY16(ndr, "lmpassword", &r->lmpassword);
2324         ndr_print_netr_USER_KEY16(ndr, "ntpassword", &r->ntpassword);
2325         ndr_print_netr_PasswordHistory(ndr, "history", &r->history);
2326         ndr->depth--;
2327 }
2328
2329 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)
2330 {
2331         if (ndr_flags & NDR_SCALARS) {
2332                 NDR_CHECK(ndr_push_align(ndr, 4));
2333                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2334         }
2335         if (ndr_flags & NDR_BUFFERS) {
2336         }
2337         return NDR_ERR_SUCCESS;
2338 }
2339
2340 static enum ndr_err_code ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY_UNION *r)
2341 {
2342         if (ndr_flags & NDR_SCALARS) {
2343                 NDR_CHECK(ndr_pull_align(ndr, 4));
2344                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2345         }
2346         if (ndr_flags & NDR_BUFFERS) {
2347         }
2348         return NDR_ERR_SUCCESS;
2349 }
2350
2351 _PUBLIC_ void ndr_print_netr_USER_KEY_UNION(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY_UNION *r)
2352 {
2353         ndr_print_struct(ndr, name, "netr_USER_KEY_UNION");
2354         ndr->depth++;
2355         ndr_print_netr_USER_KEYS2(ndr, "keys2", &r->keys2);
2356         ndr->depth--;
2357 }
2358
2359 _PUBLIC_ enum ndr_err_code ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS *r)
2360 {
2361         if (ndr_flags & NDR_SCALARS) {
2362                 NDR_CHECK(ndr_push_align(ndr, 4));
2363                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2364                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2365         }
2366         if (ndr_flags & NDR_BUFFERS) {
2367         }
2368         return NDR_ERR_SUCCESS;
2369 }
2370
2371 _PUBLIC_ enum ndr_err_code ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS *r)
2372 {
2373         if (ndr_flags & NDR_SCALARS) {
2374                 NDR_CHECK(ndr_pull_align(ndr, 4));
2375                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2376                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2377         }
2378         if (ndr_flags & NDR_BUFFERS) {
2379         }
2380         return NDR_ERR_SUCCESS;
2381 }
2382
2383 _PUBLIC_ void ndr_print_netr_USER_KEYS(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS *r)
2384 {
2385         ndr_print_struct(ndr, name, "netr_USER_KEYS");
2386         ndr->depth++;
2387         ndr_print_uint32(ndr, "version", r->version);
2388         ndr_print_netr_USER_KEY_UNION(ndr, "keys", &r->keys);
2389         ndr->depth--;
2390 }
2391
2392 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)
2393 {
2394         if (ndr_flags & NDR_SCALARS) {
2395                 NDR_CHECK(ndr_push_align(ndr, 4));
2396                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->SensitiveDataFlag));
2397                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2398                 {
2399                         uint32_t _flags_save_uint8 = ndr->flags;
2400                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2401                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->SensitiveData));
2402                         ndr->flags = _flags_save_uint8;
2403                 }
2404         }
2405         if (ndr_flags & NDR_BUFFERS) {
2406                 {
2407                         uint32_t _flags_save_uint8 = ndr->flags;
2408                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2409                         if (r->SensitiveData) {
2410                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2411                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, r->DataLength));
2412                         }
2413                         ndr->flags = _flags_save_uint8;
2414                 }
2415         }
2416         return NDR_ERR_SUCCESS;
2417 }
2418
2419 static enum ndr_err_code ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r)
2420 {
2421         uint32_t _ptr_SensitiveData;
2422         TALLOC_CTX *_mem_save_SensitiveData_0;
2423         if (ndr_flags & NDR_SCALARS) {
2424                 NDR_CHECK(ndr_pull_align(ndr, 4));
2425                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->SensitiveDataFlag));
2426                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataLength));
2427                 {
2428                         uint32_t _flags_save_uint8 = ndr->flags;
2429                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2430                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_SensitiveData));
2431                         if (_ptr_SensitiveData) {
2432                                 NDR_PULL_ALLOC(ndr, r->SensitiveData);
2433                         } else {
2434                                 r->SensitiveData = NULL;
2435                         }
2436                         ndr->flags = _flags_save_uint8;
2437                 }
2438         }
2439         if (ndr_flags & NDR_BUFFERS) {
2440                 {
2441                         uint32_t _flags_save_uint8 = ndr->flags;
2442                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2443                         if (r->SensitiveData) {
2444                                 _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr);
2445                                 NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0);
2446                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData));
2447                                 NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData));
2448                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)));
2449                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0);
2450                         }
2451                         ndr->flags = _flags_save_uint8;
2452                 }
2453                 if (r->SensitiveData) {
2454                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->SensitiveData, r->DataLength));
2455                 }
2456         }
2457         return NDR_ERR_SUCCESS;
2458 }
2459
2460 _PUBLIC_ void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print *ndr, const char *name, const struct netr_USER_PRIVATE_INFO *r)
2461 {
2462         ndr_print_struct(ndr, name, "netr_USER_PRIVATE_INFO");
2463         ndr->depth++;
2464         ndr_print_uint8(ndr, "SensitiveDataFlag", r->SensitiveDataFlag);
2465         ndr_print_uint32(ndr, "DataLength", r->DataLength);
2466         ndr_print_ptr(ndr, "SensitiveData", r->SensitiveData);
2467         ndr->depth++;
2468         if (r->SensitiveData) {
2469                 ndr_print_array_uint8(ndr, "SensitiveData", r->SensitiveData, r->DataLength);
2470         }
2471         ndr->depth--;
2472         ndr->depth--;
2473 }
2474
2475 static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_USER *r)
2476 {
2477         if (ndr_flags & NDR_SCALARS) {
2478                 NDR_CHECK(ndr_push_align(ndr, 4));
2479                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2480                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2481                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2482                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2483                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2484                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2485                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2486                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2487                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2488                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2489                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2490                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2491                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2492                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2493                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2494                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2495                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2496                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2497                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2498                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_present));
2499                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present));
2500                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2501                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2502                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2503                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2504                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2505                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2506                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2507                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2508                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2509                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2510                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2511                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2512                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2513                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2514                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2515                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2516         }
2517         if (ndr_flags & NDR_BUFFERS) {
2518                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2519                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2520                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2521                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2522                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2523                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2524                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2525                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2526                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2527                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2528                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2529                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2530                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2531                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2532                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2533                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2534         }
2535         return NDR_ERR_SUCCESS;
2536 }
2537
2538 static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_USER *r)
2539 {
2540         if (ndr_flags & NDR_SCALARS) {
2541                 NDR_CHECK(ndr_pull_align(ndr, 4));
2542                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2543                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2544                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2545                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2546                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2547                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2548                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2549                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2550                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2551                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2552                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2553                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2554                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2555                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2556                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2557                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2558                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2559                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2560                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2561                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_present));
2562                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present));
2563                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
2564                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2565                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2566                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
2567                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
2568                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2569                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2570                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2571                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2572                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2573                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2574                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2575                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2576                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2577                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2578                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2579         }
2580         if (ndr_flags & NDR_BUFFERS) {
2581                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2582                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2583                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2584                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2585                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2586                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2587                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2588                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2589                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2590                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2591                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2592                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2593                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2594                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2595                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2596                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2597         }
2598         return NDR_ERR_SUCCESS;
2599 }
2600
2601 _PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_USER *r)
2602 {
2603         ndr_print_struct(ndr, name, "netr_DELTA_USER");
2604         ndr->depth++;
2605         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2606         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2607         ndr_print_uint32(ndr, "rid", r->rid);
2608         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2609         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2610         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2611         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2612         ndr_print_lsa_String(ndr, "description", &r->description);
2613         ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2614         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2615         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2616         ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2617         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2618         ndr_print_uint16(ndr, "logon_count", r->logon_count);
2619         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2620         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2621         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2622         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
2623         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
2624         ndr_print_uint8(ndr, "nt_password_present", r->nt_password_present);
2625         ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present);
2626         ndr_print_uint8(ndr, "password_expired", r->password_expired);
2627         ndr_print_lsa_String(ndr, "comment", &r->comment);
2628         ndr_print_lsa_BinaryString(ndr, "parameters", &r->parameters);
2629         ndr_print_uint16(ndr, "country_code", r->country_code);
2630         ndr_print_uint16(ndr, "code_page", r->code_page);
2631         ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info);
2632         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2633         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2634         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2635         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2636         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2637         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2638         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2639         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2640         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2641         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2642         ndr->depth--;
2643 }
2644
2645 static enum ndr_err_code ndr_push_netr_DELTA_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DOMAIN *r)
2646 {
2647         if (ndr_flags & NDR_SCALARS) {
2648                 NDR_CHECK(ndr_push_align(ndr, 4));
2649                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2650                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->oem_information));
2651                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->force_logoff_time));
2652                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
2653                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
2654                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
2655                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
2656                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2657                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
2658                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2659                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2660                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2661                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2662                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2663                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2664                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_to_chgpass));
2665                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2666                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2667                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2668         }
2669         if (ndr_flags & NDR_BUFFERS) {
2670                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2671                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->oem_information));
2672                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2673                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2674                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2675                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2676                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2677         }
2678         return NDR_ERR_SUCCESS;
2679 }
2680
2681 static enum ndr_err_code ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DOMAIN *r)
2682 {
2683         if (ndr_flags & NDR_SCALARS) {
2684                 NDR_CHECK(ndr_pull_align(ndr, 4));
2685                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2686                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->oem_information));
2687                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->force_logoff_time));
2688                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
2689                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
2690                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
2691                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
2692                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
2693                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
2694                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2695                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2696                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2697                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2698                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2699                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2700                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_to_chgpass));
2701                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2702                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2703                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2704         }
2705         if (ndr_flags & NDR_BUFFERS) {
2706                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2707                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->oem_information));
2708                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2709                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2710                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2711                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2712                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2713         }
2714         return NDR_ERR_SUCCESS;
2715 }
2716
2717 _PUBLIC_ void ndr_print_netr_DELTA_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DOMAIN *r)
2718 {
2719         ndr_print_struct(ndr, name, "netr_DELTA_DOMAIN");
2720         ndr->depth++;
2721         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
2722         ndr_print_lsa_String(ndr, "oem_information", &r->oem_information);
2723         ndr_print_dlong(ndr, "force_logoff_time", r->force_logoff_time);
2724         ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
2725         ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
2726         ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
2727         ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
2728         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
2729         ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
2730         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2731         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2732         ndr_print_lsa_BinaryString(ndr, "account_lockout", &r->account_lockout);
2733         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2734         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2735         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2736         ndr_print_uint32(ndr, "logon_to_chgpass", r->logon_to_chgpass);
2737         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2738         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2739         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2740         ndr->depth--;
2741 }
2742
2743 static enum ndr_err_code ndr_push_netr_DELTA_GROUP(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP *r)
2744 {
2745         if (ndr_flags & NDR_SCALARS) {
2746                 NDR_CHECK(ndr_push_align(ndr, 4));
2747                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2748                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2749                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
2750                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2751                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2752                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2753                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2754                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2755                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2756                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2757                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2758                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2759                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2760                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2761         }
2762         if (ndr_flags & NDR_BUFFERS) {
2763                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2764                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2765                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2766                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2767                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2768                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2769                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2770         }
2771         return NDR_ERR_SUCCESS;
2772 }
2773
2774 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP *r)
2775 {
2776         if (ndr_flags & NDR_SCALARS) {
2777                 NDR_CHECK(ndr_pull_align(ndr, 4));
2778                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2779                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2780                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
2781                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2782                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2783                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2784                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2785                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2786                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2787                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2788                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2789                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2790                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2791                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2792         }
2793         if (ndr_flags & NDR_BUFFERS) {
2794                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2795                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2796                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2797                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2798                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2799                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2800                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2801         }
2802         return NDR_ERR_SUCCESS;
2803 }
2804
2805 _PUBLIC_ void ndr_print_netr_DELTA_GROUP(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP *r)
2806 {
2807         ndr_print_struct(ndr, name, "netr_DELTA_GROUP");
2808         ndr->depth++;
2809         ndr_print_lsa_String(ndr, "group_name", &r->group_name);
2810         ndr_print_uint32(ndr, "rid", r->rid);
2811         ndr_print_uint32(ndr, "attributes", r->attributes);
2812         ndr_print_lsa_String(ndr, "description", &r->description);
2813         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2814         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2815         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2816         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2817         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2818         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2819         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2820         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2821         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2822         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2823         ndr->depth--;
2824 }
2825
2826 static enum ndr_err_code ndr_push_netr_DELTA_RENAME(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_RENAME *r)
2827 {
2828         if (ndr_flags & NDR_SCALARS) {
2829                 NDR_CHECK(ndr_push_align(ndr, 4));
2830                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2831                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2832                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2833                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2834                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2835                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2836                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2837                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2838                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2839                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2840         }
2841         if (ndr_flags & NDR_BUFFERS) {
2842                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2843                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2844                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2845                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2846                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2847                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2848         }
2849         return NDR_ERR_SUCCESS;
2850 }
2851
2852 static enum ndr_err_code ndr_pull_netr_DELTA_RENAME(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_RENAME *r)
2853 {
2854         if (ndr_flags & NDR_SCALARS) {
2855                 NDR_CHECK(ndr_pull_align(ndr, 4));
2856                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2857                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2858                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2859                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2860                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2861                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2862                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2863                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2864                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2865                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2866         }
2867         if (ndr_flags & NDR_BUFFERS) {
2868                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2869                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2870                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2871                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2872                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2873                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2874         }
2875         return NDR_ERR_SUCCESS;
2876 }
2877
2878 _PUBLIC_ void ndr_print_netr_DELTA_RENAME(struct ndr_print *ndr, const char *name, const struct netr_DELTA_RENAME *r)
2879 {
2880         ndr_print_struct(ndr, name, "netr_DELTA_RENAME");
2881         ndr->depth++;
2882         ndr_print_lsa_String(ndr, "OldName", &r->OldName);
2883         ndr_print_lsa_String(ndr, "NewName", &r->NewName);
2884         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2885         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2886         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2887         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2888         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2889         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2890         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2891         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2892         ndr->depth--;
2893 }
2894
2895 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)
2896 {
2897         uint32_t cntr_rids_1;
2898         uint32_t cntr_attribs_1;
2899         if (ndr_flags & NDR_SCALARS) {
2900                 NDR_CHECK(ndr_push_align(ndr, 4));
2901                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
2902                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribs));
2903                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2904                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2905                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2906                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2907                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2908         }
2909         if (ndr_flags & NDR_BUFFERS) {
2910                 if (r->rids) {
2911                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2912                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2913                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
2914                         }
2915                 }
2916                 if (r->attribs) {
2917                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2918                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2919                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribs[cntr_attribs_1]));
2920                         }
2921                 }
2922         }
2923         return NDR_ERR_SUCCESS;
2924 }
2925
2926 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r)
2927 {
2928         uint32_t _ptr_rids;
2929         uint32_t cntr_rids_1;
2930         TALLOC_CTX *_mem_save_rids_0;
2931         TALLOC_CTX *_mem_save_rids_1;
2932         uint32_t _ptr_attribs;
2933         uint32_t cntr_attribs_1;
2934         TALLOC_CTX *_mem_save_attribs_0;
2935         TALLOC_CTX *_mem_save_attribs_1;
2936         if (ndr_flags & NDR_SCALARS) {
2937                 NDR_CHECK(ndr_pull_align(ndr, 4));
2938                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
2939                 if (_ptr_rids) {
2940                         NDR_PULL_ALLOC(ndr, r->rids);
2941                 } else {
2942                         r->rids = NULL;
2943                 }
2944                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribs));
2945                 if (_ptr_attribs) {
2946                         NDR_PULL_ALLOC(ndr, r->attribs);
2947                 } else {
2948                         r->attribs = NULL;
2949                 }
2950                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
2951                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2952                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2953                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2954                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2955         }
2956         if (ndr_flags & NDR_BUFFERS) {
2957                 if (r->rids) {
2958                         _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
2959                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2960                         NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
2961                         NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
2962                         _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
2963                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2964                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2965                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
2966                         }
2967                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
2968                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
2969                 }
2970                 if (r->attribs) {
2971                         _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr);
2972                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2973                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs));
2974                         NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs));
2975                         _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr);
2976                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2977                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2978                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1]));
2979                         }
2980                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0);
2981                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_0, 0);
2982                 }
2983                 if (r->rids) {
2984                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
2985                 }
2986                 if (r->attribs) {
2987                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attribs, r->num_rids));
2988                 }
2989         }
2990         return NDR_ERR_SUCCESS;
2991 }
2992
2993 _PUBLIC_ void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP_MEMBER *r)
2994 {
2995         uint32_t cntr_rids_1;
2996         uint32_t cntr_attribs_1;
2997         ndr_print_struct(ndr, name, "netr_DELTA_GROUP_MEMBER");
2998         ndr->depth++;
2999         ndr_print_ptr(ndr, "rids", r->rids);
3000         ndr->depth++;
3001         if (r->rids) {
3002                 ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->num_rids);
3003                 ndr->depth++;
3004                 for (cntr_rids_1=0;cntr_rids_1<r->num_rids;cntr_rids_1++) {
3005                         char *idx_1=NULL;
3006                         if (asprintf(&idx_1, "[%d]", cntr_rids_1) != -1) {
3007                                 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
3008                                 free(idx_1);
3009                         }
3010                 }
3011                 ndr->depth--;
3012         }
3013         ndr->depth--;
3014         ndr_print_ptr(ndr, "attribs", r->attribs);
3015         ndr->depth++;
3016         if (r->attribs) {
3017                 ndr->print(ndr, "%s: ARRAY(%d)", "attribs", (int)r->num_rids);
3018                 ndr->depth++;
3019                 for (cntr_attribs_1=0;cntr_attribs_1<r->num_rids;cntr_attribs_1++) {
3020                         char *idx_1=NULL;
3021                         if (asprintf(&idx_1, "[%d]", cntr_attribs_1) != -1) {
3022                                 ndr_print_uint32(ndr, "attribs", r->attribs[cntr_attribs_1]);
3023                                 free(idx_1);
3024                         }
3025                 }
3026                 ndr->depth--;
3027         }
3028         ndr->depth--;
3029         ndr_print_uint32(ndr, "num_rids", r->num_rids);
3030         ndr_print_uint32(ndr, "unknown1", r->unknown1);
3031         ndr_print_uint32(ndr, "unknown2", r->unknown2);
3032         ndr_print_uint32(ndr, "unknown3", r->unknown3);
3033         ndr_print_uint32(ndr, "unknown4", r->unknown4);
3034         ndr->depth--;
3035 }
3036
3037 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS *r)
3038 {
3039         if (ndr_flags & NDR_SCALARS) {
3040                 NDR_CHECK(ndr_push_align(ndr, 4));
3041                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
3042                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
3043                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3044                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3045                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
3046                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3047                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3048                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3049                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3050                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3051                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3052                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3053         }
3054         if (ndr_flags & NDR_BUFFERS) {
3055                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
3056                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3057                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
3058                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3059                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3060                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3061         }
3062         return NDR_ERR_SUCCESS;
3063 }
3064
3065 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS *r)
3066 {
3067         if (ndr_flags & NDR_SCALARS) {
3068                 NDR_CHECK(ndr_pull_align(ndr, 4));
3069                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
3070                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
3071                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3072                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3073                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
3074                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3075                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3076                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3077                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3078                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3079                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3080                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3081         }
3082         if (ndr_flags & NDR_BUFFERS) {
3083                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
3084                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3085                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
3086                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3087                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3088                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3089         }
3090         return NDR_ERR_SUCCESS;
3091 }
3092
3093 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS *r)
3094 {
3095         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS");
3096         ndr->depth++;
3097         ndr_print_lsa_String(ndr, "alias_name", &r->alias_name);
3098         ndr_print_uint32(ndr, "rid", r->rid);
3099         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3100         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3101         ndr_print_lsa_String(ndr, "description", &r->description);
3102         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3103         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3104         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3105         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3106         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3107         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3108         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3109         ndr->depth--;
3110 }
3111
3112 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)
3113 {
3114         if (ndr_flags & NDR_SCALARS) {
3115                 NDR_CHECK(ndr_push_align(ndr, 4));
3116                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
3117                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
3118                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
3119                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
3120                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
3121         }
3122         if (ndr_flags & NDR_BUFFERS) {
3123                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
3124         }
3125         return NDR_ERR_SUCCESS;
3126 }
3127
3128 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS_MEMBER *r)
3129 {
3130         if (ndr_flags & NDR_SCALARS) {
3131                 NDR_CHECK(ndr_pull_align(ndr, 4));
3132                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
3133                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
3134                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
3135                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
3136                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
3137         }
3138         if (ndr_flags & NDR_BUFFERS) {
3139                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
3140         }
3141         return NDR_ERR_SUCCESS;
3142 }
3143
3144 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS_MEMBER *r)
3145 {
3146         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS_MEMBER");
3147         ndr->depth++;
3148         ndr_print_lsa_SidArray(ndr, "sids", &r->sids);
3149         ndr_print_uint32(ndr, "unknown1", r->unknown1);
3150         ndr_print_uint32(ndr, "unknown2", r->unknown2);
3151         ndr_print_uint32(ndr, "unknown3", r->unknown3);
3152         ndr_print_uint32(ndr, "unknown4", r->unknown4);
3153         ndr->depth--;
3154 }
3155
3156 static enum ndr_err_code ndr_push_netr_QUOTA_LIMITS(struct ndr_push *ndr, int ndr_flags, const struct netr_QUOTA_LIMITS *r)
3157 {
3158         if (ndr_flags & NDR_SCALARS) {
3159                 NDR_CHECK(ndr_push_align(ndr, 4));
3160                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagedpoollimit));
3161                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonpagedpoollimit));
3162                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minimumworkingsetsize));
3163                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maximumworkingsetsize));
3164                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagefilelimit));
3165                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timelimit));
3166         }
3167         if (ndr_flags & NDR_BUFFERS) {
3168         }
3169         return NDR_ERR_SUCCESS;
3170 }
3171
3172 static enum ndr_err_code ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull *ndr, int ndr_flags, struct netr_QUOTA_LIMITS *r)
3173 {
3174         if (ndr_flags & NDR_SCALARS) {
3175                 NDR_CHECK(ndr_pull_align(ndr, 4));
3176                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagedpoollimit));
3177                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonpagedpoollimit));
3178                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minimumworkingsetsize));
3179                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maximumworkingsetsize));
3180                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagefilelimit));
3181                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timelimit));
3182         }
3183         if (ndr_flags & NDR_BUFFERS) {
3184         }
3185         return NDR_ERR_SUCCESS;
3186 }
3187
3188 _PUBLIC_ void ndr_print_netr_QUOTA_LIMITS(struct ndr_print *ndr, const char *name, const struct netr_QUOTA_LIMITS *r)
3189 {
3190         ndr_print_struct(ndr, name, "netr_QUOTA_LIMITS");
3191         ndr->depth++;
3192         ndr_print_uint32(ndr, "pagedpoollimit", r->pagedpoollimit);
3193         ndr_print_uint32(ndr, "nonpagedpoollimit", r->nonpagedpoollimit);
3194         ndr_print_uint32(ndr, "minimumworkingsetsize", r->minimumworkingsetsize);
3195         ndr_print_uint32(ndr, "maximumworkingsetsize", r->maximumworkingsetsize);
3196         ndr_print_uint32(ndr, "pagefilelimit", r->pagefilelimit);
3197         ndr_print_NTTIME(ndr, "timelimit", r->timelimit);
3198         ndr->depth--;
3199 }
3200
3201 static enum ndr_err_code ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_POLICY *r)
3202 {
3203         uint32_t cntr_eventauditoptions_1;
3204         if (ndr_flags & NDR_SCALARS) {
3205                 NDR_CHECK(ndr_push_align(ndr, 4));
3206                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlogsize));
3207                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->auditretentionperiod));
3208                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auditingmode));
3209                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount));
3210                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->eventauditoptions));
3211                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3212                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
3213                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3214                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
3215                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time));
3216                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3217                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3218                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3219                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3220                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3221                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3222                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3223                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3224                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3225                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3226         }
3227         if (ndr_flags & NDR_BUFFERS) {
3228                 if (r->eventauditoptions) {
3229                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount + 1));
3230                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3231                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventauditoptions[cntr_eventauditoptions_1]));
3232                         }
3233                 }
3234                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3235                 if (r->sid) {
3236                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3237                 }
3238                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3239                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3240                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3241                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3242                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3243         }
3244         return NDR_ERR_SUCCESS;
3245 }
3246
3247 static enum ndr_err_code ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r)
3248 {
3249         uint32_t _ptr_eventauditoptions;
3250         uint32_t cntr_eventauditoptions_1;
3251         TALLOC_CTX *_mem_save_eventauditoptions_0;
3252         TALLOC_CTX *_mem_save_eventauditoptions_1;
3253         uint32_t _ptr_sid;
3254         TALLOC_CTX *_mem_save_sid_0;
3255         if (ndr_flags & NDR_SCALARS) {
3256                 NDR_CHECK(ndr_pull_align(ndr, 4));
3257                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlogsize));
3258                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->auditretentionperiod));
3259                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auditingmode));
3260                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxauditeventcount));
3261                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eventauditoptions));
3262                 if (_ptr_eventauditoptions) {
3263                         NDR_PULL_ALLOC(ndr, r->eventauditoptions);
3264                 } else {
3265                         r->eventauditoptions = NULL;
3266                 }
3267                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3268                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
3269                 if (_ptr_sid) {
3270                         NDR_PULL_ALLOC(ndr, r->sid);
3271                 } else {
3272                         r->sid = NULL;
3273                 }
3274                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3275                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
3276                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time));
3277                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3278                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3279                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3280                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3281                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3282                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3283                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3284                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3285                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3286                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3287         }
3288         if (ndr_flags & NDR_BUFFERS) {
3289                 if (r->eventauditoptions) {
3290                         _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr);
3291                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3292                         NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions));
3293                         NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions));
3294                         _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr);
3295                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3296                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3297                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1]));
3298                         }
3299                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0);
3300                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_0, 0);
3301                 }
3302                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3303                 if (r->sid) {
3304                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
3305                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
3306                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3307                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
3308                 }
3309                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3310                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3311                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3312                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3313                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3314                 if (r->eventauditoptions) {
3315                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eventauditoptions, r->maxauditeventcount + 1));
3316                 }
3317         }
3318         return NDR_ERR_SUCCESS;
3319 }
3320
3321 _PUBLIC_ void ndr_print_netr_DELTA_POLICY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_POLICY *r)
3322 {
3323         uint32_t cntr_eventauditoptions_1;
3324         ndr_print_struct(ndr, name, "netr_DELTA_POLICY");
3325         ndr->depth++;
3326         ndr_print_uint32(ndr, "maxlogsize", r->maxlogsize);
3327         ndr_print_NTTIME(ndr, "auditretentionperiod", r->auditretentionperiod);
3328         ndr_print_uint8(ndr, "auditingmode", r->auditingmode);
3329         ndr_print_uint32(ndr, "maxauditeventcount", r->maxauditeventcount);
3330         ndr_print_ptr(ndr, "eventauditoptions", r->eventauditoptions);
3331         ndr->depth++;
3332         if (r->eventauditoptions) {
3333                 ndr->print(ndr, "%s: ARRAY(%d)", "eventauditoptions", (int)r->maxauditeventcount + 1);
3334                 ndr->depth++;
3335                 for (cntr_eventauditoptions_1=0;cntr_eventauditoptions_1<r->maxauditeventcount + 1;cntr_eventauditoptions_1++) {
3336                         char *idx_1=NULL;
3337                         if (asprintf(&idx_1, "[%d]", cntr_eventauditoptions_1) != -1) {
3338                                 ndr_print_uint32(ndr, "eventauditoptions", r->eventauditoptions[cntr_eventauditoptions_1]);
3339                                 free(idx_1);
3340                         }
3341                 }
3342                 ndr->depth--;
3343         }
3344         ndr->depth--;
3345         ndr_print_lsa_String(ndr, "primary_domain_name", &r->primary_domain_name);
3346         ndr_print_ptr(ndr, "sid", r->sid);
3347         ndr->depth++;
3348         if (r->sid) {
3349                 ndr_print_dom_sid2(ndr, "sid", r->sid);
3350         }
3351         ndr->depth--;
3352         ndr_print_netr_QUOTA_LIMITS(ndr, "quota_limits", &r->quota_limits);
3353         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
3354         ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
3355         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3356         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3357         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3358         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3359         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3360         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3361         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3362         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3363         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3364         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3365         ndr->depth--;
3366 }
3367
3368 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)
3369 {
3370         uint32_t cntr_controller_names_1;
3371         if (ndr_flags & NDR_SCALARS) {
3372                 NDR_CHECK(ndr_push_align(ndr, 4));
3373                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3374                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3375                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->controller_names));
3376                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3377                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3378                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3379                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3380                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3381                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3382                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_offset));
3383                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3384                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3385                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3386         }
3387         if (ndr_flags & NDR_BUFFERS) {
3388                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3389                 if (r->controller_names) {
3390                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3391                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3392                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3393                         }
3394                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3395                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3396                         }
3397                 }
3398                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3399                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3400                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3401                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3402                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3403         }
3404         return NDR_ERR_SUCCESS;
3405 }
3406
3407 static enum ndr_err_code ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r)
3408 {
3409         uint32_t _ptr_controller_names;
3410         uint32_t cntr_controller_names_1;
3411         TALLOC_CTX *_mem_save_controller_names_0;
3412         TALLOC_CTX *_mem_save_controller_names_1;
3413         if (ndr_flags & NDR_SCALARS) {
3414                 NDR_CHECK(ndr_pull_align(ndr, 4));
3415                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3416                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_controllers));
3417                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_controller_names));
3418                 if (_ptr_controller_names) {
3419                         NDR_PULL_ALLOC(ndr, r->controller_names);
3420                 } else {
3421                         r->controller_names = NULL;
3422                 }
3423                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3424                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3425                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3426                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3427                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3428                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3429                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_offset));
3430                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3431                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3432                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3433         }
3434         if (ndr_flags & NDR_BUFFERS) {
3435                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3436                 if (r->controller_names) {
3437                         _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
3438                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3439                         NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names));
3440                         NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names));
3441                         _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
3442                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3443                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3444                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3445                         }
3446                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3447                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3448                         }
3449                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0);
3450                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_0, 0);
3451                 }
3452                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3453                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3454                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3455                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3456                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3457                 if (r->controller_names) {
3458                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->controller_names, r->num_controllers));
3459                 }
3460         }
3461         return NDR_ERR_SUCCESS;
3462 }
3463
3464 _PUBLIC_ void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3465 {
3466         uint32_t cntr_controller_names_1;
3467         ndr_print_struct(ndr, name, "netr_DELTA_TRUSTED_DOMAIN");
3468         ndr->depth++;
3469         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
3470         ndr_print_uint32(ndr, "num_controllers", r->num_controllers);
3471         ndr_print_ptr(ndr, "controller_names", r->controller_names);
3472         ndr->depth++;
3473         if (r->controller_names) {
3474                 ndr->print(ndr, "%s: ARRAY(%d)", "controller_names", (int)r->num_controllers);
3475                 ndr->depth++;
3476                 for (cntr_controller_names_1=0;cntr_controller_names_1<r->num_controllers;cntr_controller_names_1++) {
3477                         char *idx_1=NULL;
3478                         if (asprintf(&idx_1, "[%d]", cntr_controller_names_1) != -1) {
3479                                 ndr_print_lsa_String(ndr, "controller_names", &r->controller_names[cntr_controller_names_1]);
3480                                 free(idx_1);
3481                         }
3482                 }
3483                 ndr->depth--;
3484         }
3485         ndr->depth--;
3486         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3487         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3488         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3489         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3490         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3491         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3492         ndr_print_uint32(ndr, "posix_offset", r->posix_offset);
3493         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3494         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3495         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3496         ndr->depth--;
3497 }
3498
3499 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)
3500 {
3501         if (ndr_flags & NDR_SCALARS) {
3502                 NDR_CHECK(ndr_push_align(ndr, 2));
3503                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3504         }
3505         if (ndr_flags & NDR_BUFFERS) {
3506         }
3507         return NDR_ERR_SUCCESS;
3508 }
3509
3510 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_TRUST *r)
3511 {
3512         if (ndr_flags & NDR_SCALARS) {
3513                 NDR_CHECK(ndr_pull_align(ndr, 2));
3514                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3515         }
3516         if (ndr_flags & NDR_BUFFERS) {
3517         }
3518         return NDR_ERR_SUCCESS;
3519 }
3520
3521 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_TRUST *r)
3522 {
3523         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_TRUST");
3524         ndr->depth++;
3525         ndr_print_uint16(ndr, "unknown", r->unknown);
3526         ndr->depth--;
3527 }
3528
3529 static enum ndr_err_code ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ACCOUNT *r)
3530 {
3531         uint32_t cntr_privilege_attrib_1;
3532         uint32_t cntr_privilege_name_1;
3533         if (ndr_flags & NDR_SCALARS) {
3534                 NDR_CHECK(ndr_push_align(ndr, 4));
3535                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3536                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_control));
3537                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_attrib));
3538                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_name));
3539                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3540                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->system_flags));
3541                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3542                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3543                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3544                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3545                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3546                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3547                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3548                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3549                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3550                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3551         }
3552         if (ndr_flags & NDR_BUFFERS) {
3553                 if (r->privilege_attrib) {
3554                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3555                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3556                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_attrib[cntr_privilege_attrib_1]));
3557                         }
3558                 }
3559                 if (r->privilege_name) {
3560                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3561                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3562                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3563                         }
3564                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3565                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3566                         }
3567                 }
3568                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3569                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3570                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3571                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3572                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3573         }
3574         return NDR_ERR_SUCCESS;
3575 }
3576
3577 static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r)
3578 {
3579         uint32_t _ptr_privilege_attrib;
3580         uint32_t cntr_privilege_attrib_1;
3581         TALLOC_CTX *_mem_save_privilege_attrib_0;
3582         TALLOC_CTX *_mem_save_privilege_attrib_1;
3583         uint32_t _ptr_privilege_name;
3584         uint32_t cntr_privilege_name_1;
3585         TALLOC_CTX *_mem_save_privilege_name_0;
3586         TALLOC_CTX *_mem_save_privilege_name_1;
3587         if (ndr_flags & NDR_SCALARS) {
3588                 NDR_CHECK(ndr_pull_align(ndr, 4));
3589                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_entries));
3590                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_control));
3591                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_attrib));
3592                 if (_ptr_privilege_attrib) {
3593                         NDR_PULL_ALLOC(ndr, r->privilege_attrib);
3594                 } else {
3595                         r->privilege_attrib = NULL;
3596                 }
3597                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_name));
3598                 if (_ptr_privilege_name) {
3599                         NDR_PULL_ALLOC(ndr, r->privilege_name);
3600                 } else {
3601                         r->privilege_name = NULL;
3602                 }
3603                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3604                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->system_flags));
3605                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3606                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3607                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3608                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3609                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3610                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3611                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3612                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3613                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3614                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3615         }
3616         if (ndr_flags & NDR_BUFFERS) {
3617                 if (r->privilege_attrib) {
3618                         _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
3619                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3620                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib));
3621                         NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib));
3622                         _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr);
3623                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3624                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3625                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1]));
3626                         }
3627                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0);
3628                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_0, 0);
3629                 }
3630                 if (r->privilege_name) {
3631                         _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3632                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3633                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name));
3634                         NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name));
3635                         _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
3636                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3637                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3638                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3639                         }
3640                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3641                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3642                         }
3643                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0);
3644                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_0, 0);
3645                 }
3646                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3647                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3648                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3649                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3650                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3651                 if (r->privilege_attrib) {
3652                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_attrib, r->privilege_entries));
3653                 }
3654                 if (r->privilege_name) {
3655                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_name, r->privilege_entries));
3656                 }
3657         }
3658         return NDR_ERR_SUCCESS;
3659 }
3660
3661 _PUBLIC_ void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ACCOUNT *r)
3662 {
3663         uint32_t cntr_privilege_attrib_1;
3664         uint32_t cntr_privilege_name_1;
3665         ndr_print_struct(ndr, name, "netr_DELTA_ACCOUNT");
3666         ndr->depth++;
3667         ndr_print_uint32(ndr, "privilege_entries", r->privilege_entries);
3668         ndr_print_uint32(ndr, "privilege_control", r->privilege_control);
3669         ndr_print_ptr(ndr, "privilege_attrib", r->privilege_attrib);
3670         ndr->depth++;
3671         if (r->privilege_attrib) {
3672                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_attrib", (int)r->privilege_entries);
3673                 ndr->depth++;
3674                 for (cntr_privilege_attrib_1=0;cntr_privilege_attrib_1<r->privilege_entries;cntr_privilege_attrib_1++) {
3675                         char *idx_1=NULL;
3676                         if (asprintf(&idx_1, "[%d]", cntr_privilege_attrib_1) != -1) {
3677                                 ndr_print_uint32(ndr, "privilege_attrib", r->privilege_attrib[cntr_privilege_attrib_1]);
3678                                 free(idx_1);
3679                         }
3680                 }
3681                 ndr->depth--;
3682         }
3683         ndr->depth--;
3684         ndr_print_ptr(ndr, "privilege_name", r->privilege_name);
3685         ndr->depth++;
3686         if (r->privilege_name) {
3687                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_name", (int)r->privilege_entries);
3688                 ndr->depth++;
3689                 for (cntr_privilege_name_1=0;cntr_privilege_name_1<r->privilege_entries;cntr_privilege_name_1++) {
3690                         char *idx_1=NULL;
3691                         if (asprintf(&idx_1, "[%d]", cntr_privilege_name_1) != -1) {
3692                                 ndr_print_lsa_String(ndr, "privilege_name", &r->privilege_name[cntr_privilege_name_1]);
3693                                 free(idx_1);
3694                         }
3695                 }
3696                 ndr->depth--;
3697         }
3698         ndr->depth--;
3699         ndr_print_netr_QUOTA_LIMITS(ndr, "quotalimits", &r->quotalimits);
3700         ndr_print_uint32(ndr, "system_flags", r->system_flags);
3701         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3702         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3703         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3704         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3705         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3706         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3707         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3708         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3709         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3710         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3711         ndr->depth--;
3712 }
3713
3714 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)
3715 {
3716         if (ndr_flags & NDR_SCALARS) {
3717                 NDR_CHECK(ndr_push_align(ndr, 2));
3718                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3719         }
3720         if (ndr_flags & NDR_BUFFERS) {
3721         }
3722         return NDR_ERR_SUCCESS;
3723 }
3724
3725 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_ACCOUNT *r)
3726 {
3727         if (ndr_flags & NDR_SCALARS) {
3728                 NDR_CHECK(ndr_pull_align(ndr, 2));
3729                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3730         }
3731         if (ndr_flags & NDR_BUFFERS) {
3732         }
3733         return NDR_ERR_SUCCESS;
3734 }
3735
3736 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_ACCOUNT *r)
3737 {
3738         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_ACCOUNT");
3739         ndr->depth++;
3740         ndr_print_uint16(ndr, "unknown", r->unknown);
3741         ndr->depth--;
3742 }
3743
3744 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)
3745 {
3746         if (ndr_flags & NDR_SCALARS) {
3747                 NDR_CHECK(ndr_push_align(ndr, 2));
3748                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3749         }
3750         if (ndr_flags & NDR_BUFFERS) {
3751         }
3752         return NDR_ERR_SUCCESS;
3753 }
3754
3755 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_SECRET *r)
3756 {
3757         if (ndr_flags & NDR_SCALARS) {
3758                 NDR_CHECK(ndr_pull_align(ndr, 2));
3759                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3760         }
3761         if (ndr_flags & NDR_BUFFERS) {
3762         }
3763         return NDR_ERR_SUCCESS;
3764 }
3765
3766 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_SECRET *r)
3767 {
3768         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_SECRET");
3769         ndr->depth++;
3770         ndr_print_uint16(ndr, "unknown", r->unknown);
3771         ndr->depth--;
3772 }
3773
3774 static enum ndr_err_code ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int ndr_flags, const struct netr_CIPHER_VALUE *r)
3775 {
3776         if (ndr_flags & NDR_SCALARS) {
3777                 NDR_CHECK(ndr_push_align(ndr, 4));
3778                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3779                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3780                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cipher_data));
3781         }
3782         if (ndr_flags & NDR_BUFFERS) {
3783                 if (r->cipher_data) {
3784                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3785                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3786                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3787                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->cipher_data, r->len));
3788                 }
3789         }
3790         return NDR_ERR_SUCCESS;
3791 }
3792
3793 static enum ndr_err_code ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r)
3794 {
3795         uint32_t _ptr_cipher_data;
3796         TALLOC_CTX *_mem_save_cipher_data_0;
3797         if (ndr_flags & NDR_SCALARS) {
3798                 NDR_CHECK(ndr_pull_align(ndr, 4));
3799                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
3800                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlen));
3801                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cipher_data));
3802                 if (_ptr_cipher_data) {
3803                         NDR_PULL_ALLOC(ndr, r->cipher_data);
3804                 } else {
3805                         r->cipher_data = NULL;
3806                 }
3807         }
3808         if (ndr_flags & NDR_BUFFERS) {
3809                 if (r->cipher_data) {
3810                         _mem_save_cipher_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
3811                         NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0);
3812                         NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data));
3813                         NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data));
3814                         if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) {
3815                                 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));
3816                         }
3817                         NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data));
3818                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data)));
3819                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0);
3820                 }
3821                 if (r->cipher_data) {
3822                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cipher_data, r->maxlen));
3823                 }
3824                 if (r->cipher_data) {
3825                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->cipher_data, r->len));
3826                 }
3827         }
3828         return NDR_ERR_SUCCESS;
3829 }
3830
3831 _PUBLIC_ void ndr_print_netr_CIPHER_VALUE(struct ndr_print *ndr, const char *name, const struct netr_CIPHER_VALUE *r)
3832 {
3833         ndr_print_struct(ndr, name, "netr_CIPHER_VALUE");
3834         ndr->depth++;
3835         ndr_print_uint32(ndr, "len", r->len);
3836         ndr_print_uint32(ndr, "maxlen", r->maxlen);
3837         ndr_print_ptr(ndr, "cipher_data", r->cipher_data);
3838         ndr->depth++;
3839         if (r->cipher_data) {
3840                 ndr_print_array_uint8(ndr, "cipher_data", r->cipher_data, r->len);
3841         }
3842         ndr->depth--;
3843         ndr->depth--;
3844 }
3845
3846 static enum ndr_err_code ndr_push_netr_DELTA_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_SECRET *r)
3847 {
3848         if (ndr_flags & NDR_SCALARS) {
3849                 NDR_CHECK(ndr_push_align(ndr, 4));
3850                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3851                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->current_cipher_set_time));
3852                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3853                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_cipher_set_time));
3854                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3855                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3856                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3857                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3858                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3859                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3860                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3861                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3862                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3863                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3864         }
3865         if (ndr_flags & NDR_BUFFERS) {
3866                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3867                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3868                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3869                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3870                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3871                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3872                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3873         }
3874         return NDR_ERR_SUCCESS;
3875 }
3876
3877 static enum ndr_err_code ndr_pull_netr_DELTA_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_SECRET *r)
3878 {
3879         if (ndr_flags & NDR_SCALARS) {
3880                 NDR_CHECK(ndr_pull_align(ndr, 4));
3881                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3882                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->current_cipher_set_time));
3883                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3884                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_cipher_set_time));
3885                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3886                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3887                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3888                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3889                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3890                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3891                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3892                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3893                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3894                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3895         }
3896         if (ndr_flags & NDR_BUFFERS) {
3897                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3898                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3899                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3900                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3901                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3902                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3903                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3904         }
3905         return NDR_ERR_SUCCESS;
3906 }
3907
3908 _PUBLIC_ void ndr_print_netr_DELTA_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_SECRET *r)
3909 {
3910         ndr_print_struct(ndr, name, "netr_DELTA_SECRET");
3911         ndr->depth++;
3912         ndr_print_netr_CIPHER_VALUE(ndr, "current_cipher", &r->current_cipher);
3913         ndr_print_NTTIME(ndr, "current_cipher_set_time", r->current_cipher_set_time);
3914         ndr_print_netr_CIPHER_VALUE(ndr, "old_cipher", &r->old_cipher);
3915         ndr_print_NTTIME(ndr, "old_cipher_set_time", r->old_cipher_set_time);
3916         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3917         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3918         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3919         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3920         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3921         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3922         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3923         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3924         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3925         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3926         ndr->depth--;
3927 }
3928
3929 static enum ndr_err_code ndr_push_netr_DeltaEnum(struct ndr_push *ndr, int ndr_flags, enum netr_DeltaEnum r)
3930 {
3931         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
3932         return NDR_ERR_SUCCESS;
3933 }
3934
3935 static enum ndr_err_code ndr_pull_netr_DeltaEnum(struct ndr_pull *ndr, int ndr_flags, enum netr_DeltaEnum *r)
3936 {
3937         uint16_t v;
3938         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
3939         *r = v;
3940         return NDR_ERR_SUCCESS;
3941 }
3942
3943 _PUBLIC_ void ndr_print_netr_DeltaEnum(struct ndr_print *ndr, const char *name, enum netr_DeltaEnum r)
3944 {
3945         const char *val = NULL;
3946
3947         switch (r) {
3948                 case NETR_DELTA_DOMAIN: val = "NETR_DELTA_DOMAIN"; break;
3949                 case NETR_DELTA_GROUP: val = "NETR_DELTA_GROUP"; break;
3950                 case NETR_DELTA_DELETE_GROUP: val = "NETR_DELTA_DELETE_GROUP"; break;
3951                 case NETR_DELTA_RENAME_GROUP: val = "NETR_DELTA_RENAME_GROUP"; break;
3952                 case NETR_DELTA_USER: val = "NETR_DELTA_USER"; break;
3953                 case NETR_DELTA_DELETE_USER: val = "NETR_DELTA_DELETE_USER"; break;
3954                 case NETR_DELTA_RENAME_USER: val = "NETR_DELTA_RENAME_USER"; break;
3955                 case NETR_DELTA_GROUP_MEMBER: val = "NETR_DELTA_GROUP_MEMBER"; break;
3956                 case NETR_DELTA_ALIAS: val = "NETR_DELTA_ALIAS"; break;
3957                 case NETR_DELTA_DELETE_ALIAS: val = "NETR_DELTA_DELETE_ALIAS"; break;
3958                 case NETR_DELTA_RENAME_ALIAS: val = "NETR_DELTA_RENAME_ALIAS"; break;
3959                 case NETR_DELTA_ALIAS_MEMBER: val = "NETR_DELTA_ALIAS_MEMBER"; break;
3960                 case NETR_DELTA_POLICY: val = "NETR_DELTA_POLICY"; break;
3961                 case NETR_DELTA_TRUSTED_DOMAIN: val = "NETR_DELTA_TRUSTED_DOMAIN"; break;
3962                 case NETR_DELTA_DELETE_TRUST: val = "NETR_DELTA_DELETE_TRUST"; break;
3963                 case NETR_DELTA_ACCOUNT: val = "NETR_DELTA_ACCOUNT"; break;
3964                 case NETR_DELTA_DELETE_ACCOUNT: val = "NETR_DELTA_DELETE_ACCOUNT"; break;
3965                 case NETR_DELTA_SECRET: val = "NETR_DELTA_SECRET"; break;
3966                 case NETR_DELTA_DELETE_SECRET: val = "NETR_DELTA_DELETE_SECRET"; break;
3967                 case NETR_DELTA_DELETE_GROUP2: val = "NETR_DELTA_DELETE_GROUP2"; break;
3968                 case NETR_DELTA_DELETE_USER2: val = "NETR_DELTA_DELETE_USER2"; break;
3969                 case NETR_DELTA_MODIFY_COUNT: val = "NETR_DELTA_MODIFY_COUNT"; break;
3970         }
3971         ndr_print_enum(ndr, name, "ENUM", val, r);
3972 }
3973
3974 static enum ndr_err_code ndr_push_netr_DELTA_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_UNION *r)
3975 {
3976         if (ndr_flags & NDR_SCALARS) {
3977                 int level = ndr_push_get_switch_value(ndr, r);
3978                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
3979                 switch (level) {
3980                         case NETR_DELTA_DOMAIN: {
3981                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
3982                         break; }
3983
3984                         case NETR_DELTA_GROUP: {
3985                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group));
3986                         break; }
3987
3988                         case NETR_DELTA_DELETE_GROUP: {
3989                         break; }
3990
3991                         case NETR_DELTA_RENAME_GROUP: {
3992                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_group));
3993                         break; }
3994
3995                         case NETR_DELTA_USER: {
3996                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
3997                         break; }
3998
3999                         case NETR_DELTA_DELETE_USER: {
4000                         break; }
4001
4002                         case NETR_DELTA_RENAME_USER: {
4003                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_user));
4004                         break; }
4005
4006                         case NETR_DELTA_GROUP_MEMBER: {
4007                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_member));
4008                         break; }
4009
4010                         case NETR_DELTA_ALIAS: {
4011                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias));
4012                         break; }
4013
4014                         case NETR_DELTA_DELETE_ALIAS: {
4015                         break; }
4016
4017                         case NETR_DELTA_RENAME_ALIAS: {
4018                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_alias));
4019                         break; }
4020
4021                         case NETR_DELTA_ALIAS_MEMBER: {
4022                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias_member));
4023                         break; }
4024
4025                         case NETR_DELTA_POLICY: {
4026                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
4027                         break; }
4028
4029                         case NETR_DELTA_TRUSTED_DOMAIN: {
4030                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain));
4031                         break; }
4032
4033                         case NETR_DELTA_DELETE_TRUST: {
4034                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4035                         break; }
4036
4037                         case NETR_DELTA_ACCOUNT: {
4038                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account));
4039                         break; }
4040
4041                         case NETR_DELTA_DELETE_ACCOUNT: {
4042                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4043                         break; }
4044
4045                         case NETR_DELTA_SECRET: {
4046                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret));
4047                         break; }
4048
4049                         case NETR_DELTA_DELETE_SECRET: {
4050                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4051                         break; }
4052
4053                         case NETR_DELTA_DELETE_GROUP2: {
4054                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_group));
4055                         break; }
4056
4057                         case NETR_DELTA_DELETE_USER2: {
4058                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_user));
4059                         break; }
4060
4061                         case NETR_DELTA_MODIFY_COUNT: {
4062                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->modified_count));
4063                         break; }
4064
4065                         default:
4066                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4067                 }
4068         }
4069         if (ndr_flags & NDR_BUFFERS) {
4070                 int level = ndr_push_get_switch_value(ndr, r);
4071                 switch (level) {
4072                         case NETR_DELTA_DOMAIN:
4073                                 if (r->domain) {
4074                                         NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4075                                 }
4076                         break;
4077
4078                         case NETR_DELTA_GROUP:
4079                                 if (r->group) {
4080                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4081                                 }
4082                         break;
4083
4084                         case NETR_DELTA_DELETE_GROUP:
4085                         break;
4086
4087                         case NETR_DELTA_RENAME_GROUP:
4088                                 if (r->rename_group) {
4089                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4090                                 }
4091                         break;
4092
4093                         case NETR_DELTA_USER:
4094                                 if (r->user) {
4095                                         NDR_CHECK(ndr_push_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4096                                 }
4097                         break;
4098
4099                         case NETR_DELTA_DELETE_USER:
4100                         break;
4101
4102                         case NETR_DELTA_RENAME_USER:
4103                                 if (r->rename_user) {
4104                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4105                                 }
4106                         break;
4107
4108                         case NETR_DELTA_GROUP_MEMBER:
4109                                 if (r->group_member) {
4110                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4111                                 }
4112                         break;
4113
4114                         case NETR_DELTA_ALIAS:
4115                                 if (r->alias) {
4116                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4117                                 }
4118                         break;
4119
4120                         case NETR_DELTA_DELETE_ALIAS:
4121                         break;
4122
4123                         case NETR_DELTA_RENAME_ALIAS:
4124                                 if (r->rename_alias) {
4125                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4126                                 }
4127                         break;
4128
4129                         case NETR_DELTA_ALIAS_MEMBER:
4130                                 if (r->alias_member) {
4131                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4132                                 }
4133                         break;
4134
4135                         case NETR_DELTA_POLICY:
4136                                 if (r->policy) {
4137                                         NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4138                                 }
4139                         break;
4140
4141                         case NETR_DELTA_TRUSTED_DOMAIN:
4142                                 if (r->trusted_domain) {
4143                                         NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4144                                 }
4145                         break;
4146
4147                         case NETR_DELTA_DELETE_TRUST:
4148                         break;
4149
4150                         case NETR_DELTA_ACCOUNT:
4151                                 if (r->account) {
4152                                         NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4153                                 }
4154                         break;
4155
4156                         case NETR_DELTA_DELETE_ACCOUNT:
4157                         break;
4158
4159                         case NETR_DELTA_SECRET:
4160                                 if (r->secret) {
4161                                         NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4162                                 }
4163                         break;
4164
4165                         case NETR_DELTA_DELETE_SECRET:
4166                         break;
4167
4168                         case NETR_DELTA_DELETE_GROUP2:
4169                                 if (r->delete_group) {
4170                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4171                                 }
4172                         break;
4173
4174                         case NETR_DELTA_DELETE_USER2:
4175                                 if (r->delete_user) {
4176                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4177                                 }
4178                         break;
4179
4180                         case NETR_DELTA_MODIFY_COUNT:
4181                                 if (r->modified_count) {
4182                                         NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->modified_count));
4183                                 }
4184                         break;
4185
4186                         default:
4187                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4188                 }
4189         }
4190         return NDR_ERR_SUCCESS;
4191 }
4192
4193 static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_UNION *r)
4194 {
4195         int level;
4196         uint16_t _level;
4197         TALLOC_CTX *_mem_save_domain_0;
4198         TALLOC_CTX *_mem_save_group_0;
4199         TALLOC_CTX *_mem_save_rename_group_0;
4200         TALLOC_CTX *_mem_save_user_0;
4201         TALLOC_CTX *_mem_save_rename_user_0;
4202         TALLOC_CTX *_mem_save_group_member_0;
4203         TALLOC_CTX *_mem_save_alias_0;
4204         TALLOC_CTX *_mem_save_rename_alias_0;
4205         TALLOC_CTX *_mem_save_alias_member_0;
4206         TALLOC_CTX *_mem_save_policy_0;
4207         TALLOC_CTX *_mem_save_trusted_domain_0;
4208         TALLOC_CTX *_mem_save_account_0;
4209         TALLOC_CTX *_mem_save_secret_0;
4210         TALLOC_CTX *_mem_save_delete_group_0;
4211         TALLOC_CTX *_mem_save_delete_user_0;
4212         TALLOC_CTX *_mem_save_modified_count_0;
4213         level = ndr_pull_get_switch_value(ndr, r);
4214         if (ndr_flags & NDR_SCALARS) {
4215                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4216                 if (_level != level) {
4217                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4218                 }
4219                 switch (level) {
4220                         case NETR_DELTA_DOMAIN: {
4221                                 uint32_t _ptr_domain;
4222                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
4223                                 if (_ptr_domain) {
4224                                         NDR_PULL_ALLOC(ndr, r->domain);
4225                                 } else {
4226                                         r->domain = NULL;
4227                                 }
4228                         break; }
4229
4230                         case NETR_DELTA_GROUP: {
4231                                 uint32_t _ptr_group;
4232                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group));
4233                                 if (_ptr_group) {
4234                                         NDR_PULL_ALLOC(ndr, r->group);
4235                                 } else {
4236                                         r->group = NULL;
4237                                 }
4238                         break; }
4239
4240                         case NETR_DELTA_DELETE_GROUP: {
4241                         break; }
4242
4243                         case NETR_DELTA_RENAME_GROUP: {
4244                                 uint32_t _ptr_rename_group;
4245                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group));
4246                                 if (_ptr_rename_group) {
4247                                         NDR_PULL_ALLOC(ndr, r->rename_group);
4248                                 } else {
4249                                         r->rename_group = NULL;
4250                                 }
4251                         break; }
4252
4253                         case NETR_DELTA_USER: {
4254                                 uint32_t _ptr_user;
4255                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
4256                                 if (_ptr_user) {
4257                                         NDR_PULL_ALLOC(ndr, r->user);
4258                                 } else {
4259                                         r->user = NULL;
4260                                 }
4261                         break; }
4262
4263                         case NETR_DELTA_DELETE_USER: {
4264                         break; }
4265
4266                         case NETR_DELTA_RENAME_USER: {
4267                                 uint32_t _ptr_rename_user;
4268                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user));
4269                                 if (_ptr_rename_user) {
4270                                         NDR_PULL_ALLOC(ndr, r->rename_user);
4271                                 } else {
4272                                         r->rename_user = NULL;
4273                                 }
4274                         break; }
4275
4276                         case NETR_DELTA_GROUP_MEMBER: {
4277                                 uint32_t _ptr_group_member;
4278                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member));
4279                                 if (_ptr_group_member) {
4280                                         NDR_PULL_ALLOC(ndr, r->group_member);
4281                                 } else {
4282                                         r->group_member = NULL;
4283                                 }
4284                         break; }
4285
4286                         case NETR_DELTA_ALIAS: {
4287                                 uint32_t _ptr_alias;
4288                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias));
4289                                 if (_ptr_alias) {
4290                                         NDR_PULL_ALLOC(ndr, r->alias);
4291                                 } else {
4292                                         r->alias = NULL;
4293                                 }
4294                         break; }
4295
4296                         case NETR_DELTA_DELETE_ALIAS: {
4297                         break; }
4298
4299                         case NETR_DELTA_RENAME_ALIAS: {
4300                                 uint32_t _ptr_rename_alias;
4301                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias));
4302                                 if (_ptr_rename_alias) {
4303                                         NDR_PULL_ALLOC(ndr, r->rename_alias);
4304                                 } else {
4305                                         r->rename_alias = NULL;
4306                                 }
4307                         break; }
4308
4309                         case NETR_DELTA_ALIAS_MEMBER: {
4310                                 uint32_t _ptr_alias_member;
4311                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member));
4312                                 if (_ptr_alias_member) {
4313                                         NDR_PULL_ALLOC(ndr, r->alias_member);
4314                                 } else {
4315                                         r->alias_member = NULL;
4316                                 }
4317                         break; }
4318
4319                         case NETR_DELTA_POLICY: {
4320                                 uint32_t _ptr_policy;
4321                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
4322                                 if (_ptr_policy) {
4323                                         NDR_PULL_ALLOC(ndr, r->policy);
4324                                 } else {
4325                                         r->policy = NULL;
4326                                 }
4327                         break; }
4328
4329                         case NETR_DELTA_TRUSTED_DOMAIN: {
4330                                 uint32_t _ptr_trusted_domain;
4331                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain));
4332                                 if (_ptr_trusted_domain) {
4333                                         NDR_PULL_ALLOC(ndr, r->trusted_domain);
4334                                 } else {
4335                                         r->trusted_domain = NULL;
4336                                 }
4337                         break; }
4338
4339                         case NETR_DELTA_DELETE_TRUST: {
4340                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4341                         break; }
4342
4343                         case NETR_DELTA_ACCOUNT: {
4344                                 uint32_t _ptr_account;
4345                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account));
4346                                 if (_ptr_account) {
4347                                         NDR_PULL_ALLOC(ndr, r->account);
4348                                 } else {
4349                                         r->account = NULL;
4350                                 }
4351                         break; }
4352
4353                         case NETR_DELTA_DELETE_ACCOUNT: {
4354                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4355                         break; }
4356
4357                         case NETR_DELTA_SECRET: {
4358                                 uint32_t _ptr_secret;
4359                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret));
4360                                 if (_ptr_secret) {
4361                                         NDR_PULL_ALLOC(ndr, r->secret);
4362                                 } else {
4363                                         r->secret = NULL;
4364                                 }
4365                         break; }
4366
4367                         case NETR_DELTA_DELETE_SECRET: {
4368                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4369                         break; }
4370
4371                         case NETR_DELTA_DELETE_GROUP2: {
4372                                 uint32_t _ptr_delete_group;
4373                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group));
4374                                 if (_ptr_delete_group) {
4375                                         NDR_PULL_ALLOC(ndr, r->delete_group);
4376                                 } else {
4377                                         r->delete_group = NULL;
4378                                 }
4379                         break; }
4380
4381                         case NETR_DELTA_DELETE_USER2: {
4382                                 uint32_t _ptr_delete_user;
4383                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user));
4384                                 if (_ptr_delete_user) {
4385                                         NDR_PULL_ALLOC(ndr, r->delete_user);
4386                                 } else {
4387                                         r->delete_user = NULL;
4388                                 }
4389                         break; }
4390
4391                         case NETR_DELTA_MODIFY_COUNT: {
4392                                 uint32_t _ptr_modified_count;
4393                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count));
4394                                 if (_ptr_modified_count) {
4395                                         NDR_PULL_ALLOC(ndr, r->modified_count);
4396                                 } else {
4397                                         r->modified_count = NULL;
4398                                 }
4399                         break; }
4400
4401                         default:
4402                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4403                 }
4404         }
4405         if (ndr_flags & NDR_BUFFERS) {
4406                 switch (level) {
4407                         case NETR_DELTA_DOMAIN:
4408                                 if (r->domain) {
4409                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4410                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
4411                                         NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4412                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
4413                                 }
4414                         break;
4415
4416                         case NETR_DELTA_GROUP:
4417                                 if (r->group) {
4418                                         _mem_save_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4419                                         NDR_PULL_SET_MEM_CTX(ndr, r->group, 0);
4420                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4421                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_0, 0);
4422                                 }
4423                         break;
4424
4425                         case NETR_DELTA_DELETE_GROUP:
4426                         break;
4427
4428                         case NETR_DELTA_RENAME_GROUP:
4429                                 if (r->rename_group) {
4430                                         _mem_save_rename_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4431                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_group, 0);
4432                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4433                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_group_0, 0);
4434                                 }
4435                         break;
4436
4437                         case NETR_DELTA_USER:
4438                                 if (r->user) {
4439                                         _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4440                                         NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
4441                                         NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4442                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
4443                                 }
4444                         break;
4445
4446                         case NETR_DELTA_DELETE_USER:
4447                         break;
4448
4449                         case NETR_DELTA_RENAME_USER:
4450                                 if (r->rename_user) {
4451                                         _mem_save_rename_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4452                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_user, 0);
4453                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4454                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_user_0, 0);
4455                                 }
4456                         break;
4457
4458                         case NETR_DELTA_GROUP_MEMBER:
4459                                 if (r->group_member) {
4460                                         _mem_save_group_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4461                                         NDR_PULL_SET_MEM_CTX(ndr, r->group_member, 0);
4462                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4463                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_member_0, 0);
4464                                 }
4465                         break;
4466
4467                         case NETR_DELTA_ALIAS:
4468                                 if (r->alias) {
4469                                         _mem_save_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4470                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias, 0);
4471                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4472                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_0, 0);
4473                                 }
4474                         break;
4475
4476                         case NETR_DELTA_DELETE_ALIAS:
4477                         break;
4478
4479                         case NETR_DELTA_RENAME_ALIAS:
4480                                 if (r->rename_alias) {
4481                                         _mem_save_rename_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4482                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_alias, 0);
4483                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4484                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_alias_0, 0);
4485                                 }
4486                         break;
4487
4488                         case NETR_DELTA_ALIAS_MEMBER:
4489                                 if (r->alias_member) {
4490                                         _mem_save_alias_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4491                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias_member, 0);
4492                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4493                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_member_0, 0);
4494                                 }
4495                         break;
4496
4497                         case NETR_DELTA_POLICY:
4498                                 if (r->policy) {
4499                                         _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
4500                                         NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
4501                                         NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4502                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
4503                                 }
4504                         break;
4505
4506                         case NETR_DELTA_TRUSTED_DOMAIN:
4507                                 if (r->trusted_domain) {
4508                                         _mem_save_trusted_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4509                                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain, 0);
4510                                         NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4511                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_0, 0);
4512                                 }
4513                         break;
4514
4515                         case NETR_DELTA_DELETE_TRUST:
4516                         break;
4517
4518                         case NETR_DELTA_ACCOUNT:
4519                                 if (r->account) {
4520                                         _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
4521                                         NDR_PULL_SET_MEM_CTX(ndr, r->account, 0);
4522                                         NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4523                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0);
4524                                 }
4525                         break;
4526
4527                         case NETR_DELTA_DELETE_ACCOUNT:
4528                         break;
4529
4530                         case NETR_DELTA_SECRET:
4531                                 if (r->secret) {
4532                                         _mem_save_secret_0 = NDR_PULL_GET_MEM_CTX(ndr);
4533                                         NDR_PULL_SET_MEM_CTX(ndr, r->secret, 0);
4534                                         NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4535                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_0, 0);
4536                                 }
4537                         break;
4538
4539                         case NETR_DELTA_DELETE_SECRET:
4540                         break;
4541
4542                         case NETR_DELTA_DELETE_GROUP2:
4543                                 if (r->delete_group) {
4544                                         _mem_save_delete_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4545                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_group, 0);
4546                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4547                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_group_0, 0);
4548                                 }
4549                         break;
4550
4551                         case NETR_DELTA_DELETE_USER2:
4552                                 if (r->delete_user) {
4553                                         _mem_save_delete_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4554                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_user, 0);
4555                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4556                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_user_0, 0);
4557                                 }
4558                         break;
4559
4560                         case NETR_DELTA_MODIFY_COUNT:
4561                                 if (r->modified_count) {
4562                                         _mem_save_modified_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
4563                                         NDR_PULL_SET_MEM_CTX(ndr, r->modified_count, 0);
4564                                         NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->modified_count));
4565                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_modified_count_0, 0);
4566                                 }
4567                         break;
4568
4569                         default:
4570                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4571                 }
4572         }
4573         return NDR_ERR_SUCCESS;
4574 }
4575
4576 _PUBLIC_ void ndr_print_netr_DELTA_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_UNION *r)
4577 {
4578         int level;
4579         level = ndr_print_get_switch_value(ndr, r);
4580         ndr_print_union(ndr, name, level, "netr_DELTA_UNION");
4581         switch (level) {
4582                 case NETR_DELTA_DOMAIN:
4583                         ndr_print_ptr(ndr, "domain", r->domain);
4584                         ndr->depth++;
4585                         if (r->domain) {
4586                                 ndr_print_netr_DELTA_DOMAIN(ndr, "domain", r->domain);
4587                         }
4588                         ndr->depth--;
4589                 break;
4590
4591                 case NETR_DELTA_GROUP:
4592                         ndr_print_ptr(ndr, "group", r->group);
4593                         ndr->depth++;
4594                         if (r->group) {
4595                                 ndr_print_netr_DELTA_GROUP(ndr, "group", r->group);
4596                         }
4597                         ndr->depth--;
4598                 break;
4599
4600                 case NETR_DELTA_DELETE_GROUP:
4601                 break;
4602
4603                 case NETR_DELTA_RENAME_GROUP:
4604                         ndr_print_ptr(ndr, "rename_group", r->rename_group);
4605                         ndr->depth++;
4606                         if (r->rename_group) {
4607                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_group", r->rename_group);
4608                         }
4609                         ndr->depth--;
4610                 break;
4611
4612                 case NETR_DELTA_USER:
4613                         ndr_print_ptr(ndr, "user", r->user);
4614                         ndr->depth++;
4615                         if (r->user) {
4616                                 ndr_print_netr_DELTA_USER(ndr, "user", r->user);
4617                         }
4618                         ndr->depth--;
4619                 break;
4620
4621                 case NETR_DELTA_DELETE_USER:
4622                 break;
4623
4624                 case NETR_DELTA_RENAME_USER:
4625                         ndr_print_ptr(ndr, "rename_user", r->rename_user);
4626                         ndr->depth++;
4627                         if (r->rename_user) {
4628                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_user", r->rename_user);
4629                         }
4630                         ndr->depth--;
4631                 break;
4632
4633                 case NETR_DELTA_GROUP_MEMBER:
4634                         ndr_print_ptr(ndr, "group_member", r->group_member);
4635                         ndr->depth++;
4636                         if (r->group_member) {
4637                                 ndr_print_netr_DELTA_GROUP_MEMBER(ndr, "group_member", r->group_member);
4638                         }
4639                         ndr->depth--;
4640                 break;
4641
4642                 case NETR_DELTA_ALIAS:
4643                         ndr_print_ptr(ndr, "alias", r->alias);
4644                         ndr->depth++;
4645                         if (r->alias) {
4646                                 ndr_print_netr_DELTA_ALIAS(ndr, "alias", r->alias);
4647                         }
4648                         ndr->depth--;
4649                 break;
4650
4651                 case NETR_DELTA_DELETE_ALIAS:
4652                 break;
4653
4654                 case NETR_DELTA_RENAME_ALIAS:
4655                         ndr_print_ptr(ndr, "rename_alias", r->rename_alias);
4656                         ndr->depth++;
4657                         if (r->rename_alias) {
4658                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_alias", r->rename_alias);
4659                         }
4660                         ndr->depth--;
4661                 break;
4662
4663                 case NETR_DELTA_ALIAS_MEMBER:
4664                         ndr_print_ptr(ndr, "alias_member", r->alias_member);
4665                         ndr->depth++;
4666                         if (r->alias_member) {
4667                                 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr, "alias_member", r->alias_member);
4668                         }
4669                         ndr->depth--;
4670                 break;
4671
4672                 case NETR_DELTA_POLICY:
4673                         ndr_print_ptr(ndr, "policy", r->policy);
4674                         ndr->depth++;
4675                         if (r->policy) {
4676                                 ndr_print_netr_DELTA_POLICY(ndr, "policy", r->policy);
4677                         }
4678                         ndr->depth--;
4679                 break;
4680
4681                 case NETR_DELTA_TRUSTED_DOMAIN:
4682                         ndr_print_ptr(ndr, "trusted_domain", r->trusted_domain);
4683                         ndr->depth++;
4684                         if (r->trusted_domain) {
4685                                 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr, "trusted_domain", r->trusted_domain);
4686                         }
4687                         ndr->depth--;
4688                 break;
4689
4690                 case NETR_DELTA_DELETE_TRUST:
4691                         ndr_print_netr_DELTA_DELETE_TRUST(ndr, "delete_trust", &r->delete_trust);
4692                 break;
4693
4694                 case NETR_DELTA_ACCOUNT:
4695                         ndr_print_ptr(ndr, "account", r->account);
4696                         ndr->depth++;
4697                         if (r->account) {
4698                                 ndr_print_netr_DELTA_ACCOUNT(ndr, "account", r->account);
4699                         }
4700                         ndr->depth--;
4701                 break;
4702
4703                 case NETR_DELTA_DELETE_ACCOUNT:
4704                         ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr, "delete_account", &r->delete_account);
4705                 break;
4706
4707                 case NETR_DELTA_SECRET:
4708                         ndr_print_ptr(ndr, "secret", r->secret);
4709                         ndr->depth++;
4710                         if (r->secret) {
4711                                 ndr_print_netr_DELTA_SECRET(ndr, "secret", r->secret);
4712                         }
4713                         ndr->depth--;
4714                 break;
4715
4716                 case NETR_DELTA_DELETE_SECRET:
4717                         ndr_print_netr_DELTA_DELETE_SECRET(ndr, "delete_secret", &r->delete_secret);
4718                 break;
4719
4720                 case NETR_DELTA_DELETE_GROUP2:
4721                         ndr_print_ptr(ndr, "delete_group", r->delete_group);
4722                         ndr->depth++;
4723                         if (r->delete_group) {
4724                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_group", r->delete_group);
4725                         }
4726                         ndr->depth--;
4727                 break;
4728
4729                 case NETR_DELTA_DELETE_USER2:
4730                         ndr_print_ptr(ndr, "delete_user", r->delete_user);
4731                         ndr->depth++;
4732                         if (r->delete_user) {
4733                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_user", r->delete_user);
4734                         }
4735                         ndr->depth--;
4736                 break;
4737
4738                 case NETR_DELTA_MODIFY_COUNT:
4739                         ndr_print_ptr(ndr, "modified_count", r->modified_count);
4740                         ndr->depth++;
4741                         if (r->modified_count) {
4742                                 ndr_print_udlong(ndr, "modified_count", *r->modified_count);
4743                         }
4744                         ndr->depth--;
4745                 break;
4746
4747                 default:
4748                         ndr_print_bad_level(ndr, name, level);
4749         }
4750 }
4751
4752 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)
4753 {
4754         if (ndr_flags & NDR_SCALARS) {
4755                 int level = ndr_push_get_switch_value(ndr, r);
4756                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
4757                 switch (level) {
4758                         case NETR_DELTA_DOMAIN: {
4759                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4760                         break; }
4761
4762                         case NETR_DELTA_GROUP: {
4763                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4764                         break; }
4765
4766                         case NETR_DELTA_DELETE_GROUP: {
4767                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4768                         break; }
4769
4770                         case NETR_DELTA_RENAME_GROUP: {
4771                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4772                         break; }
4773
4774                         case NETR_DELTA_USER: {
4775                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4776                         break; }
4777
4778                         case NETR_DELTA_DELETE_USER: {
4779                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4780                         break; }
4781
4782                         case NETR_DELTA_RENAME_USER: {
4783                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4784                         break; }
4785
4786                         case NETR_DELTA_GROUP_MEMBER: {
4787                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4788                         break; }
4789
4790                         case NETR_DELTA_ALIAS: {
4791                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4792                         break; }
4793
4794                         case NETR_DELTA_DELETE_ALIAS: {
4795                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4796                         break; }
4797
4798                         case NETR_DELTA_RENAME_ALIAS: {
4799                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4800                         break; }
4801
4802                         case NETR_DELTA_ALIAS_MEMBER: {
4803                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4804                         break; }
4805
4806                         case NETR_DELTA_POLICY: {
4807                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4808                         break; }
4809
4810                         case NETR_DELTA_TRUSTED_DOMAIN: {
4811                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4812                         break; }
4813
4814                         case NETR_DELTA_DELETE_TRUST: {
4815                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4816                         break; }
4817
4818                         case NETR_DELTA_ACCOUNT: {
4819                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4820                         break; }
4821
4822                         case NETR_DELTA_DELETE_ACCOUNT: {
4823                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4824                         break; }
4825
4826                         case NETR_DELTA_SECRET: {
4827                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4828                         break; }
4829
4830                         case NETR_DELTA_DELETE_SECRET: {
4831                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4832                         break; }
4833
4834                         case NETR_DELTA_DELETE_GROUP2: {
4835                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4836                         break; }
4837
4838                         case NETR_DELTA_DELETE_USER2: {
4839                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4840                         break; }
4841
4842                         case NETR_DELTA_MODIFY_COUNT: {
4843                         break; }
4844
4845                         default:
4846                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4847                 }
4848         }
4849         if (ndr_flags & NDR_BUFFERS) {
4850                 int level = ndr_push_get_switch_value(ndr, r);
4851                 switch (level) {
4852                         case NETR_DELTA_DOMAIN:
4853                         break;
4854
4855                         case NETR_DELTA_GROUP:
4856                         break;
4857
4858                         case NETR_DELTA_DELETE_GROUP:
4859                         break;
4860
4861                         case NETR_DELTA_RENAME_GROUP:
4862                         break;
4863
4864                         case NETR_DELTA_USER:
4865                         break;
4866
4867                         case NETR_DELTA_DELETE_USER:
4868                         break;
4869
4870                         case NETR_DELTA_RENAME_USER:
4871                         break;
4872
4873                         case NETR_DELTA_GROUP_MEMBER:
4874                         break;
4875
4876                         case NETR_DELTA_ALIAS:
4877                         break;
4878
4879                         case NETR_DELTA_DELETE_ALIAS:
4880                         break;
4881
4882                         case NETR_DELTA_RENAME_ALIAS:
4883                         break;
4884
4885                         case NETR_DELTA_ALIAS_MEMBER:
4886                         break;
4887
4888                         case NETR_DELTA_POLICY:
4889                                 if (r->sid) {
4890                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4891                                 }
4892                         break;
4893
4894                         case NETR_DELTA_TRUSTED_DOMAIN:
4895                                 if (r->sid) {
4896                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4897                                 }
4898                         break;
4899
4900                         case NETR_DELTA_DELETE_TRUST:
4901                                 if (r->sid) {
4902                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4903                                 }
4904                         break;
4905
4906                         case NETR_DELTA_ACCOUNT:
4907                                 if (r->sid) {
4908                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4909                                 }
4910                         break;
4911
4912                         case NETR_DELTA_DELETE_ACCOUNT:
4913                                 if (r->sid) {
4914                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4915                                 }
4916                         break;
4917
4918                         case NETR_DELTA_SECRET:
4919                                 if (r->name) {
4920                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4921                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4922                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4923                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4924                                 }
4925                         break;
4926
4927                         case NETR_DELTA_DELETE_SECRET:
4928                                 if (r->name) {
4929                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4930                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4931                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4932                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4933                                 }
4934                         break;
4935
4936                         case NETR_DELTA_DELETE_GROUP2:
4937                         break;
4938
4939                         case NETR_DELTA_DELETE_USER2:
4940                         break;
4941
4942                         case NETR_DELTA_MODIFY_COUNT:
4943                         break;
4944
4945                         default:
4946                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4947                 }
4948         }
4949         return NDR_ERR_SUCCESS;
4950 }
4951
4952 static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_ID_UNION *r)
4953 {
4954         int level;
4955         uint16_t _level;
4956         TALLOC_CTX *_mem_save_sid_0;
4957         TALLOC_CTX *_mem_save_name_0;
4958         level = ndr_pull_get_switch_value(ndr, r);
4959         if (ndr_flags & NDR_SCALARS) {
4960                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4961                 if (_level != level) {
4962                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4963                 }
4964                 switch (level) {
4965                         case NETR_DELTA_DOMAIN: {
4966                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4967                         break; }
4968
4969                         case NETR_DELTA_GROUP: {
4970                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4971                         break; }
4972
4973                         case NETR_DELTA_DELETE_GROUP: {
4974                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4975                         break; }
4976
4977                         case NETR_DELTA_RENAME_GROUP: {
4978                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4979                         break; }
4980
4981                         case NETR_DELTA_USER: {
4982                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4983                         break; }
4984
4985                         case NETR_DELTA_DELETE_USER: {
4986                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4987                         break; }
4988
4989                         case NETR_DELTA_RENAME_USER: {
4990                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4991                         break; }
4992
4993                         case NETR_DELTA_GROUP_MEMBER: {
4994                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4995                         break; }
4996
4997                         case NETR_DELTA_ALIAS: {
4998                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4999                         break; }
5000
5001                         case NETR_DELTA_DELETE_ALIAS: {
5002                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5003                         break; }
5004
5005                         case NETR_DELTA_RENAME_ALIAS: {
5006                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5007                         break; }
5008
5009                         case NETR_DELTA_ALIAS_MEMBER: {
5010                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5011                         break; }
5012
5013                         case NETR_DELTA_POLICY: {
5014                                 uint32_t _ptr_sid;
5015                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5016                                 if (_ptr_sid) {
5017                                         NDR_PULL_ALLOC(ndr, r->sid);
5018                                 } else {
5019                                         r->sid = NULL;
5020                                 }
5021                         break; }
5022
5023                         case NETR_DELTA_TRUSTED_DOMAIN: {
5024                                 uint32_t _ptr_sid;
5025                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5026                                 if (_ptr_sid) {
5027                                         NDR_PULL_ALLOC(ndr, r->sid);
5028                                 } else {
5029                                         r->sid = NULL;
5030                                 }
5031                         break; }
5032
5033                         case NETR_DELTA_DELETE_TRUST: {
5034                                 uint32_t _ptr_sid;
5035                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5036                                 if (_ptr_sid) {
5037                                         NDR_PULL_ALLOC(ndr, r->sid);
5038                                 } else {
5039                                         r->sid = NULL;
5040                                 }
5041                         break; }
5042
5043                         case NETR_DELTA_ACCOUNT: {
5044                                 uint32_t _ptr_sid;
5045                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5046                                 if (_ptr_sid) {
5047                                         NDR_PULL_ALLOC(ndr, r->sid);
5048                                 } else {
5049                                         r->sid = NULL;
5050                                 }
5051                         break; }
5052
5053                         case NETR_DELTA_DELETE_ACCOUNT: {
5054                                 uint32_t _ptr_sid;
5055                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5056                                 if (_ptr_sid) {
5057                                         NDR_PULL_ALLOC(ndr, r->sid);
5058                                 } else {
5059                                         r->sid = NULL;
5060                                 }
5061                         break; }
5062
5063                         case NETR_DELTA_SECRET: {
5064                                 uint32_t _ptr_name;
5065                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
5066                                 if (_ptr_name) {
5067                                         NDR_PULL_ALLOC(ndr, r->name);
5068                                 } else {
5069                                         r->name = NULL;
5070                                 }
5071                         break; }
5072
5073                         case NETR_DELTA_DELETE_SECRET: {
5074                                 uint32_t _ptr_name;
5075                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
5076                                 if (_ptr_name) {
5077                                         NDR_PULL_ALLOC(ndr, r->name);
5078                                 } else {
5079                                         r->name = NULL;
5080                                 }
5081                         break; }
5082
5083                         case NETR_DELTA_DELETE_GROUP2: {
5084                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5085                         break; }
5086
5087                         case NETR_DELTA_DELETE_USER2: {
5088                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5089                         break; }
5090
5091                         case NETR_DELTA_MODIFY_COUNT: {
5092                         break; }
5093
5094                         default:
5095                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5096                 }
5097         }
5098         if (ndr_flags & NDR_BUFFERS) {
5099                 switch (level) {
5100                         case NETR_DELTA_DOMAIN:
5101                         break;
5102
5103                         case NETR_DELTA_GROUP:
5104                         break;
5105
5106                         case NETR_DELTA_DELETE_GROUP:
5107                         break;
5108
5109                         case NETR_DELTA_RENAME_GROUP:
5110                         break;
5111
5112                         case NETR_DELTA_USER:
5113                         break;
5114
5115                         case NETR_DELTA_DELETE_USER:
5116                         break;
5117
5118                         case NETR_DELTA_RENAME_USER:
5119                         break;
5120
5121                         case NETR_DELTA_GROUP_MEMBER:
5122                         break;
5123
5124                         case NETR_DELTA_ALIAS:
5125                         break;
5126
5127                         case NETR_DELTA_DELETE_ALIAS:
5128                         break;
5129
5130                         case NETR_DELTA_RENAME_ALIAS:
5131                         break;
5132
5133                         case NETR_DELTA_ALIAS_MEMBER:
5134                         break;
5135
5136                         case NETR_DELTA_POLICY:
5137                                 if (r->sid) {
5138                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5139                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5140                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5141                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5142                                 }
5143                         break;
5144
5145                         case NETR_DELTA_TRUSTED_DOMAIN:
5146                                 if (r->sid) {
5147                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5148                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5149                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5150                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5151                                 }
5152                         break;
5153
5154                         case NETR_DELTA_DELETE_TRUST:
5155                                 if (r->sid) {
5156                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5157                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5158                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5159                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5160                                 }
5161                         break;
5162
5163                         case NETR_DELTA_ACCOUNT:
5164                                 if (r->sid) {
5165                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5166                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5167                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5168                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5169                                 }
5170                         break;
5171
5172                         case NETR_DELTA_DELETE_ACCOUNT:
5173                                 if (r->sid) {
5174                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5175                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5176                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5177                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5178                                 }
5179                         break;
5180
5181                         case NETR_DELTA_SECRET:
5182                                 if (r->name) {
5183                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5184                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5185                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5186                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5187                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5188                                                 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));
5189                                         }
5190                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5191                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5192                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5193                                 }
5194                         break;
5195
5196                         case NETR_DELTA_DELETE_SECRET:
5197                                 if (r->name) {
5198                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5199                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5200                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5201                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5202                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5203                                                 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));
5204                                         }
5205                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5206                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5207                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5208                                 }
5209                         break;
5210
5211                         case NETR_DELTA_DELETE_GROUP2:
5212                         break;
5213
5214                         case NETR_DELTA_DELETE_USER2:
5215                         break;
5216
5217                         case NETR_DELTA_MODIFY_COUNT:
5218                         break;
5219
5220                         default:
5221                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5222                 }
5223         }
5224         return NDR_ERR_SUCCESS;
5225 }
5226
5227 _PUBLIC_ void ndr_print_netr_DELTA_ID_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_ID_UNION *r)
5228 {
5229         int level;
5230         level = ndr_print_get_switch_value(ndr, r);
5231         ndr_print_union(ndr, name, level, "netr_DELTA_ID_UNION");
5232         switch (level) {
5233                 case NETR_DELTA_DOMAIN:
5234                         ndr_print_uint32(ndr, "rid", r->rid);
5235                 break;
5236
5237                 case NETR_DELTA_GROUP:
5238                         ndr_print_uint32(ndr, "rid", r->rid);
5239                 break;
5240
5241                 case NETR_DELTA_DELETE_GROUP:
5242                         ndr_print_uint32(ndr, "rid", r->rid);
5243                 break;
5244
5245                 case NETR_DELTA_RENAME_GROUP:
5246                         ndr_print_uint32(ndr, "rid", r->rid);
5247                 break;
5248
5249                 case NETR_DELTA_USER:
5250                         ndr_print_uint32(ndr, "rid", r->rid);
5251                 break;
5252
5253                 case NETR_DELTA_DELETE_USER:
5254                         ndr_print_uint32(ndr, "rid", r->rid);
5255                 break;
5256
5257                 case NETR_DELTA_RENAME_USER:
5258                         ndr_print_uint32(ndr, "rid", r->rid);
5259                 break;
5260
5261                 case NETR_DELTA_GROUP_MEMBER:
5262                         ndr_print_uint32(ndr, "rid", r->rid);
5263                 break;
5264
5265                 case NETR_DELTA_ALIAS:
5266                         ndr_print_uint32(ndr, "rid", r->rid);
5267                 break;
5268
5269                 case NETR_DELTA_DELETE_ALIAS:
5270                         ndr_print_uint32(ndr, "rid", r->rid);
5271                 break;
5272
5273                 case NETR_DELTA_RENAME_ALIAS:
5274                         ndr_print_uint32(ndr, "rid", r->rid);
5275                 break;
5276
5277                 case NETR_DELTA_ALIAS_MEMBER:
5278                         ndr_print_uint32(ndr, "rid", r->rid);
5279                 break;
5280
5281                 case NETR_DELTA_POLICY:
5282                         ndr_print_ptr(ndr, "sid", r->sid);
5283                         ndr->depth++;
5284                         if (r->sid) {
5285                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5286                         }
5287                         ndr->depth--;
5288                 break;
5289
5290                 case NETR_DELTA_TRUSTED_DOMAIN:
5291                         ndr_print_ptr(ndr, "sid", r->sid);
5292                         ndr->depth++;
5293                         if (r->sid) {
5294                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5295                         }
5296                         ndr->depth--;
5297                 break;
5298
5299                 case NETR_DELTA_DELETE_TRUST:
5300                         ndr_print_ptr(ndr, "sid", r->sid);
5301                         ndr->depth++;
5302                         if (r->sid) {
5303                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5304                         }
5305                         ndr->depth--;
5306                 break;
5307
5308                 case NETR_DELTA_ACCOUNT:
5309                         ndr_print_ptr(ndr, "sid", r->sid);
5310                         ndr->depth++;
5311                         if (r->sid) {
5312                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5313                         }
5314                         ndr->depth--;
5315                 break;
5316
5317                 case NETR_DELTA_DELETE_ACCOUNT:
5318                         ndr_print_ptr(ndr, "sid", r->sid);
5319                         ndr->depth++;
5320                         if (r->sid) {
5321                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5322                         }
5323                         ndr->depth--;
5324                 break;
5325
5326                 case NETR_DELTA_SECRET:
5327                         ndr_print_ptr(ndr, "name", r->name);
5328                         ndr->depth++;
5329                         if (r->name) {
5330                                 ndr_print_string(ndr, "name", r->name);
5331                         }
5332                         ndr->depth--;
5333                 break;
5334
5335                 case NETR_DELTA_DELETE_SECRET:
5336                         ndr_print_ptr(ndr, "name", r->name);
5337                         ndr->depth++;
5338                         if (r->name) {
5339                                 ndr_print_string(ndr, "name", r->name);
5340                         }
5341                         ndr->depth--;
5342                 break;
5343
5344                 case NETR_DELTA_DELETE_GROUP2:
5345                         ndr_print_uint32(ndr, "rid", r->rid);
5346                 break;
5347
5348                 case NETR_DELTA_DELETE_USER2:
5349                         ndr_print_uint32(ndr, "rid", r->rid);
5350                 break;
5351
5352                 case NETR_DELTA_MODIFY_COUNT:
5353                 break;
5354
5355                 default:
5356                         ndr_print_bad_level(ndr, name, level);
5357         }
5358 }
5359
5360 static enum ndr_err_code ndr_push_netr_DELTA_ENUM(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM *r)
5361 {
5362         if (ndr_flags & NDR_SCALARS) {
5363                 NDR_CHECK(ndr_push_align(ndr, 4));
5364                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, r->delta_type));
5365                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5366                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5367                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_union, r->delta_type));
5368                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5369         }
5370         if (ndr_flags & NDR_BUFFERS) {
5371                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5372                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5373         }
5374         return NDR_ERR_SUCCESS;
5375 }
5376
5377 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM *r)
5378 {
5379         if (ndr_flags & NDR_SCALARS) {
5380                 NDR_CHECK(ndr_pull_align(ndr, 4));
5381                 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr, NDR_SCALARS, &r->delta_type));
5382                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5383                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5384                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_union, r->delta_type));
5385                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5386         }
5387         if (ndr_flags & NDR_BUFFERS) {
5388                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5389                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5390         }
5391         return NDR_ERR_SUCCESS;
5392 }
5393
5394 _PUBLIC_ void ndr_print_netr_DELTA_ENUM(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM *r)
5395 {
5396         ndr_print_struct(ndr, name, "netr_DELTA_ENUM");
5397         ndr->depth++;
5398         ndr_print_netr_DeltaEnum(ndr, "delta_type", r->delta_type);
5399         ndr_print_set_switch_value(ndr, &r->delta_id_union, r->delta_type);
5400         ndr_print_netr_DELTA_ID_UNION(ndr, "delta_id_union", &r->delta_id_union);
5401         ndr_print_set_switch_value(ndr, &r->delta_union, r->delta_type);
5402         ndr_print_netr_DELTA_UNION(ndr, "delta_union", &r->delta_union);
5403         ndr->depth--;
5404 }
5405
5406 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)
5407 {
5408         uint32_t cntr_delta_enum_1;
5409         if (ndr_flags & NDR_SCALARS) {
5410                 NDR_CHECK(ndr_push_align(ndr, 4));
5411                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5412                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delta_enum));
5413         }
5414         if (ndr_flags & NDR_BUFFERS) {
5415                 if (r->delta_enum) {
5416                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5417                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5418                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5419                         }
5420                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5421                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5422                         }
5423                 }
5424         }
5425         return NDR_ERR_SUCCESS;
5426 }
5427
5428 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r)
5429 {
5430         uint32_t _ptr_delta_enum;
5431         uint32_t cntr_delta_enum_1;
5432         TALLOC_CTX *_mem_save_delta_enum_0;
5433         TALLOC_CTX *_mem_save_delta_enum_1;
5434         if (ndr_flags & NDR_SCALARS) {
5435                 NDR_CHECK(ndr_pull_align(ndr, 4));
5436                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_deltas));
5437                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum));
5438                 if (_ptr_delta_enum) {
5439                         NDR_PULL_ALLOC(ndr, r->delta_enum);
5440                 } else {
5441                         r->delta_enum = NULL;
5442                 }
5443         }
5444         if (ndr_flags & NDR_BUFFERS) {
5445                 if (r->delta_enum) {
5446                         _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr);
5447                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5448                         NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum));
5449                         NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum));
5450                         _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr);
5451                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5452                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5453                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5454                         }
5455                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5456                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5457                         }
5458                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0);
5459                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_0, 0);
5460                 }
5461                 if (r->delta_enum) {
5462                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delta_enum, r->num_deltas));
5463                 }
5464         }
5465         return NDR_ERR_SUCCESS;
5466 }
5467
5468 _PUBLIC_ void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM_ARRAY *r)
5469 {
5470         uint32_t cntr_delta_enum_1;
5471         ndr_print_struct(ndr, name, "netr_DELTA_ENUM_ARRAY");
5472         ndr->depth++;
5473         ndr_print_uint32(ndr, "num_deltas", r->num_deltas);
5474         ndr_print_ptr(ndr, "delta_enum", r->delta_enum);
5475         ndr->depth++;
5476         if (r->delta_enum) {
5477                 ndr->print(ndr, "%s: ARRAY(%d)", "delta_enum", (int)r->num_deltas);
5478                 ndr->depth++;
5479                 for (cntr_delta_enum_1=0;cntr_delta_enum_1<r->num_deltas;cntr_delta_enum_1++) {
5480                         char *idx_1=NULL;
5481                         if (asprintf(&idx_1, "[%d]", cntr_delta_enum_1) != -1) {
5482                                 ndr_print_netr_DELTA_ENUM(ndr, "delta_enum", &r->delta_enum[cntr_delta_enum_1]);
5483                                 free(idx_1);
5484                         }
5485                 }
5486                 ndr->depth--;
5487         }
5488         ndr->depth--;
5489         ndr->depth--;
5490 }
5491
5492 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)
5493 {
5494         {
5495                 uint32_t _flags_save_STRUCT = ndr->flags;
5496                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5497                 if (ndr_flags & NDR_SCALARS) {
5498                         NDR_CHECK(ndr_push_align(ndr, 4));
5499                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5500                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timecreated));
5501                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number));
5502                 }
5503                 if (ndr_flags & NDR_BUFFERS) {
5504                 }
5505                 ndr->flags = _flags_save_STRUCT;
5506         }
5507         return NDR_ERR_SUCCESS;
5508 }
5509
5510 static enum ndr_err_code ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r)
5511 {
5512         {
5513                 uint32_t _flags_save_STRUCT = ndr->flags;
5514                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5515                 if (ndr_flags & NDR_SCALARS) {
5516                         NDR_CHECK(ndr_pull_align(ndr, 4));
5517                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5518                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated));
5519                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number));
5520                 }
5521                 if (ndr_flags & NDR_BUFFERS) {
5522                 }
5523                 ndr->flags = _flags_save_STRUCT;
5524         }
5525         return NDR_ERR_SUCCESS;
5526 }
5527
5528 _PUBLIC_ void ndr_print_netr_UAS_INFO_0(struct ndr_print *ndr, const char *name, const struct netr_UAS_INFO_0 *r)
5529 {
5530         ndr_print_struct(ndr, name, "netr_UAS_INFO_0");
5531         {
5532                 uint32_t _flags_save_STRUCT = ndr->flags;
5533                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5534                 ndr->depth++;
5535                 ndr_print_array_uint8(ndr, "computer_name", r->computer_name, 16);
5536                 ndr_print_uint32(ndr, "timecreated", r->timecreated);
5537                 ndr_print_uint32(ndr, "serial_number", r->serial_number);
5538                 ndr->depth--;
5539                 ndr->flags = _flags_save_STRUCT;
5540         }
5541 }
5542
5543 static enum ndr_err_code ndr_push_netr_AccountBuffer(struct ndr_push *ndr, int ndr_flags, const struct netr_AccountBuffer *r)
5544 {
5545         if (ndr_flags & NDR_SCALARS) {
5546                 NDR_CHECK(ndr_push_align(ndr, 4));
5547                 {
5548                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5549                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5550                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
5551                         ndr->flags = _flags_save_DATA_BLOB;
5552                 }
5553         }
5554         if (ndr_flags & NDR_BUFFERS) {
5555         }
5556         return NDR_ERR_SUCCESS;
5557 }
5558
5559 static enum ndr_err_code ndr_pull_netr_AccountBuffer(struct ndr_pull *ndr, int ndr_flags, struct netr_AccountBuffer *r)
5560 {
5561         if (ndr_flags & NDR_SCALARS) {
5562                 NDR_CHECK(ndr_pull_align(ndr, 4));
5563                 {
5564                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5565                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5566                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
5567                         ndr->flags = _flags_save_DATA_BLOB;
5568                 }
5569         }
5570         if (ndr_flags & NDR_BUFFERS) {
5571         }
5572         return NDR_ERR_SUCCESS;
5573 }
5574
5575 _PUBLIC_ void ndr_print_netr_AccountBuffer(struct ndr_print *ndr, const char *name, const struct netr_AccountBuffer *r)
5576 {
5577         ndr_print_struct(ndr, name, "netr_AccountBuffer");
5578         ndr->depth++;
5579         ndr_print_DATA_BLOB(ndr, "blob", r->blob);
5580         ndr->depth--;
5581 }
5582
5583 static enum ndr_err_code ndr_push_netr_InfoFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
5584 {
5585         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5586         return NDR_ERR_SUCCESS;
5587 }
5588
5589 static enum ndr_err_code ndr_pull_netr_InfoFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
5590 {
5591         uint32_t v;
5592         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5593         *r = v;
5594         return NDR_ERR_SUCCESS;
5595 }
5596
5597 _PUBLIC_ void ndr_print_netr_InfoFlags(struct ndr_print *ndr, const char *name, uint32_t r)
5598 {
5599         ndr_print_uint32(ndr, name, r);
5600         ndr->depth++;
5601         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_NEEDED", NETLOGON_CTRL_REPL_NEEDED, r);
5602         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_IN_PROGRESS", NETLOGON_CTRL_REPL_IN_PROGRESS, r);
5603         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_FULL_SYNC", NETLOGON_CTRL_REPL_FULL_SYNC, r);
5604         ndr->depth--;
5605 }
5606
5607 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)
5608 {
5609         if (ndr_flags & NDR_SCALARS) {
5610                 NDR_CHECK(ndr_push_align(ndr, 4));
5611                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5612                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5613         }
5614         if (ndr_flags & NDR_BUFFERS) {
5615         }
5616         return NDR_ERR_SUCCESS;
5617 }
5618
5619 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_1 *r)
5620 {
5621         if (ndr_flags & NDR_SCALARS) {
5622                 NDR_CHECK(ndr_pull_align(ndr, 4));
5623                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5624                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5625         }
5626         if (ndr_flags & NDR_BUFFERS) {
5627         }
5628         return NDR_ERR_SUCCESS;
5629 }
5630
5631 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_1 *r)
5632 {
5633         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_1");
5634         ndr->depth++;
5635         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5636         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5637         ndr->depth--;
5638 }
5639
5640 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)
5641 {
5642         if (ndr_flags & NDR_SCALARS) {
5643                 NDR_CHECK(ndr_push_align(ndr, 4));
5644                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5645                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5646                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_dc_name));
5647                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->tc_connection_status));
5648         }
5649         if (ndr_flags & NDR_BUFFERS) {
5650                 if (r->trusted_dc_name) {
5651                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5652                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5653                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5654                         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));
5655                 }
5656         }
5657         return NDR_ERR_SUCCESS;
5658 }
5659
5660 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r)
5661 {
5662         uint32_t _ptr_trusted_dc_name;
5663         TALLOC_CTX *_mem_save_trusted_dc_name_0;
5664         if (ndr_flags & NDR_SCALARS) {
5665                 NDR_CHECK(ndr_pull_align(ndr, 4));
5666                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5667                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5668                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_dc_name));
5669                 if (_ptr_trusted_dc_name) {
5670                         NDR_PULL_ALLOC(ndr, r->trusted_dc_name);
5671                 } else {
5672                         r->trusted_dc_name = NULL;
5673                 }
5674                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->tc_connection_status));
5675         }
5676         if (ndr_flags & NDR_BUFFERS) {
5677                 if (r->trusted_dc_name) {
5678                         _mem_save_trusted_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5679                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0);
5680                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5681                         NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5682                         if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5683                                 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));
5684                         }
5685                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5686                         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));
5687                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0);
5688                 }
5689         }
5690         return NDR_ERR_SUCCESS;
5691 }
5692
5693 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_2 *r)
5694 {
5695         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_2");
5696         ndr->depth++;
5697         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5698         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5699         ndr_print_ptr(ndr, "trusted_dc_name", r->trusted_dc_name);
5700         ndr->depth++;
5701         if (r->trusted_dc_name) {
5702                 ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5703         }
5704         ndr->depth--;
5705         ndr_print_uint32(ndr, "tc_connection_status", r->tc_connection_status);
5706         ndr->depth--;
5707 }
5708
5709 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)
5710 {
5711         if (ndr_flags & NDR_SCALARS) {
5712                 NDR_CHECK(ndr_push_align(ndr, 4));
5713                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5714                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_attempts));
5715                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
5716                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
5717                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
5718                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
5719                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
5720         }
5721         if (ndr_flags & NDR_BUFFERS) {
5722         }
5723         return NDR_ERR_SUCCESS;
5724 }
5725
5726 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_3 *r)
5727 {
5728         if (ndr_flags & NDR_SCALARS) {
5729                 NDR_CHECK(ndr_pull_align(ndr, 4));
5730                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5731                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_attempts));
5732                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
5733                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
5734                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
5735                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
5736                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
5737         }
5738         if (ndr_flags & NDR_BUFFERS) {
5739         }
5740         return NDR_ERR_SUCCESS;
5741 }
5742
5743 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_3 *r)
5744 {
5745         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_3");
5746         ndr->depth++;
5747         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5748         ndr_print_uint32(ndr, "logon_attempts", r->logon_attempts);
5749         ndr_print_uint32(ndr, "unknown1", r->unknown1);
5750         ndr_print_uint32(ndr, "unknown2", r->unknown2);
5751         ndr_print_uint32(ndr, "unknown3", r->unknown3);
5752         ndr_print_uint32(ndr, "unknown4", r->unknown4);
5753         ndr_print_uint32(ndr, "unknown5", r->unknown5);
5754         ndr->depth--;
5755 }
5756
5757 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)
5758 {
5759         if (ndr_flags & NDR_SCALARS) {
5760                 int level = ndr_push_get_switch_value(ndr, r);
5761                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5762                 switch (level) {
5763                         case 1: {
5764                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5765                         break; }
5766
5767                         case 2: {
5768                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5769                         break; }
5770
5771                         case 3: {
5772                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5773                         break; }
5774
5775                         default:
5776                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5777                 }
5778         }
5779         if (ndr_flags & NDR_BUFFERS) {
5780                 int level = ndr_push_get_switch_value(ndr, r);
5781                 switch (level) {
5782                         case 1:
5783                                 if (r->info1) {
5784                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5785                                 }
5786                         break;
5787
5788                         case 2:
5789                                 if (r->info2) {
5790                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5791                                 }
5792                         break;
5793
5794                         case 3:
5795                                 if (r->info3) {
5796                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5797                                 }
5798                         break;
5799
5800                         default:
5801                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5802                 }
5803         }
5804         return NDR_ERR_SUCCESS;
5805 }
5806
5807 static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_QUERY_INFORMATION *r)
5808 {
5809         int level;
5810         uint32_t _level;
5811         TALLOC_CTX *_mem_save_info1_0;
5812         TALLOC_CTX *_mem_save_info2_0;
5813         TALLOC_CTX *_mem_save_info3_0;
5814         level = ndr_pull_get_switch_value(ndr, r);
5815         if (ndr_flags & NDR_SCALARS) {
5816                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5817                 if (_level != level) {
5818                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5819                 }
5820                 switch (level) {
5821                         case 1: {
5822                                 uint32_t _ptr_info1;
5823                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5824                                 if (_ptr_info1) {
5825                                         NDR_PULL_ALLOC(ndr, r->info1);
5826                                 } else {
5827                                         r->info1 = NULL;
5828                                 }
5829                         break; }
5830
5831                         case 2: {
5832                                 uint32_t _ptr_info2;
5833                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5834                                 if (_ptr_info2) {
5835                                         NDR_PULL_ALLOC(ndr, r->info2);
5836                                 } else {
5837                                         r->info2 = NULL;
5838                                 }
5839                         break; }
5840
5841                         case 3: {
5842                                 uint32_t _ptr_info3;
5843                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5844                                 if (_ptr_info3) {
5845                                         NDR_PULL_ALLOC(ndr, r->info3);
5846                                 } else {
5847                                         r->info3 = NULL;
5848                                 }
5849                         break; }
5850
5851                         default:
5852                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5853                 }
5854         }
5855         if (ndr_flags & NDR_BUFFERS) {
5856                 switch (level) {
5857                         case 1:
5858                                 if (r->info1) {
5859                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5860                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5861                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5862                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5863                                 }
5864                         break;
5865
5866                         case 2:
5867                                 if (r->info2) {
5868                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5869                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5870                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5871                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5872                                 }
5873                         break;
5874
5875                         case 3:
5876                                 if (r->info3) {
5877                                         _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5878                                         NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5879                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5880                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5881                                 }
5882                         break;
5883
5884                         default:
5885                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5886                 }
5887         }
5888         return NDR_ERR_SUCCESS;
5889 }
5890
5891 _PUBLIC_ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_QUERY_INFORMATION *r)
5892 {
5893         int level;
5894         level = ndr_print_get_switch_value(ndr, r);
5895         ndr_print_union(ndr, name, level, "netr_CONTROL_QUERY_INFORMATION");
5896         switch (level) {
5897                 case 1:
5898                         ndr_print_ptr(ndr, "info1", r->info1);
5899                         ndr->depth++;
5900                         if (r->info1) {
5901                                 ndr_print_netr_NETLOGON_INFO_1(ndr, "info1", r->info1);
5902                         }
5903                         ndr->depth--;
5904                 break;
5905
5906                 case 2:
5907                         ndr_print_ptr(ndr, "info2", r->info2);
5908                         ndr->depth++;
5909                         if (r->info2) {
5910                                 ndr_print_netr_NETLOGON_INFO_2(ndr, "info2", r->info2);
5911                         }
5912                         ndr->depth--;
5913                 break;
5914
5915                 case 3:
5916                         ndr_print_ptr(ndr, "info3", r->info3);
5917                         ndr->depth++;
5918                         if (r->info3) {
5919                                 ndr_print_netr_NETLOGON_INFO_3(ndr, "info3", r->info3);
5920                         }
5921                         ndr->depth--;
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_LogonControlCode(struct ndr_push *ndr, int ndr_flags, enum netr_LogonControlCode 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_LogonControlCode(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonControlCode *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_LogonControlCode(struct ndr_print *ndr, const char *name, enum netr_LogonControlCode r)
5944 {
5945         const char *val = NULL;
5946
5947         switch (r) {
5948                 case NETLOGON_CONTROL_SYNC: val = "NETLOGON_CONTROL_SYNC"; break;
5949                 case NETLOGON_CONTROL_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break;
5950                 case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break;
5951                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
5952                 case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break;
5953         }
5954         ndr_print_enum(ndr, name, "ENUM", val, r);
5955 }
5956
5957 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)
5958 {
5959         if (ndr_flags & NDR_SCALARS) {
5960                 int level = ndr_push_get_switch_value(ndr, r);
5961                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5962                 switch (level) {
5963                         case NETLOGON_CONTROL_REDISCOVER: {
5964                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5965                         break; }
5966
5967                         case NETLOGON_CONTROL_TC_QUERY: {
5968                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5969                         break; }
5970
5971                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5972                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5973                         break; }
5974
5975                         case NETLOGON_CONTROL_SET_DBFLAG: {
5976                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level));
5977                         break; }
5978
5979                         default:
5980                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5981                 }
5982         }
5983         if (ndr_flags & NDR_BUFFERS) {
5984                 int level = ndr_push_get_switch_value(ndr, r);
5985                 switch (level) {
5986                         case NETLOGON_CONTROL_REDISCOVER:
5987                                 if (r->domain) {
5988                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5989                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5990                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5991                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5992                                 }
5993                         break;
5994
5995                         case NETLOGON_CONTROL_TC_QUERY:
5996                                 if (r->domain) {
5997                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5998                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5999                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6000                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6001                                 }
6002                         break;
6003
6004                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6005                                 if (r->domain) {
6006                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6007                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6008                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6009                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6010                                 }
6011                         break;
6012
6013                         case NETLOGON_CONTROL_SET_DBFLAG:
6014                         break;
6015
6016                         default:
6017                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6018                 }
6019         }
6020         return NDR_ERR_SUCCESS;
6021 }
6022
6023 static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r)
6024 {
6025         int level;
6026         uint32_t _level;
6027         TALLOC_CTX *_mem_save_domain_0;
6028         level = ndr_pull_get_switch_value(ndr, r);
6029         if (ndr_flags & NDR_SCALARS) {
6030                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6031                 if (_level != level) {
6032                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6033                 }
6034                 switch (level) {
6035                         case NETLOGON_CONTROL_REDISCOVER: {
6036                                 uint32_t _ptr_domain;
6037                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6038                                 if (_ptr_domain) {
6039                                         NDR_PULL_ALLOC(ndr, r->domain);
6040                                 } else {
6041                                         r->domain = NULL;
6042                                 }
6043                         break; }
6044
6045                         case NETLOGON_CONTROL_TC_QUERY: {
6046                                 uint32_t _ptr_domain;
6047                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6048                                 if (_ptr_domain) {
6049                                         NDR_PULL_ALLOC(ndr, r->domain);
6050                                 } else {
6051                                         r->domain = NULL;
6052                                 }
6053                         break; }
6054
6055                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
6056                                 uint32_t _ptr_domain;
6057                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6058                                 if (_ptr_domain) {
6059                                         NDR_PULL_ALLOC(ndr, r->domain);
6060                                 } else {
6061                                         r->domain = NULL;
6062                                 }
6063                         break; }
6064
6065                         case NETLOGON_CONTROL_SET_DBFLAG: {
6066                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level));
6067                         break; }
6068
6069                         default:
6070                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6071                 }
6072         }
6073         if (ndr_flags & NDR_BUFFERS) {
6074                 switch (level) {
6075                         case NETLOGON_CONTROL_REDISCOVER:
6076                                 if (r->domain) {
6077                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6078                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6079                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6080                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6081                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6082                                                 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));
6083                                         }
6084                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6085                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6086                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6087                                 }
6088                         break;
6089
6090                         case NETLOGON_CONTROL_TC_QUERY:
6091                                 if (r->domain) {
6092                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6093                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6094                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6095                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6096                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6097                                                 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));
6098                                         }
6099                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6100                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6101                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6102                                 }
6103                         break;
6104
6105                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6106                                 if (r->domain) {
6107                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6108                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6109                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6110                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6111                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6112                                                 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));
6113                                         }
6114                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6115                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6116                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6117                                 }
6118                         break;
6119
6120                         case NETLOGON_CONTROL_SET_DBFLAG:
6121                         break;
6122
6123                         default:
6124                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6125                 }
6126         }
6127         return NDR_ERR_SUCCESS;
6128 }
6129
6130 _PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r)
6131 {
6132         int level;
6133         level = ndr_print_get_switch_value(ndr, r);
6134         ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION");
6135         switch (level) {
6136                 case NETLOGON_CONTROL_REDISCOVER:
6137                         ndr_print_ptr(ndr, "domain", r->domain);
6138                         ndr->depth++;
6139                         if (r->domain) {
6140                                 ndr_print_string(ndr, "domain", r->domain);
6141                         }
6142                         ndr->depth--;
6143                 break;
6144
6145                 case NETLOGON_CONTROL_TC_QUERY:
6146                         ndr_print_ptr(ndr, "domain", r->domain);
6147                         ndr->depth++;
6148                         if (r->domain) {
6149                                 ndr_print_string(ndr, "domain", r->domain);
6150                         }
6151                         ndr->depth--;
6152                 break;
6153
6154                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6155                         ndr_print_ptr(ndr, "domain", r->domain);
6156                         ndr->depth++;
6157                         if (r->domain) {
6158                                 ndr_print_string(ndr, "domain", r->domain);
6159                         }
6160                         ndr->depth--;
6161                 break;
6162
6163                 case NETLOGON_CONTROL_SET_DBFLAG:
6164                         ndr_print_uint32(ndr, "debug_level", r->debug_level);
6165                 break;
6166
6167                 default:
6168                         ndr_print_bad_level(ndr, name, level);
6169         }
6170 }
6171
6172 static enum ndr_err_code ndr_push_netr_NegotiateFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6173 {
6174         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6175         return NDR_ERR_SUCCESS;
6176 }
6177
6178 static enum ndr_err_code ndr_pull_netr_NegotiateFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6179 {
6180         uint32_t v;
6181         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6182         *r = v;
6183         return NDR_ERR_SUCCESS;
6184 }
6185
6186 _PUBLIC_ void ndr_print_netr_NegotiateFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6187 {
6188         ndr_print_uint32(ndr, name, r);
6189         ndr->depth++;
6190         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT, r);
6191         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL, r);
6192         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR, r);
6193         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT, r);
6194         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC, r);
6195         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL, r);
6196         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS, r);
6197         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO, r);
6198         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL, r);
6199         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC, r);
6200         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH, r);
6201         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC, r);
6202         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL, r);
6203         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL, r);
6204         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_128BIT", NETLOGON_NEG_128BIT, r);
6205         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS, r);
6206         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS, r);
6207         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2, r);
6208         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO, r);
6209         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS, r);
6210         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION, r);
6211         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH, r);
6212         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS, r);
6213         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SCHANNEL", NETLOGON_NEG_SCHANNEL, r);
6214         ndr->depth--;
6215 }
6216
6217 static enum ndr_err_code ndr_push_netr_ChangeLogFlags(struct ndr_push *ndr, int ndr_flags, uint16_t r)
6218 {
6219         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
6220         return NDR_ERR_SUCCESS;
6221 }
6222
6223 static enum ndr_err_code ndr_pull_netr_ChangeLogFlags(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
6224 {
6225         uint16_t v;
6226         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
6227         *r = v;
6228         return NDR_ERR_SUCCESS;
6229 }
6230
6231 _PUBLIC_ void ndr_print_netr_ChangeLogFlags(struct ndr_print *ndr, const char *name, uint16_t r)
6232 {
6233         ndr_print_uint16(ndr, name, r);
6234         ndr->depth++;
6235         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED", NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED, r);
6236         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_CHANGED_PASSWORD", NETR_CHANGELOG_CHANGED_PASSWORD, r);
6237         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_SID_INCLUDED", NETR_CHANGELOG_SID_INCLUDED, r);
6238         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_NAME_INCLUDED", NETR_CHANGELOG_NAME_INCLUDED, r);
6239         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_FIRST_PROMOTION_OBJ", NETR_CHANGELOG_FIRST_PROMOTION_OBJ, r);
6240         ndr->depth--;
6241 }
6242
6243 static enum ndr_err_code ndr_push_netr_ChangeLogObject(struct ndr_push *ndr, int ndr_flags, const union netr_ChangeLogObject *r)
6244 {
6245         if (ndr_flags & NDR_SCALARS) {
6246                 int level = ndr_push_get_switch_value(ndr, r);
6247                 switch (level) {
6248                         case NETR_CHANGELOG_SID_INCLUDED: {
6249                                 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->object_sid));
6250                         break; }
6251
6252                         case NETR_CHANGELOG_NAME_INCLUDED: {
6253                                 {
6254                                         uint32_t _flags_save_string = ndr->flags;
6255                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6256                                         NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->object_name));
6257                                         ndr->flags = _flags_save_string;
6258                                 }
6259                         break; }
6260
6261                         default: {
6262                         break; }
6263
6264                 }
6265         }
6266         if (ndr_flags & NDR_BUFFERS) {
6267                 int level = ndr_push_get_switch_value(ndr, r);
6268                 switch (level) {
6269                         case NETR_CHANGELOG_SID_INCLUDED:
6270                                 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_BUFFERS, &r->object_sid));
6271                         break;
6272
6273                         case NETR_CHANGELOG_NAME_INCLUDED:
6274                         break;
6275
6276                         default:
6277                         break;
6278
6279                 }
6280         }
6281         return NDR_ERR_SUCCESS;
6282 }
6283
6284 static enum ndr_err_code ndr_pull_netr_ChangeLogObject(struct ndr_pull *ndr, int ndr_flags, union netr_ChangeLogObject *r)
6285 {
6286         int level;
6287         level = ndr_pull_get_switch_value(ndr, r);
6288         if (ndr_flags & NDR_SCALARS) {
6289                 switch (level) {
6290                         case NETR_CHANGELOG_SID_INCLUDED: {
6291                                 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->object_sid));
6292                         break; }
6293
6294                         case NETR_CHANGELOG_NAME_INCLUDED: {
6295                                 {
6296                                         uint32_t _flags_save_string = ndr->flags;
6297                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6298                                         NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->object_name));
6299                                         ndr->flags = _flags_save_string;
6300                                 }
6301                         break; }
6302
6303                         default: {
6304                         break; }
6305
6306                 }
6307         }
6308         if (ndr_flags & NDR_BUFFERS) {
6309                 switch (level) {
6310                         case NETR_CHANGELOG_SID_INCLUDED:
6311                                 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_BUFFERS, &r->object_sid));
6312                         break;
6313
6314                         case NETR_CHANGELOG_NAME_INCLUDED:
6315                         break;
6316
6317                         default:
6318                         break;
6319
6320                 }
6321         }
6322         return NDR_ERR_SUCCESS;
6323 }
6324
6325 _PUBLIC_ void ndr_print_netr_ChangeLogObject(struct ndr_print *ndr, const char *name, const union netr_ChangeLogObject *r)
6326 {
6327         int level;
6328         level = ndr_print_get_switch_value(ndr, r);
6329         ndr_print_union(ndr, name, level, "netr_ChangeLogObject");
6330         switch (level) {
6331                 case NETR_CHANGELOG_SID_INCLUDED:
6332                         ndr_print_dom_sid(ndr, "object_sid", &r->object_sid);
6333                 break;
6334
6335                 case NETR_CHANGELOG_NAME_INCLUDED:
6336                         ndr_print_string(ndr, "object_name", r->object_name);
6337                 break;
6338
6339                 default:
6340                 break;
6341
6342         }
6343 }
6344
6345 _PUBLIC_ enum ndr_err_code ndr_push_netr_ChangeLogEntry(struct ndr_push *ndr, int ndr_flags, const struct netr_ChangeLogEntry *r)
6346 {
6347         if (ndr_flags & NDR_SCALARS) {
6348                 NDR_CHECK(ndr_push_align(ndr, 4));
6349                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number1));
6350                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number2));
6351                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_rid));
6352                 NDR_CHECK(ndr_push_netr_ChangeLogFlags(ndr, NDR_SCALARS, r->flags));
6353                 NDR_CHECK(ndr_push_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, r->db_index));
6354                 NDR_CHECK(ndr_push_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, r->delta_type));
6355                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
6356                 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_SCALARS, &r->object));
6357         }
6358         if (ndr_flags & NDR_BUFFERS) {
6359                 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_BUFFERS, &r->object));
6360         }
6361         return NDR_ERR_SUCCESS;
6362 }
6363
6364 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ChangeLogEntry(struct ndr_pull *ndr, int ndr_flags, struct netr_ChangeLogEntry *r)
6365 {
6366         if (ndr_flags & NDR_SCALARS) {
6367                 NDR_CHECK(ndr_pull_align(ndr, 4));
6368                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number1));
6369                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number2));
6370                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_rid));
6371                 NDR_CHECK(ndr_pull_netr_ChangeLogFlags(ndr, NDR_SCALARS, &r->flags));
6372                 NDR_CHECK(ndr_pull_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, &r->db_index));
6373                 NDR_CHECK(ndr_pull_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, &r->delta_type));
6374                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
6375                 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_SCALARS, &r->object));
6376         }
6377         if (ndr_flags & NDR_BUFFERS) {
6378                 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_BUFFERS, &r->object));
6379         }
6380         return NDR_ERR_SUCCESS;
6381 }
6382
6383 _PUBLIC_ void ndr_print_netr_ChangeLogEntry(struct ndr_print *ndr, const char *name, const struct netr_ChangeLogEntry *r)
6384 {
6385         ndr_print_struct(ndr, name, "netr_ChangeLogEntry");
6386         ndr->depth++;
6387         ndr_print_uint32(ndr, "serial_number1", r->serial_number1);
6388         ndr_print_uint32(ndr, "serial_number2", r->serial_number2);
6389         ndr_print_uint32(ndr, "object_rid", r->object_rid);
6390         ndr_print_netr_ChangeLogFlags(ndr, "flags", r->flags);
6391         ndr_print_netr_SamDatabaseID8Bit(ndr, "db_index", r->db_index);
6392         ndr_print_netr_DeltaEnum8Bit(ndr, "delta_type", r->delta_type);
6393         ndr_print_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED));
6394         ndr_print_netr_ChangeLogObject(ndr, "object", &r->object);
6395         ndr->depth--;
6396 }
6397
6398 _PUBLIC_ size_t ndr_size_netr_ChangeLogEntry(const struct netr_ChangeLogEntry *r, int flags)
6399 {
6400         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_netr_ChangeLogEntry);
6401 }
6402
6403 static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
6404 {
6405         if (ndr_flags & NDR_SCALARS) {
6406                 NDR_CHECK(ndr_push_align(ndr, 4));
6407                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6408                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6409         }
6410         if (ndr_flags & NDR_BUFFERS) {
6411                 if (r->data) {
6412                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6413                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
6414                 }
6415         }
6416         return NDR_ERR_SUCCESS;
6417 }
6418
6419 static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
6420 {
6421         uint32_t _ptr_data;
6422         TALLOC_CTX *_mem_save_data_0;
6423         if (ndr_flags & NDR_SCALARS) {
6424                 NDR_CHECK(ndr_pull_align(ndr, 4));
6425                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
6426                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6427                 if (_ptr_data) {
6428                         NDR_PULL_ALLOC(ndr, r->data);
6429                 } else {
6430                         r->data = NULL;
6431                 }
6432         }
6433         if (ndr_flags & NDR_BUFFERS) {
6434                 if (r->data) {
6435                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6436                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6437                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6438                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6439                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
6440                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6441                 }
6442                 if (r->data) {
6443                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
6444                 }
6445         }
6446         return NDR_ERR_SUCCESS;
6447 }
6448
6449 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
6450 {
6451         ndr_print_struct(ndr, name, "netr_Blob");
6452         ndr->depth++;
6453         ndr_print_uint32(ndr, "length", r->length);
6454         ndr_print_ptr(ndr, "data", r->data);
6455         ndr->depth++;
6456         if (r->data) {
6457                 ndr_print_array_uint8(ndr, "data", r->data, r->length);
6458         }
6459         ndr->depth--;
6460         ndr->depth--;
6461 }
6462
6463 static enum ndr_err_code ndr_push_netr_DsRGetDCName_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6464 {
6465         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6466         return NDR_ERR_SUCCESS;
6467 }
6468
6469 static enum ndr_err_code ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6470 {
6471         uint32_t v;
6472         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6473         *r = v;
6474         return NDR_ERR_SUCCESS;
6475 }
6476
6477 _PUBLIC_ void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char *name, uint32_t r)
6478 {
6479         ndr_print_uint32(ndr, name, r);
6480         ndr->depth++;
6481         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY, r);
6482         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED, r);
6483         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED, r);
6484         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED, r);
6485         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED, r);
6486         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY, r);
6487         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED, r);
6488         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED, r);
6489         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED, r);
6490         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED, r);
6491         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED, r);
6492         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF, r);
6493         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED, r);
6494         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME, r);
6495         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME, r);
6496         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE, r);
6497         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED, r);
6498         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME, r);
6499         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME, r);
6500         ndr->depth--;
6501 }
6502
6503 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType r)
6504 {
6505         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6506         return NDR_ERR_SUCCESS;
6507 }
6508
6509 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType *r)
6510 {
6511         uint32_t v;
6512         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6513         *r = v;
6514         return NDR_ERR_SUCCESS;
6515 }
6516
6517 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const char *name, enum netr_DsRGetDCNameInfo_AddressType r)
6518 {
6519         const char *val = NULL;
6520
6521         switch (r) {
6522                 case DS_ADDRESS_TYPE_INET: val = "DS_ADDRESS_TYPE_INET"; break;
6523                 case DS_ADDRESS_TYPE_NETBIOS: val = "DS_ADDRESS_TYPE_NETBIOS"; break;
6524         }
6525         ndr_print_enum(ndr, name, "ENUM", val, r);
6526 }
6527
6528 static enum ndr_err_code ndr_push_netr_DsR_DcFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6529 {
6530         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6531         return NDR_ERR_SUCCESS;
6532 }
6533
6534 static enum ndr_err_code ndr_pull_netr_DsR_DcFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6535 {
6536         uint32_t v;
6537         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6538         *r = v;
6539         return NDR_ERR_SUCCESS;
6540 }
6541
6542 _PUBLIC_ void ndr_print_netr_DsR_DcFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6543 {
6544         ndr_print_uint32(ndr, name, r);
6545         ndr->depth++;
6546         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC, r);
6547         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC, r);
6548         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP, r);
6549         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS, r);
6550         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC, r);
6551         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV, r);
6552         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST, r);
6553         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE, r);
6554         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV, r);
6555         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC, r);
6556         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6, r);
6557         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6, r);
6558         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER, r);
6559         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN, r);
6560         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST, r);
6561         ndr->depth--;
6562 }
6563
6564 _PUBLIC_ enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
6565 {
6566         if (ndr_flags & NDR_SCALARS) {
6567                 NDR_CHECK(ndr_push_align(ndr, 4));
6568                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
6569                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
6570                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, r->dc_address_type));
6571                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6572                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6573                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
6574                 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr, NDR_SCALARS, r->dc_flags));
6575                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
6576                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
6577         }
6578         if (ndr_flags & NDR_BUFFERS) {
6579                 if (r->dc_unc) {
6580                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6581                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6582                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6583                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6584                 }
6585                 if (r->dc_address) {
6586                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6587                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6588                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6589                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6590                 }
6591                 if (r->domain_name) {
6592                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6593                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6594                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6595                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6596                 }
6597                 if (r->forest_name) {
6598                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6599                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6600                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6601                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6602                 }
6603                 if (r->dc_site_name) {
6604                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6605                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6606                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6607                         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));
6608                 }
6609                 if (r->client_site_name) {
6610                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6611                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6612                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6613                         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));
6614                 }
6615         }
6616         return NDR_ERR_SUCCESS;
6617 }
6618
6619 _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
6620 {
6621         uint32_t _ptr_dc_unc;
6622         TALLOC_CTX *_mem_save_dc_unc_0;
6623         uint32_t _ptr_dc_address;
6624         TALLOC_CTX *_mem_save_dc_address_0;
6625         uint32_t _ptr_domain_name;
6626         TALLOC_CTX *_mem_save_domain_name_0;
6627         uint32_t _ptr_forest_name;
6628         TALLOC_CTX *_mem_save_forest_name_0;
6629         uint32_t _ptr_dc_site_name;
6630         TALLOC_CTX *_mem_save_dc_site_name_0;
6631         uint32_t _ptr_client_site_name;
6632         TALLOC_CTX *_mem_save_client_site_name_0;
6633         if (ndr_flags & NDR_SCALARS) {
6634                 NDR_CHECK(ndr_pull_align(ndr, 4));
6635                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6636                 if (_ptr_dc_unc) {
6637                         NDR_PULL_ALLOC(ndr, r->dc_unc);
6638                 } else {
6639                         r->dc_unc = NULL;
6640                 }
6641                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6642                 if (_ptr_dc_address) {
6643                         NDR_PULL_ALLOC(ndr, r->dc_address);
6644                 } else {
6645                         r->dc_address = NULL;
6646                 }
6647                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, &r->dc_address_type));
6648                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6649                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6650                 if (_ptr_domain_name) {
6651                         NDR_PULL_ALLOC(ndr, r->domain_name);
6652                 } else {
6653                         r->domain_name = NULL;
6654                 }
6655                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
6656                 if (_ptr_forest_name) {
6657                         NDR_PULL_ALLOC(ndr, r->forest_name);
6658                 } else {
6659                         r->forest_name = NULL;
6660                 }
6661                 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr, NDR_SCALARS, &r->dc_flags));
6662                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
6663                 if (_ptr_dc_site_name) {
6664                         NDR_PULL_ALLOC(ndr, r->dc_site_name);
6665                 } else {
6666                         r->dc_site_name = NULL;
6667                 }
6668                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
6669                 if (_ptr_client_site_name) {
6670                         NDR_PULL_ALLOC(ndr, r->client_site_name);
6671                 } else {
6672                         r->client_site_name = NULL;
6673                 }
6674         }
6675         if (ndr_flags & NDR_BUFFERS) {
6676                 if (r->dc_unc) {
6677                         _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6678                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
6679                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
6680                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
6681                         if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
6682                                 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));
6683                         }
6684                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
6685                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
6686                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
6687                 }
6688                 if (r->dc_address) {
6689                         _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
6690                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
6691                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
6692                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
6693                         if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
6694                                 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));
6695                         }
6696                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
6697                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
6698                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
6699                 }
6700                 if (r->domain_name) {
6701                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6702                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6703                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6704                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6705                         if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
6706                                 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));
6707                         }
6708                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
6709                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
6710                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6711                 }
6712                 if (r->forest_name) {
6713                         _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6714                         NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
6715                         NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
6716                         NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
6717                         if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
6718                                 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));
6719                         }
6720                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
6721                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
6722                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
6723                 }
6724                 if (r->dc_site_name) {
6725                         _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6726                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
6727                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
6728                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
6729                         if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
6730                                 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));
6731                         }
6732                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
6733                         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));
6734                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
6735                 }
6736                 if (r->client_site_name) {
6737                         _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6738                         NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
6739                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
6740                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
6741                         if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
6742                                 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));
6743                         }
6744                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
6745                         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));
6746                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
6747                 }
6748         }
6749         return NDR_ERR_SUCCESS;
6750 }
6751
6752 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
6753 {
6754         ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
6755         ndr->depth++;
6756         ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
6757         ndr->depth++;
6758         if (r->dc_unc) {
6759                 ndr_print_string(ndr, "dc_unc", r->dc_unc);
6760         }
6761         ndr->depth--;
6762         ndr_print_ptr(ndr, "dc_address", r->dc_address);
6763         ndr->depth++;
6764         if (r->dc_address) {
6765                 ndr_print_string(ndr, "dc_address", r->dc_address);
6766         }
6767         ndr->depth--;
6768         ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr, "dc_address_type", r->dc_address_type);
6769         ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
6770         ndr_print_ptr(ndr, "domain_name", r->domain_name);
6771         ndr->depth++;
6772         if (r->domain_name) {
6773                 ndr_print_string(ndr, "domain_name", r->domain_name);
6774         }
6775         ndr->depth--;
6776         ndr_print_ptr(ndr, "forest_name", r->forest_name);
6777         ndr->depth++;
6778         if (r->forest_name) {
6779                 ndr_print_string(ndr, "forest_name", r->forest_name);
6780         }
6781         ndr->depth--;
6782         ndr_print_netr_DsR_DcFlags(ndr, "dc_flags", r->dc_flags);
6783         ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
6784         ndr->depth++;
6785         if (r->dc_site_name) {
6786                 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
6787         }
6788         ndr->depth--;
6789         ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
6790         ndr->depth++;
6791         if (r->client_site_name) {
6792                 ndr_print_string(ndr, "client_site_name", r->client_site_name);
6793         }
6794         ndr->depth--;
6795         ndr->depth--;
6796 }
6797
6798 static enum ndr_err_code ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6799 {
6800         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6801         return NDR_ERR_SUCCESS;
6802 }
6803
6804 static enum ndr_err_code ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6805 {
6806         uint32_t v;
6807         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6808         *r = v;
6809         return NDR_ERR_SUCCESS;
6810 }
6811
6812 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6813 {
6814         ndr_print_uint32(ndr, name, r);
6815         ndr->depth++;
6816         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
6817         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
6818         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
6819         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
6820         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
6821         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
6822         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_MIT_KRB5", NETR_TRUST_FLAG_MIT_KRB5, r);
6823         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_AES", NETR_TRUST_FLAG_AES, r);
6824         ndr->depth--;
6825 }
6826
6827 static enum ndr_err_code ndr_push_netr_BinaryString(struct ndr_push *ndr, int ndr_flags, const struct netr_BinaryString *r)
6828 {
6829         uint32_t cntr_data_1;
6830         {
6831                 uint32_t _flags_save_STRUCT = ndr->flags;
6832                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6833                 if (ndr_flags & NDR_SCALARS) {
6834                         NDR_CHECK(ndr_push_align(ndr, 4));
6835                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
6836                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
6837                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6838                 }
6839                 if (ndr_flags & NDR_BUFFERS) {
6840                         if (r->data) {
6841                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
6842                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6843                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
6844                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6845                                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data[cntr_data_1]));
6846                                 }
6847                         }
6848                 }
6849                 ndr->flags = _flags_save_STRUCT;
6850         }
6851         return NDR_ERR_SUCCESS;
6852 }
6853
6854 static enum ndr_err_code ndr_pull_netr_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct netr_BinaryString *r)
6855 {
6856         uint32_t _ptr_data;
6857         uint32_t cntr_data_1;
6858         TALLOC_CTX *_mem_save_data_0;
6859         TALLOC_CTX *_mem_save_data_1;
6860         {
6861                 uint32_t _flags_save_STRUCT = ndr->flags;
6862                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6863                 if (ndr_flags & NDR_SCALARS) {
6864                         NDR_CHECK(ndr_pull_align(ndr, 4));
6865                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
6866                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
6867                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6868                         if (_ptr_data) {
6869                                 NDR_PULL_ALLOC(ndr, r->data);
6870                         } else {
6871                                 r->data = NULL;
6872                         }
6873                 }
6874                 if (ndr_flags & NDR_BUFFERS) {
6875                         if (r->data) {
6876                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6877                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6878                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6879                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
6880                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
6881                                         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));
6882                                 }
6883                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6884                                 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
6885                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6886                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6887                                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
6888                                 }
6889                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
6890                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6891                         }
6892                         if (r->data) {
6893                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size / 2));
6894                         }
6895                         if (r->data) {
6896                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length / 2));
6897                         }
6898                 }
6899                 ndr->flags = _flags_save_STRUCT;
6900         }
6901         return NDR_ERR_SUCCESS;
6902 }
6903
6904 _PUBLIC_ void ndr_print_netr_BinaryString(struct ndr_print *ndr, const char *name, const struct netr_BinaryString *r)
6905 {
6906         uint32_t cntr_data_1;
6907         ndr_print_struct(ndr, name, "netr_BinaryString");
6908         {
6909                 uint32_t _flags_save_STRUCT = ndr->flags;
6910                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6911                 ndr->depth++;
6912                 ndr_print_uint16(ndr, "length", r->length);
6913                 ndr_print_uint16(ndr, "size", r->size);
6914                 ndr_print_ptr(ndr, "data", r->data);
6915                 ndr->depth++;
6916                 if (r->data) {
6917                         ndr->print(ndr, "%s: ARRAY(%d)", "data", (int)r->length / 2);
6918                         ndr->depth++;
6919                         for (cntr_data_1=0;cntr_data_1<r->length / 2;cntr_data_1++) {
6920                                 char *idx_1=NULL;
6921                                 if (asprintf(&idx_1, "[%d]", cntr_data_1) != -1) {
6922                                         ndr_print_uint16(ndr, "data", r->data[cntr_data_1]);
6923                                         free(idx_1);
6924                                 }
6925                         }
6926                         ndr->depth--;
6927                 }
6928                 ndr->depth--;
6929                 ndr->depth--;
6930                 ndr->flags = _flags_save_STRUCT;
6931         }
6932 }
6933
6934 static enum ndr_err_code ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r)
6935 {
6936         uint32_t cntr_unknown7_0;
6937         if (ndr_flags & NDR_SCALARS) {
6938                 NDR_CHECK(ndr_push_align(ndr, 4));
6939                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6940                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain));
6941                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site));
6942                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1));
6943                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2));
6944                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3));
6945                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4));
6946                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6947                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product));
6948                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6949                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6950                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6951                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0]));
6952                 }
6953         }
6954         if (ndr_flags & NDR_BUFFERS) {
6955                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6956                 if (r->workstation_domain) {
6957                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6958                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6959                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6960                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6961                 }
6962                 if (r->workstation_site) {
6963                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6964                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6965                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6966                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6967                 }
6968                 if (r->unknown1) {
6969                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6970                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6971                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6972                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6973                 }
6974                 if (r->unknown2) {
6975                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6976                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6977                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6978                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6979                 }
6980                 if (r->unknown3) {
6981                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6982                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6983                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6984                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6985                 }
6986                 if (r->unknown4) {
6987                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6988                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6989                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6990                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6991                 }
6992                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6993                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product));
6994                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6995                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6996         }
6997         return NDR_ERR_SUCCESS;
6998 }
6999
7000 static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r)
7001 {
7002         uint32_t _ptr_workstation_domain;
7003         TALLOC_CTX *_mem_save_workstation_domain_0;
7004         uint32_t _ptr_workstation_site;
7005         TALLOC_CTX *_mem_save_workstation_site_0;
7006         uint32_t _ptr_unknown1;
7007         TALLOC_CTX *_mem_save_unknown1_0;
7008         uint32_t _ptr_unknown2;
7009         TALLOC_CTX *_mem_save_unknown2_0;
7010         uint32_t _ptr_unknown3;
7011         TALLOC_CTX *_mem_save_unknown3_0;
7012         uint32_t _ptr_unknown4;
7013         TALLOC_CTX *_mem_save_unknown4_0;
7014         uint32_t cntr_unknown7_0;
7015         if (ndr_flags & NDR_SCALARS) {
7016                 NDR_CHECK(ndr_pull_align(ndr, 4));
7017                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob));
7018                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain));
7019                 if (_ptr_workstation_domain) {
7020                         NDR_PULL_ALLOC(ndr, r->workstation_domain);
7021                 } else {
7022                         r->workstation_domain = NULL;
7023                 }
7024                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site));
7025                 if (_ptr_workstation_site) {
7026                         NDR_PULL_ALLOC(ndr, r->workstation_site);
7027                 } else {
7028                         r->workstation_site = NULL;
7029                 }
7030                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1));
7031                 if (_ptr_unknown1) {
7032                         NDR_PULL_ALLOC(ndr, r->unknown1);
7033                 } else {
7034                         r->unknown1 = NULL;
7035                 }
7036                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2));
7037                 if (_ptr_unknown2) {
7038                         NDR_PULL_ALLOC(ndr, r->unknown2);
7039                 } else {
7040                         r->unknown2 = NULL;
7041                 }
7042                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3));
7043                 if (_ptr_unknown3) {
7044                         NDR_PULL_ALLOC(ndr, r->unknown3);
7045                 } else {
7046                         r->unknown3 = NULL;
7047                 }
7048                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
7049                 if (_ptr_unknown4) {
7050                         NDR_PULL_ALLOC(ndr, r->unknown4);
7051                 } else {
7052                         r->unknown4 = NULL;
7053                 }
7054                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
7055                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product));
7056                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
7057                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
7058                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
7059                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0]));
7060                 }
7061         }
7062         if (ndr_flags & NDR_BUFFERS) {
7063                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
7064                 if (r->workstation_domain) {
7065                         _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
7066                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0);
7067                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain));
7068                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain));
7069                         if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) {
7070                                 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));
7071                         }
7072                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t)));
7073                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16));
7074                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0);
7075                 }
7076                 if (r->workstation_site) {
7077                         _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
7078                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0);
7079                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site));
7080                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site));
7081                         if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) {
7082                                 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));
7083                         }
7084                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t)));
7085                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16));
7086                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0);
7087                 }
7088                 if (r->unknown1) {
7089                         _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7090                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0);
7091                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1));
7092                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1));
7093                         if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) {
7094                                 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));
7095                         }
7096                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t)));
7097                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16));
7098                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0);
7099                 }
7100                 if (r->unknown2) {
7101                         _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7102                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0);
7103                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2));
7104                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2));
7105                         if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) {
7106                                 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));
7107                         }
7108                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t)));
7109                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16));
7110                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0);
7111                 }
7112                 if (r->unknown3) {
7113                         _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7114                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0);
7115                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3));
7116                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3));
7117                         if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) {
7118                                 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));
7119                         }
7120                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t)));
7121                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16));
7122                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0);
7123                 }
7124                 if (r->unknown4) {
7125                         _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7126                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0);
7127                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4));
7128                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4));
7129                         if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) {
7130                                 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));
7131                         }
7132                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t)));
7133                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16));
7134                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0);
7135                 }
7136                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
7137                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product));
7138                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
7139                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
7140         }
7141         return NDR_ERR_SUCCESS;
7142 }
7143
7144 _PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r)
7145 {
7146         uint32_t cntr_unknown7_0;
7147         ndr_print_struct(ndr, name, "netr_DomainQuery1");
7148         ndr->depth++;
7149         ndr_print_netr_Blob(ndr, "blob", &r->blob);
7150         ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain);
7151         ndr->depth++;
7152         if (r->workstation_domain) {
7153                 ndr_print_string(ndr, "workstation_domain", r->workstation_domain);
7154         }
7155         ndr->depth--;
7156         ndr_print_ptr(ndr, "workstation_site", r->workstation_site);
7157         ndr->depth++;
7158         if (r->workstation_site) {
7159                 ndr_print_string(ndr, "workstation_site", r->workstation_site);
7160         }
7161         ndr->depth--;
7162         ndr_print_ptr(ndr, "unknown1", r->unknown1);
7163         ndr->depth++;
7164         if (r->unknown1) {
7165                 ndr_print_string(ndr, "unknown1", r->unknown1);
7166         }
7167         ndr->depth--;
7168         ndr_print_ptr(ndr, "unknown2", r->unknown2);
7169         ndr->depth++;
7170         if (r->unknown2) {
7171                 ndr_print_string(ndr, "unknown2", r->unknown2);
7172         }
7173         ndr->depth--;
7174         ndr_print_ptr(ndr, "unknown3", r->unknown3);
7175         ndr->depth++;
7176         if (r->unknown3) {
7177                 ndr_print_string(ndr, "unknown3", r->unknown3);
7178         }
7179         ndr->depth--;
7180         ndr_print_ptr(ndr, "unknown4", r->unknown4);
7181         ndr->depth++;
7182         if (r->unknown4) {
7183                 ndr_print_string(ndr, "unknown4", r->unknown4);
7184         }
7185         ndr->depth--;
7186         ndr_print_netr_BinaryString(ndr, "blob2", &r->blob2);
7187         ndr_print_lsa_String(ndr, "product", &r->product);
7188         ndr_print_lsa_String(ndr, "unknown5", &r->unknown5);
7189         ndr_print_lsa_String(ndr, "unknown6", &r->unknown6);
7190         ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", (int)4);
7191         ndr->depth++;
7192         for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) {
7193                 char *idx_0=NULL;
7194                 if (asprintf(&idx_0, "[%d]", cntr_unknown7_0) != -1) {
7195                         ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]);
7196                         free(idx_0);
7197                 }
7198         }
7199         ndr->depth--;
7200         ndr->depth--;
7201 }
7202
7203 static enum ndr_err_code ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r)
7204 {
7205         if (ndr_flags & NDR_SCALARS) {
7206                 int level = ndr_push_get_switch_value(ndr, r);
7207                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7208                 switch (level) {
7209                         case 1: {
7210                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
7211                         break; }
7212
7213                         case 2: {
7214                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
7215                         break; }
7216
7217                         default:
7218                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7219                 }
7220         }
7221         if (ndr_flags & NDR_BUFFERS) {
7222                 int level = ndr_push_get_switch_value(ndr, r);
7223                 switch (level) {
7224                         case 1:
7225                                 if (r->query1) {
7226                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7227                                 }
7228                         break;
7229
7230                         case 2:
7231                                 if (r->query1) {
7232                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7233                                 }
7234                         break;
7235
7236                         default:
7237                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7238                 }
7239         }
7240         return NDR_ERR_SUCCESS;
7241 }
7242
7243 static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r)
7244 {
7245         int level;
7246         uint32_t _level;
7247         TALLOC_CTX *_mem_save_query1_0;
7248         level = ndr_pull_get_switch_value(ndr, r);
7249         if (ndr_flags & NDR_SCALARS) {
7250                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7251                 if (_level != level) {
7252                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7253                 }
7254                 switch (level) {
7255                         case 1: {
7256                                 uint32_t _ptr_query1;
7257                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
7258                                 if (_ptr_query1) {
7259                                         NDR_PULL_ALLOC(ndr, r->query1);
7260                                 } else {
7261                                         r->query1 = NULL;
7262                                 }
7263                         break; }
7264
7265                         case 2: {
7266                                 uint32_t _ptr_query1;
7267                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
7268                                 if (_ptr_query1) {
7269                                         NDR_PULL_ALLOC(ndr, r->query1);
7270                                 } else {
7271                                         r->query1 = NULL;
7272                                 }
7273                         break; }
7274
7275                         default:
7276                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7277                 }
7278         }
7279         if (ndr_flags & NDR_BUFFERS) {
7280                 switch (level) {
7281                         case 1:
7282                                 if (r->query1) {
7283                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7284                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
7285                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7286                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
7287                                 }
7288                         break;
7289
7290                         case 2:
7291                                 if (r->query1) {
7292                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7293                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
7294                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7295                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
7296                                 }
7297                         break;
7298
7299                         default:
7300                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7301                 }
7302         }
7303         return NDR_ERR_SUCCESS;
7304 }
7305
7306 _PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r)
7307 {
7308         int level;
7309         level = ndr_print_get_switch_value(ndr, r);
7310         ndr_print_union(ndr, name, level, "netr_DomainQuery");
7311         switch (level) {
7312                 case 1:
7313                         ndr_print_ptr(ndr, "query1", r->query1);
7314                         ndr->depth++;
7315                         if (r->query1) {
7316                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
7317                         }
7318                         ndr->depth--;
7319                 break;
7320
7321                 case 2:
7322                         ndr_print_ptr(ndr, "query1", r->query1);
7323                         ndr->depth++;
7324                         if (r->query1) {
7325                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
7326                         }
7327                         ndr->depth--;
7328                 break;
7329
7330                 default:
7331                         ndr_print_bad_level(ndr, name, level);
7332         }
7333 }
7334
7335 static enum ndr_err_code ndr_push_netr_trust_extension(struct ndr_push *ndr, int ndr_flags, const struct netr_trust_extension *r)
7336 {
7337         if (ndr_flags & NDR_SCALARS) {
7338                 NDR_CHECK(ndr_push_align(ndr, 4));
7339                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 8));
7340                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7341                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 8));
7342                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->flags));
7343                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7344                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trust_type));
7345                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trust_attributes));
7346         }
7347         if (ndr_flags & NDR_BUFFERS) {
7348         }
7349         return NDR_ERR_SUCCESS;
7350 }
7351
7352 static enum ndr_err_code ndr_pull_netr_trust_extension(struct ndr_pull *ndr, int ndr_flags, struct netr_trust_extension *r)
7353 {
7354         if (ndr_flags & NDR_SCALARS) {
7355                 NDR_CHECK(ndr_pull_align(ndr, 4));
7356                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7357                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
7358                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7359                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->flags));
7360                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7361                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trust_type));
7362                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trust_attributes));
7363         }
7364         if (ndr_flags & NDR_BUFFERS) {
7365         }
7366         return NDR_ERR_SUCCESS;
7367 }
7368
7369 _PUBLIC_ void ndr_print_netr_trust_extension(struct ndr_print *ndr, const char *name, const struct netr_trust_extension *r)
7370 {
7371         ndr_print_struct(ndr, name, "netr_trust_extension");
7372         ndr->depth++;
7373         ndr_print_uint32(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?8:r->length);
7374         ndr_print_uint32(ndr, "dummy", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->dummy);
7375         ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?8:r->size);
7376         ndr_print_netr_TrustFlags(ndr, "flags", r->flags);
7377         ndr_print_uint32(ndr, "parent_index", r->parent_index);
7378         ndr_print_uint32(ndr, "trust_type", r->trust_type);
7379         ndr_print_uint32(ndr, "trust_attributes", r->trust_attributes);
7380         ndr->depth--;
7381 }
7382
7383 static enum ndr_err_code ndr_push_netr_trust_extension_container(struct ndr_push *ndr, int ndr_flags, const struct netr_trust_extension_container *r)
7384 {
7385         if (ndr_flags & NDR_SCALARS) {
7386                 NDR_CHECK(ndr_push_align(ndr, 4));
7387                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
7388                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
7389                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
7390         }
7391         if (ndr_flags & NDR_BUFFERS) {
7392                 if (r->info) {
7393                         NDR_CHECK(ndr_push_netr_trust_extension(ndr, NDR_SCALARS, r->info));
7394                 }
7395         }
7396         return NDR_ERR_SUCCESS;
7397 }
7398
7399 static enum ndr_err_code ndr_pull_netr_trust_extension_container(struct ndr_pull *ndr, int ndr_flags, struct netr_trust_extension_container *r)
7400 {
7401         uint32_t _ptr_info;
7402         TALLOC_CTX *_mem_save_info_0;
7403         if (ndr_flags & NDR_SCALARS) {
7404                 NDR_CHECK(ndr_pull_align(ndr, 4));
7405                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
7406                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
7407                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
7408                 if (_ptr_info) {
7409                         NDR_PULL_ALLOC(ndr, r->info);
7410                 } else {
7411                         r->info = NULL;
7412                 }
7413         }
7414         if (ndr_flags & NDR_BUFFERS) {
7415                 if (r->info) {
7416                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7417                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
7418                         NDR_CHECK(ndr_pull_netr_trust_extension(ndr, NDR_SCALARS, r->info));
7419                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
7420                 }
7421         }
7422         return NDR_ERR_SUCCESS;
7423 }
7424
7425 _PUBLIC_ void ndr_print_netr_trust_extension_container(struct ndr_print *ndr, const char *name, const struct netr_trust_extension_container *r)
7426 {
7427         ndr_print_struct(ndr, name, "netr_trust_extension_container");
7428         ndr->depth++;
7429         ndr_print_uint16(ndr, "length", r->length);
7430         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
7431         ndr_print_ptr(ndr, "info", r->info);
7432         ndr->depth++;
7433         if (r->info) {
7434                 ndr_print_netr_trust_extension(ndr, "info", r->info);
7435         }
7436         ndr->depth--;
7437         ndr->depth--;
7438 }
7439
7440 static enum ndr_err_code ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r)
7441 {
7442         uint32_t cntr_dummystring_0;
7443         uint32_t cntr_dummy_0;
7444         if (ndr_flags & NDR_SCALARS) {
7445                 NDR_CHECK(ndr_push_align(ndr, 4));
7446                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
7447                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
7448                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
7449                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
7450                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
7451                 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr, NDR_SCALARS, &r->trust_extension));
7452                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7453                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0]));
7454                 }
7455                 for (cntr_dummy_0 = 0; cntr_dummy_0 < 4; cntr_dummy_0++) {
7456                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy[cntr_dummy_0]));
7457                 }
7458         }
7459         if (ndr_flags & NDR_BUFFERS) {
7460                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
7461                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
7462                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
7463                 if (r->sid) {
7464                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7465                 }
7466                 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr, NDR_BUFFERS, &r->trust_extension));
7467                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7468                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0]));
7469                 }
7470         }
7471         return NDR_ERR_SUCCESS;
7472 }
7473
7474 static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r)
7475 {
7476         uint32_t _ptr_sid;
7477         TALLOC_CTX *_mem_save_sid_0;
7478         uint32_t cntr_dummystring_0;
7479         uint32_t cntr_dummy_0;
7480         if (ndr_flags & NDR_SCALARS) {
7481                 NDR_CHECK(ndr_pull_align(ndr, 4));
7482                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
7483                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
7484                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
7485                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
7486                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
7487                 if (_ptr_sid) {
7488                         NDR_PULL_ALLOC(ndr, r->sid);
7489                 } else {
7490                         r->sid = NULL;
7491                 }
7492                 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr, NDR_SCALARS, &r->trust_extension));
7493                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7494                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0]));
7495                 }
7496                 for (cntr_dummy_0 = 0; cntr_dummy_0 < 4; cntr_dummy_0++) {
7497                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy[cntr_dummy_0]));
7498                 }
7499         }
7500         if (ndr_flags & NDR_BUFFERS) {
7501                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
7502                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
7503                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
7504                 if (r->sid) {
7505                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7506                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
7507                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7508                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
7509                 }
7510                 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr, NDR_BUFFERS, &r->trust_extension));
7511                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7512                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0]));
7513                 }
7514         }
7515         return NDR_ERR_SUCCESS;
7516 }
7517
7518 _PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r)
7519 {
7520         uint32_t cntr_dummystring_0;
7521         uint32_t cntr_dummy_0;
7522         ndr_print_struct(ndr, name, "netr_DomainTrustInfo");
7523         ndr->depth++;
7524         ndr_print_lsa_String(ndr, "domainname", &r->domainname);
7525         ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname);
7526         ndr_print_lsa_String(ndr, "forest", &r->forest);
7527         ndr_print_GUID(ndr, "guid", &r->guid);
7528         ndr_print_ptr(ndr, "sid", r->sid);
7529         ndr->depth++;
7530         if (r->sid) {
7531                 ndr_print_dom_sid2(ndr, "sid", r->sid);
7532         }
7533         ndr->depth--;
7534         ndr_print_netr_trust_extension_container(ndr, "trust_extension", &r->trust_extension);
7535         ndr->print(ndr, "%s: ARRAY(%d)", "dummystring", (int)3);
7536         ndr->depth++;
7537         for (cntr_dummystring_0=0;cntr_dummystring_0<3;cntr_dummystring_0++) {
7538                 char *idx_0=NULL;
7539                 if (asprintf(&idx_0, "[%d]", cntr_dummystring_0) != -1) {
7540                         ndr_print_lsa_String(ndr, "dummystring", &r->dummystring[cntr_dummystring_0]);
7541                         free(idx_0);
7542                 }
7543         }
7544         ndr->depth--;
7545         ndr->print(ndr, "%s: ARRAY(%d)", "dummy", (int)4);
7546         ndr->depth++;
7547         for (cntr_dummy_0=0;cntr_dummy_0<4;cntr_dummy_0++) {
7548                 char *idx_0=NULL;
7549                 if (asprintf(&idx_0, "[%d]", cntr_dummy_0) != -1) {
7550                         ndr_print_uint32(ndr, "dummy", r->dummy[cntr_dummy_0]);
7551                         free(idx_0);
7552                 }
7553         }
7554         ndr->depth--;
7555         ndr->depth--;
7556 }
7557
7558 static enum ndr_err_code ndr_push_netr_LsaPolicyInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_LsaPolicyInfo *r)
7559 {
7560         if (ndr_flags & NDR_SCALARS) {
7561                 NDR_CHECK(ndr_push_align(ndr, 4));
7562                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->policy_size));
7563                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
7564         }
7565         if (ndr_flags & NDR_BUFFERS) {
7566                 if (r->policy) {
7567                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->policy_size));
7568                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->policy, r->policy_size));
7569                 }
7570         }
7571         return NDR_ERR_SUCCESS;
7572 }
7573
7574 static enum ndr_err_code ndr_pull_netr_LsaPolicyInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_LsaPolicyInfo *r)
7575 {
7576         uint32_t _ptr_policy;
7577         TALLOC_CTX *_mem_save_policy_0;
7578         if (ndr_flags & NDR_SCALARS) {
7579                 NDR_CHECK(ndr_pull_align(ndr, 4));
7580                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->policy_size));
7581                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
7582                 if (_ptr_policy) {
7583                         NDR_PULL_ALLOC(ndr, r->policy);
7584                 } else {
7585                         r->policy = NULL;
7586                 }
7587         }
7588         if (ndr_flags & NDR_BUFFERS) {
7589                 if (r->policy) {
7590                         _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
7591                         NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
7592                         NDR_CHECK(ndr_pull_array_size(ndr, &r->policy));
7593                         NDR_PULL_ALLOC_N(ndr, r->policy, ndr_get_array_size(ndr, &r->policy));
7594                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->policy, ndr_get_array_size(ndr, &r->policy)));
7595                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
7596                 }
7597                 if (r->policy) {
7598                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->policy, r->policy_size));
7599                 }
7600         }
7601         return NDR_ERR_SUCCESS;
7602 }
7603
7604 _PUBLIC_ void ndr_print_netr_LsaPolicyInfo(struct ndr_print *ndr, const char *name, const struct netr_LsaPolicyInfo *r)
7605 {
7606         ndr_print_struct(ndr, name, "netr_LsaPolicyInfo");
7607         ndr->depth++;
7608         ndr_print_uint32(ndr, "policy_size", r->policy_size);
7609         ndr_print_ptr(ndr, "policy", r->policy);
7610         ndr->depth++;
7611         if (r->policy) {
7612                 ndr_print_array_uint8(ndr, "policy", r->policy, r->policy_size);
7613         }
7614         ndr->depth--;
7615         ndr->depth--;
7616 }
7617
7618 _PUBLIC_ enum ndr_err_code ndr_push_netr_WorkstationFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7619 {
7620         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7621         return NDR_ERR_SUCCESS;
7622 }
7623
7624 _PUBLIC_ enum ndr_err_code ndr_pull_netr_WorkstationFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7625 {
7626         uint32_t v;
7627         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7628         *r = v;
7629         return NDR_ERR_SUCCESS;
7630 }
7631
7632 _PUBLIC_ void ndr_print_netr_WorkstationFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7633 {
7634         ndr_print_uint32(ndr, name, r);
7635         ndr->depth++;
7636         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS", NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS, r);
7637         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_SPN_UPDATE", NETR_WS_FLAG_HANDLES_SPN_UPDATE, r);
7638         ndr->depth--;
7639 }
7640
7641 static enum ndr_err_code ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r)
7642 {
7643         uint32_t cntr_trusts_1;
7644         uint32_t cntr_dummystring_0;
7645         uint32_t cntr_dummy_0;
7646         if (ndr_flags & NDR_SCALARS) {
7647                 NDR_CHECK(ndr_push_align(ndr, 4));
7648                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7649                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
7650                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts));
7651                 NDR_CHECK(ndr_push_netr_LsaPolicyInfo(ndr, NDR_SCALARS, &r->lsa_policy));
7652                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dns_hostname));
7653                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7654                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0]));
7655                 }
7656                 NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr, NDR_SCALARS, r->workstation_flags));
7657                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->supported_enc_types));
7658                 for (cntr_dummy_0 = 0; cntr_dummy_0 < 2; cntr_dummy_0++) {
7659                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy[cntr_dummy_0]));
7660                 }
7661         }
7662         if (ndr_flags & NDR_BUFFERS) {
7663                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7664                 if (r->trusts) {
7665                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
7666                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7667                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7668                         }
7669                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7670                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7671                         }
7672                 }
7673                 NDR_CHECK(ndr_push_netr_LsaPolicyInfo(ndr, NDR_BUFFERS, &r->lsa_policy));
7674                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dns_hostname));
7675                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7676                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0]));
7677                 }
7678         }
7679         return NDR_ERR_SUCCESS;
7680 }
7681
7682 static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r)
7683 {
7684         uint32_t _ptr_trusts;
7685         uint32_t cntr_trusts_1;
7686         TALLOC_CTX *_mem_save_trusts_0;
7687         TALLOC_CTX *_mem_save_trusts_1;
7688         uint32_t cntr_dummystring_0;
7689         uint32_t cntr_dummy_0;
7690         if (ndr_flags & NDR_SCALARS) {
7691                 NDR_CHECK(ndr_pull_align(ndr, 4));
7692                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7693                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts));
7694                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts));
7695                 if (_ptr_trusts) {
7696                         NDR_PULL_ALLOC(ndr, r->trusts);
7697                 } else {
7698                         r->trusts = NULL;
7699                 }
7700                 NDR_CHECK(ndr_pull_netr_LsaPolicyInfo(ndr, NDR_SCALARS, &r->lsa_policy));
7701                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dns_hostname));
7702                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7703                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0]));
7704                 }
7705                 NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr, NDR_SCALARS, &r->workstation_flags));
7706                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->supported_enc_types));
7707                 for (cntr_dummy_0 = 0; cntr_dummy_0 < 2; cntr_dummy_0++) {
7708                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy[cntr_dummy_0]));
7709                 }
7710         }
7711         if (ndr_flags & NDR_BUFFERS) {
7712                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7713                 if (r->trusts) {
7714                         _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
7715                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7716                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts));
7717                         NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts));
7718                         _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
7719                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7720                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7721                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7722                         }
7723                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7724                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7725                         }
7726                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
7727                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0);
7728                 }
7729                 NDR_CHECK(ndr_pull_netr_LsaPolicyInfo(ndr, NDR_BUFFERS, &r->lsa_policy));
7730                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dns_hostname));
7731                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7732                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0]));
7733                 }
7734                 if (r->trusts) {
7735                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts));
7736                 }
7737         }
7738         return NDR_ERR_SUCCESS;
7739 }
7740
7741 _PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r)
7742 {
7743         uint32_t cntr_trusts_1;
7744         uint32_t cntr_dummystring_0;
7745         uint32_t cntr_dummy_0;
7746         ndr_print_struct(ndr, name, "netr_DomainInfo1");
7747         ndr->depth++;
7748         ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo);
7749         ndr_print_uint32(ndr, "num_trusts", r->num_trusts);
7750         ndr_print_ptr(ndr, "trusts", r->trusts);
7751         ndr->depth++;
7752         if (r->trusts) {
7753                 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", (int)r->num_trusts);
7754                 ndr->depth++;
7755                 for (cntr_trusts_1=0;cntr_trusts_1<r->num_trusts;cntr_trusts_1++) {
7756                         char *idx_1=NULL;
7757                         if (asprintf(&idx_1, "[%d]", cntr_trusts_1) != -1) {
7758                                 ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]);
7759                                 free(idx_1);
7760                         }
7761                 }
7762                 ndr->depth--;
7763         }
7764         ndr->depth--;
7765         ndr_print_netr_LsaPolicyInfo(ndr, "lsa_policy", &r->lsa_policy);
7766         ndr_print_lsa_String(ndr, "dns_hostname", &r->dns_hostname);
7767         ndr->print(ndr, "%s: ARRAY(%d)", "dummystring", (int)3);
7768         ndr->depth++;
7769         for (cntr_dummystring_0=0;cntr_dummystring_0<3;cntr_dummystring_0++) {
7770                 char *idx_0=NULL;
7771                 if (asprintf(&idx_0, "[%d]", cntr_dummystring_0) != -1) {
7772                         ndr_print_lsa_String(ndr, "dummystring", &r->dummystring[cntr_dummystring_0]);
7773                         free(idx_0);
7774                 }
7775         }
7776         ndr->depth--;
7777         ndr_print_netr_WorkstationFlags(ndr, "workstation_flags", r->workstation_flags);
7778         ndr_print_uint32(ndr, "supported_enc_types", r->supported_enc_types);
7779         ndr->print(ndr, "%s: ARRAY(%d)", "dummy", (int)2);
7780         ndr->depth++;
7781         for (cntr_dummy_0=0;cntr_dummy_0<2;cntr_dummy_0++) {
7782                 char *idx_0=NULL;
7783                 if (asprintf(&idx_0, "[%d]", cntr_dummy_0) != -1) {
7784                         ndr_print_uint32(ndr, "dummy", r->dummy[cntr_dummy_0]);
7785                         free(idx_0);
7786                 }
7787         }
7788         ndr->depth--;
7789         ndr->depth--;
7790 }
7791
7792 static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
7793 {
7794         if (ndr_flags & NDR_SCALARS) {
7795                 int level = ndr_push_get_switch_value(ndr, r);
7796                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7797                 switch (level) {
7798                         case 1: {
7799                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7800                         break; }
7801
7802                         case 2: {
7803                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
7804                         break; }
7805
7806                         default:
7807                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7808                 }
7809         }
7810         if (ndr_flags & NDR_BUFFERS) {
7811                 int level = ndr_push_get_switch_value(ndr, r);
7812                 switch (level) {
7813                         case 1:
7814                                 if (r->info1) {
7815                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7816                                 }
7817                         break;
7818
7819                         case 2:
7820                                 if (r->info2) {
7821                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7822                                 }
7823                         break;
7824
7825                         default:
7826                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7827                 }
7828         }
7829         return NDR_ERR_SUCCESS;
7830 }
7831
7832 static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
7833 {
7834         int level;
7835         uint32_t _level;
7836         TALLOC_CTX *_mem_save_info1_0;
7837         TALLOC_CTX *_mem_save_info2_0;
7838         level = ndr_pull_get_switch_value(ndr, r);
7839         if (ndr_flags & NDR_SCALARS) {
7840                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7841                 if (_level != level) {
7842                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7843                 }
7844                 switch (level) {
7845                         case 1: {
7846                                 uint32_t _ptr_info1;
7847                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7848                                 if (_ptr_info1) {
7849                                         NDR_PULL_ALLOC(ndr, r->info1);
7850                                 } else {
7851                                         r->info1 = NULL;
7852                                 }
7853                         break; }
7854
7855                         case 2: {
7856                                 uint32_t _ptr_info2;
7857                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7858                                 if (_ptr_info2) {
7859                                         NDR_PULL_ALLOC(ndr, r->info2);
7860                                 } else {
7861                                         r->info2 = NULL;
7862                                 }
7863                         break; }
7864
7865                         default:
7866                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7867                 }
7868         }
7869         if (ndr_flags & NDR_BUFFERS) {
7870                 switch (level) {
7871                         case 1:
7872                                 if (r->info1) {
7873                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7874                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7875                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7876                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7877                                 }
7878                         break;
7879
7880                         case 2:
7881                                 if (r->info2) {
7882                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7883                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7884                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7885                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7886                                 }
7887                         break;
7888
7889                         default:
7890                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7891                 }
7892         }
7893         return NDR_ERR_SUCCESS;
7894 }
7895
7896 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
7897 {
7898         int level;
7899         level = ndr_print_get_switch_value(ndr, r);
7900         ndr_print_union(ndr, name, level, "netr_DomainInfo");
7901         switch (level) {
7902                 case 1:
7903                         ndr_print_ptr(ndr, "info1", r->info1);
7904                         ndr->depth++;
7905                         if (r->info1) {
7906                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7907                         }
7908                         ndr->depth--;
7909                 break;
7910
7911                 case 2:
7912                         ndr_print_ptr(ndr, "info2", r->info2);
7913                         ndr->depth++;
7914                         if (r->info2) {
7915                                 ndr_print_netr_DomainInfo1(ndr, "info2", r->info2);
7916                         }
7917                         ndr->depth--;
7918                 break;
7919
7920                 default:
7921                         ndr_print_bad_level(ndr, name, level);
7922         }
7923 }
7924
7925 static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
7926 {
7927         {
7928                 uint32_t _flags_save_STRUCT = ndr->flags;
7929                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7930                 if (ndr_flags & NDR_SCALARS) {
7931                         NDR_CHECK(ndr_push_align(ndr, 4));
7932                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7933                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
7934                 }
7935                 if (ndr_flags & NDR_BUFFERS) {
7936                 }
7937                 ndr->flags = _flags_save_STRUCT;
7938         }
7939         return NDR_ERR_SUCCESS;
7940 }
7941
7942 static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
7943 {
7944         {
7945                 uint32_t _flags_save_STRUCT = ndr->flags;
7946                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7947                 if (ndr_flags & NDR_SCALARS) {
7948                         NDR_CHECK(ndr_pull_align(ndr, 4));
7949                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7950                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7951                 }
7952                 if (ndr_flags & NDR_BUFFERS) {
7953                 }
7954                 ndr->flags = _flags_save_STRUCT;
7955         }
7956         return NDR_ERR_SUCCESS;
7957 }
7958
7959 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
7960 {
7961         ndr_print_struct(ndr, name, "netr_CryptPassword");
7962         {
7963                 uint32_t _flags_save_STRUCT = ndr->flags;
7964                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7965                 ndr->depth++;
7966                 ndr_print_array_uint8(ndr, "data", r->data, 512);
7967                 ndr_print_uint32(ndr, "length", r->length);
7968                 ndr->depth--;
7969                 ndr->flags = _flags_save_STRUCT;
7970         }
7971 }
7972
7973 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesWCtr *r)
7974 {
7975         uint32_t cntr_sitename_1;
7976         if (ndr_flags & NDR_SCALARS) {
7977                 NDR_CHECK(ndr_push_align(ndr, 4));
7978                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7979                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7980         }
7981         if (ndr_flags & NDR_BUFFERS) {
7982                 if (r->sitename) {
7983                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7984                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7985                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7986                         }
7987                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7988                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7989                         }
7990                 }
7991         }
7992         return NDR_ERR_SUCCESS;
7993 }
7994
7995 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r)
7996 {
7997         uint32_t _ptr_sitename;
7998         uint32_t cntr_sitename_1;
7999         TALLOC_CTX *_mem_save_sitename_0;
8000         TALLOC_CTX *_mem_save_sitename_1;
8001         if (ndr_flags & NDR_SCALARS) {
8002                 NDR_CHECK(ndr_pull_align(ndr, 4));
8003                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8004                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
8005                 if (_ptr_sitename) {
8006                         NDR_PULL_ALLOC(ndr, r->sitename);
8007                 } else {
8008                         r->sitename = NULL;
8009                 }
8010         }
8011         if (ndr_flags & NDR_BUFFERS) {
8012                 if (r->sitename) {
8013                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
8014                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8015                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
8016                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
8017                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
8018                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8019                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8020                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8021                         }
8022                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8023                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8024                         }
8025                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
8026                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
8027                 }
8028                 if (r->sitename) {
8029                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
8030                 }
8031         }
8032         return NDR_ERR_SUCCESS;
8033 }
8034
8035 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r)
8036 {
8037         uint32_t cntr_sitename_1;
8038         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesWCtr");
8039         ndr->depth++;
8040         ndr_print_uint32(ndr, "count", r->count);
8041         ndr_print_ptr(ndr, "sitename", r->sitename);
8042         ndr->depth++;
8043         if (r->sitename) {
8044                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
8045                 ndr->depth++;
8046                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
8047                         char *idx_1=NULL;
8048                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
8049                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
8050                                 free(idx_1);
8051                         }
8052                 }
8053                 ndr->depth--;
8054         }
8055         ndr->depth--;
8056         ndr->depth--;
8057 }
8058
8059 static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddress *r)
8060 {
8061         if (ndr_flags & NDR_SCALARS) {
8062                 NDR_CHECK(ndr_push_align(ndr, 4));
8063                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
8064                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
8065         }
8066         if (ndr_flags & NDR_BUFFERS) {
8067                 if (r->buffer) {
8068                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
8069                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->size));
8070                 }
8071         }
8072         return NDR_ERR_SUCCESS;
8073 }
8074
8075 static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r)
8076 {
8077         uint32_t _ptr_buffer;
8078         TALLOC_CTX *_mem_save_buffer_0;
8079         if (ndr_flags & NDR_SCALARS) {
8080                 NDR_CHECK(ndr_pull_align(ndr, 4));
8081                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
8082                 if (_ptr_buffer) {
8083                         NDR_PULL_ALLOC(ndr, r->buffer);
8084                 } else {
8085                         r->buffer = NULL;
8086                 }
8087                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
8088         }
8089         if (ndr_flags & NDR_BUFFERS) {
8090                 if (r->buffer) {
8091                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
8092                         NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
8093                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
8094                         NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
8095                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
8096                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
8097                 }
8098                 if (r->buffer) {
8099                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->size));
8100                 }
8101         }
8102         return NDR_ERR_SUCCESS;
8103 }
8104
8105 _PUBLIC_ void ndr_print_netr_DsRAddress(struct ndr_print *ndr, const char *name, const struct netr_DsRAddress *r)
8106 {
8107         ndr_print_struct(ndr, name, "netr_DsRAddress");
8108         ndr->depth++;
8109         ndr_print_ptr(ndr, "buffer", r->buffer);
8110         ndr->depth++;
8111         if (r->buffer) {
8112                 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->size);
8113         }
8114         ndr->depth--;
8115         ndr_print_uint32(ndr, "size", r->size);
8116         ndr->depth--;
8117 }
8118
8119 static enum ndr_err_code ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
8120 {
8121         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8122         return NDR_ERR_SUCCESS;
8123 }
8124
8125 static enum ndr_err_code ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
8126 {
8127         uint32_t v;
8128         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8129         *r = v;
8130         return NDR_ERR_SUCCESS;
8131 }
8132
8133 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
8134 {
8135         const char *val = NULL;
8136
8137         switch (r) {
8138                 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
8139                 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
8140                 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
8141                 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
8142         }
8143         ndr_print_enum(ndr, name, "ENUM", val, r);
8144 }
8145
8146 static enum ndr_err_code ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
8147 {
8148         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8149         return NDR_ERR_SUCCESS;
8150 }
8151
8152 static enum ndr_err_code ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
8153 {
8154         uint32_t v;
8155         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8156         *r = v;
8157         return NDR_ERR_SUCCESS;
8158 }
8159
8160 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
8161 {
8162         ndr_print_uint32(ndr, name, r);
8163         ndr->depth++;
8164         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
8165         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
8166         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
8167         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
8168         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
8169         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
8170         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
8171         ndr->depth--;
8172 }
8173
8174 static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
8175 {
8176         if (ndr_flags & NDR_SCALARS) {
8177                 NDR_CHECK(ndr_push_align(ndr, 4));
8178                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
8179                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
8180                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
8181                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
8182                 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
8183                 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
8184                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
8185                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
8186         }
8187         if (ndr_flags & NDR_BUFFERS) {
8188                 if (r->netbios_name) {
8189                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
8190                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8191                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
8192                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8193                 }
8194                 if (r->dns_name) {
8195                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_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->dns_name, CH_UTF16)));
8198                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8199                 }
8200                 if (r->sid) {
8201                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
8202                 }
8203         }
8204         return NDR_ERR_SUCCESS;
8205 }
8206
8207 static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
8208 {
8209         uint32_t _ptr_netbios_name;
8210         TALLOC_CTX *_mem_save_netbios_name_0;
8211         uint32_t _ptr_dns_name;
8212         TALLOC_CTX *_mem_save_dns_name_0;
8213         uint32_t _ptr_sid;
8214         TALLOC_CTX *_mem_save_sid_0;
8215         if (ndr_flags & NDR_SCALARS) {
8216                 NDR_CHECK(ndr_pull_align(ndr, 4));
8217                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
8218                 if (_ptr_netbios_name) {
8219                         NDR_PULL_ALLOC(ndr, r->netbios_name);
8220                 } else {
8221                         r->netbios_name = NULL;
8222                 }
8223                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
8224                 if (_ptr_dns_name) {
8225                         NDR_PULL_ALLOC(ndr, r->dns_name);
8226                 } else {
8227                         r->dns_name = NULL;
8228                 }
8229                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
8230                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
8231                 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
8232                 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
8233                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
8234                 if (_ptr_sid) {
8235                         NDR_PULL_ALLOC(ndr, r->sid);
8236                 } else {
8237                         r->sid = NULL;
8238                 }
8239                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
8240         }
8241         if (ndr_flags & NDR_BUFFERS) {
8242                 if (r->netbios_name) {
8243                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8244                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
8245                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
8246                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
8247                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
8248                                 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));
8249                         }
8250                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
8251                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
8252                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
8253                 }
8254                 if (r->dns_name) {
8255                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8256                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
8257                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
8258                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
8259                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
8260                                 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));
8261                         }
8262                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
8263                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
8264                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
8265                 }
8266                 if (r->sid) {
8267                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
8268                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
8269                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
8270                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
8271                 }
8272         }
8273         return NDR_ERR_SUCCESS;
8274 }
8275
8276 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
8277 {
8278         ndr_print_struct(ndr, name, "netr_DomainTrust");
8279         ndr->depth++;
8280         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
8281         ndr->depth++;
8282         if (r->netbios_name) {
8283                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
8284         }
8285         ndr->depth--;
8286         ndr_print_ptr(ndr, "dns_name", r->dns_name);
8287         ndr->depth++;
8288         if (r->dns_name) {
8289                 ndr_print_string(ndr, "dns_name", r->dns_name);
8290         }
8291         ndr->depth--;
8292         ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
8293         ndr_print_uint32(ndr, "parent_index", r->parent_index);
8294         ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
8295         ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
8296         ndr_print_ptr(ndr, "sid", r->sid);
8297         ndr->depth++;
8298         if (r->sid) {
8299                 ndr_print_dom_sid2(ndr, "sid", r->sid);
8300         }
8301         ndr->depth--;
8302         ndr_print_GUID(ndr, "guid", &r->guid);
8303         ndr->depth--;
8304 }
8305
8306 static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustList *r)
8307 {
8308         uint32_t cntr_array_1;
8309         if (ndr_flags & NDR_SCALARS) {
8310                 NDR_CHECK(ndr_push_align(ndr, 4));
8311                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8312                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
8313         }
8314         if (ndr_flags & NDR_BUFFERS) {
8315                 if (r->array) {
8316                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8317                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8318                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8319                         }
8320                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8321                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8322                         }
8323                 }
8324         }
8325         return NDR_ERR_SUCCESS;
8326 }
8327
8328 static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r)
8329 {
8330         uint32_t _ptr_array;
8331         uint32_t cntr_array_1;
8332         TALLOC_CTX *_mem_save_array_0;
8333         TALLOC_CTX *_mem_save_array_1;
8334         if (ndr_flags & NDR_SCALARS) {
8335                 NDR_CHECK(ndr_pull_align(ndr, 4));
8336                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8337                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
8338                 if (_ptr_array) {
8339                         NDR_PULL_ALLOC(ndr, r->array);
8340                 } else {
8341                         r->array = NULL;
8342                 }
8343         }
8344         if (ndr_flags & NDR_BUFFERS) {
8345                 if (r->array) {
8346                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
8347                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8348                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
8349                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
8350                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
8351                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8352                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8353                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8354                         }
8355                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8356                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8357                         }
8358                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
8359                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
8360                 }
8361                 if (r->array) {
8362                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
8363                 }
8364         }
8365         return NDR_ERR_SUCCESS;
8366 }
8367
8368 _PUBLIC_ void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r)
8369 {
8370         uint32_t cntr_array_1;
8371         ndr_print_struct(ndr, name, "netr_DomainTrustList");
8372         ndr->depth++;
8373         ndr_print_uint32(ndr, "count", r->count);
8374         ndr_print_ptr(ndr, "array", r->array);
8375         ndr->depth++;
8376         if (r->array) {
8377                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
8378                 ndr->depth++;
8379                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
8380                         char *idx_1=NULL;
8381                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
8382                                 ndr_print_netr_DomainTrust(ndr, "array", &r->array[cntr_array_1]);
8383                                 free(idx_1);
8384                         }
8385                 }
8386                 ndr->depth--;
8387         }
8388         ndr->depth--;
8389         ndr->depth--;
8390 }
8391
8392 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesExWCtr *r)
8393 {
8394         uint32_t cntr_sitename_1;
8395         uint32_t cntr_subnetname_1;
8396         if (ndr_flags & NDR_SCALARS) {
8397                 NDR_CHECK(ndr_push_align(ndr, 4));
8398                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8399                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
8400                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->subnetname));
8401         }
8402         if (ndr_flags & NDR_BUFFERS) {
8403                 if (r->sitename) {
8404                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8405                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8406                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8407                         }
8408                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8409                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8410                         }
8411                 }
8412                 if (r->subnetname) {
8413                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8414                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8415                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
8416                         }
8417                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8418                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
8419                         }
8420                 }
8421         }
8422         return NDR_ERR_SUCCESS;
8423 }
8424
8425 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r)
8426 {
8427         uint32_t _ptr_sitename;
8428         uint32_t cntr_sitename_1;
8429         TALLOC_CTX *_mem_save_sitename_0;
8430         TALLOC_CTX *_mem_save_sitename_1;
8431         uint32_t _ptr_subnetname;
8432         uint32_t cntr_subnetname_1;
8433         TALLOC_CTX *_mem_save_subnetname_0;
8434         TALLOC_CTX *_mem_save_subnetname_1;
8435         if (ndr_flags & NDR_SCALARS) {
8436                 NDR_CHECK(ndr_pull_align(ndr, 4));
8437                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8438                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
8439                 if (_ptr_sitename) {
8440                         NDR_PULL_ALLOC(ndr, r->sitename);
8441                 } else {
8442                         r->sitename = NULL;
8443                 }
8444                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_subnetname));
8445                 if (_ptr_subnetname) {
8446                         NDR_PULL_ALLOC(ndr, r->subnetname);
8447                 } else {
8448                         r->subnetname = NULL;
8449                 }
8450         }
8451         if (ndr_flags & NDR_BUFFERS) {
8452                 if (r->sitename) {
8453                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
8454                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8455                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
8456                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
8457                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
8458                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8459                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8460                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8461                         }
8462                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8463                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8464                         }
8465                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
8466                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
8467                 }
8468                 if (r->subnetname) {
8469                         _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr);
8470                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
8471                         NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname));
8472                         NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname));
8473                         _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr);
8474                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
8475                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8476                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
8477                         }
8478                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8479                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
8480                         }
8481                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0);
8482                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_0, 0);
8483                 }
8484                 if (r->sitename) {
8485                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
8486                 }
8487                 if (r->subnetname) {
8488                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->subnetname, r->count));
8489                 }
8490         }
8491         return NDR_ERR_SUCCESS;
8492 }
8493
8494 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r)
8495 {
8496         uint32_t cntr_sitename_1;
8497         uint32_t cntr_subnetname_1;
8498         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExWCtr");
8499         ndr->depth++;
8500         ndr_print_uint32(ndr, "count", r->count);
8501         ndr_print_ptr(ndr, "sitename", r->sitename);
8502         ndr->depth++;
8503         if (r->sitename) {
8504                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
8505                 ndr->depth++;
8506                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
8507                         char *idx_1=NULL;
8508                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
8509                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
8510                                 free(idx_1);
8511                         }
8512                 }
8513                 ndr->depth--;
8514         }
8515         ndr->depth--;
8516         ndr_print_ptr(ndr, "subnetname", r->subnetname);
8517         ndr->depth++;
8518         if (r->subnetname) {
8519                 ndr->print(ndr, "%s: ARRAY(%d)", "subnetname", (int)r->count);
8520                 ndr->depth++;
8521                 for (cntr_subnetname_1=0;cntr_subnetname_1<r->count;cntr_subnetname_1++) {
8522                         char *idx_1=NULL;
8523                         if (asprintf(&idx_1, "[%d]", cntr_subnetname_1) != -1) {
8524                                 ndr_print_lsa_String(ndr, "subnetname", &r->subnetname[cntr_subnetname_1]);
8525                                 free(idx_1);
8526                         }
8527                 }
8528                 ndr->depth--;
8529         }
8530         ndr->depth--;
8531         ndr->depth--;
8532 }
8533
8534 static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags, const struct DcSitesCtr *r)
8535 {
8536         uint32_t cntr_sites_1;
8537         if (ndr_flags & NDR_SCALARS) {
8538                 NDR_CHECK(ndr_push_align(ndr, 4));
8539                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
8540                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sites));
8541         }
8542         if (ndr_flags & NDR_BUFFERS) {
8543                 if (r->sites) {
8544                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
8545                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8546                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
8547                         }
8548                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8549                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
8550                         }
8551                 }
8552         }
8553         return NDR_ERR_SUCCESS;
8554 }
8555
8556 static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r)
8557 {
8558         uint32_t _ptr_sites;
8559         uint32_t cntr_sites_1;
8560         TALLOC_CTX *_mem_save_sites_0;
8561         TALLOC_CTX *_mem_save_sites_1;
8562         if (ndr_flags & NDR_SCALARS) {
8563                 NDR_CHECK(ndr_pull_align(ndr, 4));
8564                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sites));
8565                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sites));
8566                 if (_ptr_sites) {
8567                         NDR_PULL_ALLOC(ndr, r->sites);
8568                 } else {
8569                         r->sites = NULL;
8570                 }
8571         }
8572         if (ndr_flags & NDR_BUFFERS) {
8573                 if (r->sites) {
8574                         _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr);
8575                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
8576                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sites));
8577                         NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites));
8578                         _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr);
8579                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
8580                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8581                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
8582                         }
8583                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8584                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
8585                         }
8586                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0);
8587                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_0, 0);
8588                 }
8589                 if (r->sites) {
8590                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sites, r->num_sites));
8591                 }
8592         }
8593         return NDR_ERR_SUCCESS;
8594 }
8595
8596 _PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r)
8597 {
8598         uint32_t cntr_sites_1;
8599         ndr_print_struct(ndr, name, "DcSitesCtr");
8600         ndr->depth++;
8601         ndr_print_uint32(ndr, "num_sites", r->num_sites);
8602         ndr_print_ptr(ndr, "sites", r->sites);
8603         ndr->depth++;
8604         if (r->sites) {
8605                 ndr->print(ndr, "%s: ARRAY(%d)", "sites", (int)r->num_sites);
8606                 ndr->depth++;
8607                 for (cntr_sites_1=0;cntr_sites_1<r->num_sites;cntr_sites_1++) {
8608                         char *idx_1=NULL;
8609                         if (asprintf(&idx_1, "[%d]", cntr_sites_1) != -1) {
8610                                 ndr_print_lsa_String(ndr, "sites", &r->sites[cntr_sites_1]);
8611                                 free(idx_1);
8612                         }
8613                 }
8614                 ndr->depth--;
8615         }
8616         ndr->depth--;
8617         ndr->depth--;
8618 }
8619
8620 static enum ndr_err_code ndr_push_netr_TrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_TrustInfo *r)
8621 {
8622         uint32_t cntr_data_1;
8623         uint32_t cntr_entries_1;
8624         if (ndr_flags & NDR_SCALARS) {
8625                 NDR_CHECK(ndr_push_align(ndr, 4));
8626                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8627                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
8628                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entry_count));
8629                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
8630         }
8631         if (ndr_flags & NDR_BUFFERS) {
8632                 if (r->data) {
8633                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8634                         for (cntr_data_1 = 0; cntr_data_1 < r->count; cntr_data_1++) {
8635                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data[cntr_data_1]));
8636                         }
8637                 }
8638                 if (r->entries) {
8639                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8640                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
8641                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
8642                         }
8643                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
8644                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
8645                         }
8646                 }
8647         }
8648         return NDR_ERR_SUCCESS;
8649 }
8650
8651 static enum ndr_err_code ndr_pull_netr_TrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_TrustInfo *r)
8652 {
8653         uint32_t _ptr_data;
8654         uint32_t cntr_data_1;
8655         TALLOC_CTX *_mem_save_data_0;
8656         TALLOC_CTX *_mem_save_data_1;
8657         uint32_t _ptr_entries;
8658         uint32_t cntr_entries_1;
8659         TALLOC_CTX *_mem_save_entries_0;
8660         TALLOC_CTX *_mem_save_entries_1;
8661         if (ndr_flags & NDR_SCALARS) {
8662                 NDR_CHECK(ndr_pull_align(ndr, 4));
8663                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8664                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
8665                 if (_ptr_data) {
8666                         NDR_PULL_ALLOC(ndr, r->data);
8667                 } else {
8668                         r->data = NULL;
8669                 }
8670                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->entry_count));
8671                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
8672                 if (_ptr_entries) {
8673                         NDR_PULL_ALLOC(ndr, r->entries);
8674                 } else {
8675                         r->entries = NULL;
8676                 }
8677         }
8678         if (ndr_flags & NDR_BUFFERS) {
8679                 if (r->data) {
8680                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
8681                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
8682                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
8683                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
8684                         _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
8685                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
8686                         for (cntr_data_1 = 0; cntr_data_1 < r->count; cntr_data_1++) {
8687                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
8688                         }
8689                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
8690                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
8691                 }
8692                 if (r->entries) {
8693                         _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
8694                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
8695                         NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
8696                         NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
8697                         _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
8698                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
8699                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
8700                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
8701                         }
8702                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
8703                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
8704                         }
8705                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
8706                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
8707                 }
8708                 if (r->data) {
8709                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->count));
8710                 }
8711                 if (r->entries) {
8712                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
8713                 }
8714         }
8715         return NDR_ERR_SUCCESS;
8716 }
8717
8718 _PUBLIC_ void ndr_print_netr_TrustInfo(struct ndr_print *ndr, const char *name, const struct netr_TrustInfo *r)
8719 {
8720         uint32_t cntr_data_1;
8721         uint32_t cntr_entries_1;
8722         ndr_print_struct(ndr, name, "netr_TrustInfo");
8723         ndr->depth++;
8724         ndr_print_uint32(ndr, "count", r->count);
8725         ndr_print_ptr(ndr, "data", r->data);
8726         ndr->depth++;
8727         if (r->data) {
8728                 ndr->print(ndr, "%s: ARRAY(%d)", "data", (int)r->count);
8729                 ndr->depth++;
8730                 for (cntr_data_1=0;cntr_data_1<r->count;cntr_data_1++) {
8731                         char *idx_1=NULL;
8732                         if (asprintf(&idx_1, "[%d]", cntr_data_1) != -1) {
8733                                 ndr_print_uint32(ndr, "data", r->data[cntr_data_1]);
8734                                 free(idx_1);
8735                         }
8736                 }
8737                 ndr->depth--;
8738         }
8739         ndr->depth--;
8740         ndr_print_uint32(ndr, "entry_count", r->entry_count);
8741         ndr_print_ptr(ndr, "entries", r->entries);
8742         ndr->depth++;
8743         if (r->entries) {
8744                 ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
8745                 ndr->depth++;
8746                 for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
8747                         char *idx_1=NULL;
8748                         if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
8749                                 ndr_print_lsa_String(ndr, "entries", &r->entries[cntr_entries_1]);
8750                                 free(idx_1);
8751                         }
8752                 }
8753                 ndr->depth--;
8754         }
8755         ndr->depth--;
8756         ndr->depth--;
8757 }
8758
8759 static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
8760 {
8761         if (flags & NDR_IN) {
8762                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8763                 if (r->in.server_name) {
8764                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8765                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8766                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8767                         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));
8768                 }
8769                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8770                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8771                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8772                 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));
8773                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8774                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8775                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8776                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8777         }
8778         if (flags & NDR_OUT) {
8779                 if (r->out.info == NULL) {
8780                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8781                 }
8782                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
8783                 if (*r->out.info) {
8784                         NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
8785                 }
8786                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8787         }
8788         return NDR_ERR_SUCCESS;
8789 }
8790
8791 static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
8792 {
8793         uint32_t _ptr_server_name;
8794         uint32_t _ptr_info;
8795         TALLOC_CTX *_mem_save_server_name_0;
8796         TALLOC_CTX *_mem_save_info_0;
8797         TALLOC_CTX *_mem_save_info_1;
8798         if (flags & NDR_IN) {
8799                 ZERO_STRUCT(r->out);
8800
8801                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8802                 if (_ptr_server_name) {
8803                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8804                 } else {
8805                         r->in.server_name = NULL;
8806                 }
8807                 if (r->in.server_name) {
8808                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8809                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8810                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8811                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8812                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8813                                 return 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));
8814                         }
8815                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8816                         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));
8817                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8818                 }
8819                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8820                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8821                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8822                         return 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));
8823                 }
8824                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8825                 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));
8826                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8827                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8828                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8829                         return 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));
8830                 }
8831                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8832                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8833                 NDR_PULL_ALLOC(ndr, r->out.info);
8834                 ZERO_STRUCTP(r->out.info);
8835         }
8836         if (flags & NDR_OUT) {
8837                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8838                         NDR_PULL_ALLOC(ndr, r->out.info);
8839                 }
8840                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8841                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8842                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
8843                 if (_ptr_info) {
8844                         NDR_PULL_ALLOC(ndr, *r->out.info);
8845                 } else {
8846                         *r->out.info = NULL;
8847                 }
8848                 if (*r->out.info) {
8849                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
8850                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
8851                         NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
8852                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
8853                 }
8854                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8855                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8856         }
8857         return NDR_ERR_SUCCESS;
8858 }
8859
8860 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
8861 {
8862         ndr_print_struct(ndr, name, "netr_LogonUasLogon");
8863         ndr->depth++;
8864         if (flags & NDR_SET_VALUES) {
8865                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8866         }
8867         if (flags & NDR_IN) {
8868                 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
8869                 ndr->depth++;
8870                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8871                 ndr->depth++;
8872                 if (r->in.server_name) {
8873                         ndr_print_string(ndr, "server_name", r->in.server_name);
8874                 }
8875                 ndr->depth--;
8876                 ndr_print_string(ndr, "account_name", r->in.account_name);
8877                 ndr_print_string(ndr, "workstation", r->in.workstation);
8878                 ndr->depth--;
8879         }
8880         if (flags & NDR_OUT) {
8881                 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
8882                 ndr->depth++;
8883                 ndr_print_ptr(ndr, "info", r->out.info);
8884                 ndr->depth++;
8885                 ndr_print_ptr(ndr, "info", *r->out.info);
8886                 ndr->depth++;
8887                 if (*r->out.info) {
8888                         ndr_print_netr_UasInfo(ndr, "info", *r->out.info);
8889                 }
8890                 ndr->depth--;
8891                 ndr->depth--;
8892                 ndr_print_WERROR(ndr, "result", r->out.result);
8893                 ndr->depth--;
8894         }
8895         ndr->depth--;
8896 }
8897
8898 static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
8899 {
8900         if (flags & NDR_IN) {
8901                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8902                 if (r->in.server_name) {
8903                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8904                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8905                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8906                         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));
8907                 }
8908                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8909                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8910                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8911                 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));
8912                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8913                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8914                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8915                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8916         }
8917         if (flags & NDR_OUT) {
8918                 if (r->out.info == NULL) {
8919                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8920                 }
8921                 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8922                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8923         }
8924         return NDR_ERR_SUCCESS;
8925 }
8926
8927 static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
8928 {
8929         uint32_t _ptr_server_name;
8930         TALLOC_CTX *_mem_save_server_name_0;
8931         TALLOC_CTX *_mem_save_info_0;
8932         if (flags & NDR_IN) {
8933                 ZERO_STRUCT(r->out);
8934
8935                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8936                 if (_ptr_server_name) {
8937                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8938                 } else {
8939                         r->in.server_name = NULL;
8940                 }
8941                 if (r->in.server_name) {
8942                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8943                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8944                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8945                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8946                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8947                                 return 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));
8948                         }
8949                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8950                         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));
8951                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8952                 }
8953                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8954                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8955                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8956                         return 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));
8957                 }
8958                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8959                 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));
8960                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8961                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8962                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8963                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.workstation), ndr_get_array_length(ndr, &r->in.workstation));
8964                 }
8965                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8966                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8967                 NDR_PULL_ALLOC(ndr, r->out.info);
8968                 ZERO_STRUCTP(r->out.info);
8969         }
8970         if (flags & NDR_OUT) {
8971                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8972                         NDR_PULL_ALLOC(ndr, r->out.info);
8973                 }
8974                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8975                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8976                 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8977                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8978                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8979         }
8980         return NDR_ERR_SUCCESS;
8981 }
8982
8983 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
8984 {
8985         ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
8986         ndr->depth++;
8987         if (flags & NDR_SET_VALUES) {
8988                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8989         }
8990         if (flags & NDR_IN) {
8991                 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
8992                 ndr->depth++;
8993                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8994                 ndr->depth++;
8995                 if (r->in.server_name) {
8996                         ndr_print_string(ndr, "server_name", r->in.server_name);
8997                 }
8998                 ndr->depth--;
8999                 ndr_print_string(ndr, "account_name", r->in.account_name);
9000                 ndr_print_string(ndr, "workstation", r->in.workstation);
9001                 ndr->depth--;
9002         }
9003         if (flags & NDR_OUT) {
9004                 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
9005                 ndr->depth++;
9006                 ndr_print_ptr(ndr, "info", r->out.info);
9007                 ndr->depth++;
9008                 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
9009                 ndr->depth--;
9010                 ndr_print_WERROR(ndr, "result", r->out.result);
9011                 ndr->depth--;
9012         }
9013         ndr->depth--;
9014 }
9015
9016 static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
9017 {
9018         if (flags & NDR_IN) {
9019                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9020                 if (r->in.server_name) {
9021                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9022                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9023                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9024                         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));
9025                 }
9026                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
9027                 if (r->in.computer_name) {
9028                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9029                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9030                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9031                         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));
9032                 }
9033                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
9034                 if (r->in.credential) {
9035                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9036                 }
9037                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
9038                 if (r->in.return_authenticator) {
9039                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9040                 }
9041                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
9042                 if (r->in.logon == NULL) {
9043                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9044                 }
9045                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
9046                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
9047                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
9048         }
9049         if (flags & NDR_OUT) {
9050                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
9051                 if (r->out.return_authenticator) {
9052                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9053                 }
9054                 if (r->out.validation == NULL) {
9055                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9056                 }
9057                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
9058                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
9059                 if (r->out.authoritative == NULL) {
9060                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9061                 }
9062                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
9063                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9064         }
9065         return NDR_ERR_SUCCESS;
9066 }
9067
9068 static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
9069 {
9070         uint32_t _ptr_server_name;
9071         uint32_t _ptr_computer_name;
9072         uint32_t _ptr_credential;
9073         uint32_t _ptr_return_authenticator;
9074         TALLOC_CTX *_mem_save_server_name_0;
9075         TALLOC_CTX *_mem_save_computer_name_0;
9076         TALLOC_CTX *_mem_save_credential_0;
9077         TALLOC_CTX *_mem_save_return_authenticator_0;
9078         TALLOC_CTX *_mem_save_logon_0;
9079         TALLOC_CTX *_mem_save_validation_0;
9080         TALLOC_CTX *_mem_save_authoritative_0;
9081         if (flags & NDR_IN) {
9082                 ZERO_STRUCT(r->out);
9083
9084                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9085                 if (_ptr_server_name) {
9086                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9087                 } else {
9088                         r->in.server_name = NULL;
9089                 }
9090                 if (r->in.server_name) {
9091                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9092                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9093                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9094                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9095                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9096                                 return 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));
9097                         }
9098                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9099                         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));
9100                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9101                 }
9102                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
9103                 if (_ptr_computer_name) {
9104                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
9105                 } else {
9106                         r->in.computer_name = NULL;
9107                 }
9108                 if (r->in.computer_name) {
9109                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9110                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
9111                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9112                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9113                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9114                                 return 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));
9115                         }
9116                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9117                         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));
9118                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
9119                 }
9120                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
9121                 if (_ptr_credential) {
9122                         NDR_PULL_ALLOC(ndr, r->in.credential);
9123                 } else {
9124                         r->in.credential = NULL;
9125                 }
9126                 if (r->in.credential) {
9127                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9128                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
9129                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9130                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
9131                 }
9132                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9133                 if (_ptr_return_authenticator) {
9134                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9135                 } else {
9136                         r->in.return_authenticator = NULL;
9137                 }
9138                 if (r->in.return_authenticator) {
9139                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9140                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
9141                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9142                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9143                 }
9144                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
9145                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9146                         NDR_PULL_ALLOC(ndr, r->in.logon);
9147                 }
9148                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
9149                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
9150                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
9151                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
9152                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
9153                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
9154                 NDR_PULL_ALLOC(ndr, r->out.validation);
9155                 ZERO_STRUCTP(r->out.validation);
9156                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
9157                 ZERO_STRUCTP(r->out.authoritative);
9158         }
9159         if (flags & NDR_OUT) {
9160                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9161                 if (_ptr_return_authenticator) {
9162                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9163                 } else {
9164                         r->out.return_authenticator = NULL;
9165                 }
9166                 if (r->out.return_authenticator) {
9167                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9168                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
9169                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9170                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9171                 }
9172                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9173                         NDR_PULL_ALLOC(ndr, r->out.validation);
9174                 }
9175                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
9176                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
9177                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
9178                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
9179                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
9180                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9181                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
9182                 }
9183                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
9184                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
9185                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
9186                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
9187                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9188         }
9189         return NDR_ERR_SUCCESS;
9190 }
9191
9192 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
9193 {
9194         ndr_print_struct(ndr, name, "netr_LogonSamLogon");
9195         ndr->depth++;
9196         if (flags & NDR_SET_VALUES) {
9197                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9198         }
9199         if (flags & NDR_IN) {
9200                 ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
9201                 ndr->depth++;
9202                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9203                 ndr->depth++;
9204                 if (r->in.server_name) {
9205                         ndr_print_string(ndr, "server_name", r->in.server_name);
9206                 }
9207                 ndr->depth--;
9208                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
9209                 ndr->depth++;
9210                 if (r->in.computer_name) {
9211                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
9212                 }
9213                 ndr->depth--;
9214                 ndr_print_ptr(ndr, "credential", r->in.credential);
9215                 ndr->depth++;
9216                 if (r->in.credential) {
9217                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9218                 }
9219                 ndr->depth--;
9220                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9221                 ndr->depth++;
9222                 if (r->in.return_authenticator) {
9223                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9224                 }
9225                 ndr->depth--;
9226                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
9227                 ndr_print_ptr(ndr, "logon", r->in.logon);
9228                 ndr->depth++;
9229                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
9230                 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
9231                 ndr->depth--;
9232                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
9233                 ndr->depth--;
9234         }
9235         if (flags & NDR_OUT) {
9236                 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
9237                 ndr->depth++;
9238                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9239                 ndr->depth++;
9240                 if (r->out.return_authenticator) {
9241                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9242                 }
9243                 ndr->depth--;
9244                 ndr_print_ptr(ndr, "validation", r->out.validation);
9245                 ndr->depth++;
9246                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
9247                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
9248                 ndr->depth--;
9249                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
9250                 ndr->depth++;
9251                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
9252                 ndr->depth--;
9253                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9254                 ndr->depth--;
9255         }
9256         ndr->depth--;
9257 }
9258
9259 static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
9260 {
9261         if (flags & NDR_IN) {
9262                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9263                 if (r->in.server_name) {
9264                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9265                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9266                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9267                         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));
9268                 }
9269                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
9270                 if (r->in.computer_name) {
9271                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9272                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9273                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9274                         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));
9275                 }
9276                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
9277                 if (r->in.credential) {
9278                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9279                 }
9280                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
9281                 if (r->in.return_authenticator) {
9282                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9283                 }
9284                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
9285                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
9286                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
9287         }
9288         if (flags & NDR_OUT) {
9289                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
9290                 if (r->out.return_authenticator) {
9291                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9292                 }
9293                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9294         }
9295         return NDR_ERR_SUCCESS;
9296 }
9297
9298 static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
9299 {
9300         uint32_t _ptr_server_name;
9301         uint32_t _ptr_computer_name;
9302         uint32_t _ptr_credential;
9303         uint32_t _ptr_return_authenticator;
9304         TALLOC_CTX *_mem_save_server_name_0;
9305         TALLOC_CTX *_mem_save_computer_name_0;
9306         TALLOC_CTX *_mem_save_credential_0;
9307         TALLOC_CTX *_mem_save_return_authenticator_0;
9308         if (flags & NDR_IN) {
9309                 ZERO_STRUCT(r->out);
9310
9311                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9312                 if (_ptr_server_name) {
9313                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9314                 } else {
9315                         r->in.server_name = NULL;
9316                 }
9317                 if (r->in.server_name) {
9318                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9319                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9320                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9321                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9322                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9323                                 return 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));
9324                         }
9325                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9326                         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));
9327                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9328                 }
9329                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
9330                 if (_ptr_computer_name) {
9331                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
9332                 } else {
9333                         r->in.computer_name = NULL;
9334                 }
9335                 if (r->in.computer_name) {
9336                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9337                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
9338                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9339                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9340                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9341                                 return 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));
9342                         }
9343                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9344                         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));
9345                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
9346                 }
9347                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
9348                 if (_ptr_credential) {
9349                         NDR_PULL_ALLOC(ndr, r->in.credential);
9350                 } else {
9351                         r->in.credential = NULL;
9352                 }
9353                 if (r->in.credential) {
9354                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9355                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
9356                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9357                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
9358                 }
9359                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9360                 if (_ptr_return_authenticator) {
9361                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9362                 } else {
9363                         r->in.return_authenticator = NULL;
9364                 }
9365                 if (r->in.return_authenticator) {
9366                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9367                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
9368                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9369                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9370                 }
9371                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
9372                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
9373                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
9374         }
9375         if (flags & NDR_OUT) {
9376                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9377                 if (_ptr_return_authenticator) {
9378                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9379                 } else {
9380                         r->out.return_authenticator = NULL;
9381                 }
9382                 if (r->out.return_authenticator) {
9383                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9384                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
9385                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9386                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9387                 }
9388                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9389         }
9390         return NDR_ERR_SUCCESS;
9391 }
9392
9393 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
9394 {
9395         ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
9396         ndr->depth++;
9397         if (flags & NDR_SET_VALUES) {
9398                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9399         }
9400         if (flags & NDR_IN) {
9401                 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
9402                 ndr->depth++;
9403                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9404                 ndr->depth++;
9405                 if (r->in.server_name) {
9406                         ndr_print_string(ndr, "server_name", r->in.server_name);
9407                 }
9408                 ndr->depth--;
9409                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
9410                 ndr->depth++;
9411                 if (r->in.computer_name) {
9412                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
9413                 }
9414                 ndr->depth--;
9415                 ndr_print_ptr(ndr, "credential", r->in.credential);
9416                 ndr->depth++;
9417                 if (r->in.credential) {
9418                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9419                 }
9420                 ndr->depth--;
9421                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9422                 ndr->depth++;
9423                 if (r->in.return_authenticator) {
9424                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9425                 }
9426                 ndr->depth--;
9427                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
9428                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
9429                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
9430                 ndr->depth--;
9431         }
9432         if (flags & NDR_OUT) {
9433                 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
9434                 ndr->depth++;
9435                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9436                 ndr->depth++;
9437                 if (r->out.return_authenticator) {
9438                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9439                 }
9440                 ndr->depth--;
9441                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9442                 ndr->depth--;
9443         }
9444         ndr->depth--;
9445 }
9446
9447 _PUBLIC_ enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
9448 {
9449         if (flags & NDR_IN) {
9450                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9451                 if (r->in.server_name) {
9452                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9453                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9454                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9455                         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));
9456                 }
9457                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9458                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9459                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9460                 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));
9461                 if (r->in.credentials == NULL) {
9462                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9463                 }
9464                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9465         }
9466         if (flags & NDR_OUT) {
9467                 if (r->out.return_credentials == NULL) {
9468                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9469                 }
9470                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9471                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9472         }
9473         return NDR_ERR_SUCCESS;
9474 }
9475
9476 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
9477 {
9478         uint32_t _ptr_server_name;
9479         TALLOC_CTX *_mem_save_server_name_0;
9480         TALLOC_CTX *_mem_save_credentials_0;
9481         TALLOC_CTX *_mem_save_return_credentials_0;
9482         if (flags & NDR_IN) {
9483                 ZERO_STRUCT(r->out);
9484
9485                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9486                 if (_ptr_server_name) {
9487                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9488                 } else {
9489                         r->in.server_name = NULL;
9490                 }
9491                 if (r->in.server_name) {
9492                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9493                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9494                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9495                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9496                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9497                                 return 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));
9498                         }
9499                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9500                         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));
9501                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9502                 }
9503                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9504                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9505                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9506                         return 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));
9507                 }
9508                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9509                 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));
9510                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9511                         NDR_PULL_ALLOC(ndr, r->in.credentials);
9512                 }
9513                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9514                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
9515                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9516                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9517                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9518                 ZERO_STRUCTP(r->out.return_credentials);
9519         }
9520         if (flags & NDR_OUT) {
9521                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9522                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9523                 }
9524                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9525                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
9526                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9527                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9528                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9529         }
9530         return NDR_ERR_SUCCESS;
9531 }
9532
9533 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
9534 {
9535         ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
9536         ndr->depth++;
9537         if (flags & NDR_SET_VALUES) {
9538                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9539         }
9540         if (flags & NDR_IN) {
9541                 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
9542                 ndr->depth++;
9543                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9544                 ndr->depth++;
9545                 if (r->in.server_name) {
9546                         ndr_print_string(ndr, "server_name", r->in.server_name);
9547                 }
9548                 ndr->depth--;
9549                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9550                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
9551                 ndr->depth++;
9552                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
9553                 ndr->depth--;
9554                 ndr->depth--;
9555         }
9556         if (flags & NDR_OUT) {
9557                 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
9558                 ndr->depth++;
9559                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
9560                 ndr->depth++;
9561                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
9562                 ndr->depth--;
9563                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9564                 ndr->depth--;
9565         }
9566         ndr->depth--;
9567 }
9568
9569 static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
9570 {
9571         if (flags & NDR_IN) {
9572                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9573                 if (r->in.server_name) {
9574                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9575                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9576                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9577                         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));
9578                 }
9579                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9580                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9581                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9582                 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));
9583                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
9584                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9585                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9586                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9587                 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));
9588                 if (r->in.credentials == NULL) {
9589                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9590                 }
9591                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9592         }
9593         if (flags & NDR_OUT) {
9594                 if (r->out.return_credentials == NULL) {
9595                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9596                 }
9597                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9598                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9599         }
9600         return NDR_ERR_SUCCESS;
9601 }
9602
9603 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
9604 {
9605         uint32_t _ptr_server_name;
9606         TALLOC_CTX *_mem_save_server_name_0;
9607         TALLOC_CTX *_mem_save_credentials_0;
9608         TALLOC_CTX *_mem_save_return_credentials_0;
9609         if (flags & NDR_IN) {
9610                 ZERO_STRUCT(r->out);
9611
9612                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9613                 if (_ptr_server_name) {
9614                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9615                 } else {
9616                         r->in.server_name = NULL;
9617                 }
9618                 if (r->in.server_name) {
9619                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9620                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9621                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9622                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9623                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9624                                 return 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));
9625                         }
9626                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9627                         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));
9628                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9629                 }
9630                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9631                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9632                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
9633                         return 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));
9634                 }
9635                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9636                 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));
9637                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
9638                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9639                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9640                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9641                         return 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));
9642                 }
9643                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9644                 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));
9645                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9646                         NDR_PULL_ALLOC(ndr, r->in.credentials);
9647                 }
9648                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9649                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
9650                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9651                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9652                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9653                 ZERO_STRUCTP(r->out.return_credentials);
9654         }
9655         if (flags & NDR_OUT) {
9656                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9657                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9658                 }
9659                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9660                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
9661                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9662                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9663                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9664         }
9665         return NDR_ERR_SUCCESS;
9666 }
9667
9668 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
9669 {
9670         ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
9671         ndr->depth++;
9672         if (flags & NDR_SET_VALUES) {
9673                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9674         }
9675         if (flags & NDR_IN) {
9676                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
9677                 ndr->depth++;
9678                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9679                 ndr->depth++;
9680                 if (r->in.server_name) {
9681                         ndr_print_string(ndr, "server_name", r->in.server_name);
9682                 }
9683                 ndr->depth--;
9684                 ndr_print_string(ndr, "account_name", r->in.account_name);
9685                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
9686                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9687                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
9688                 ndr->depth++;
9689                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
9690                 ndr->depth--;
9691                 ndr->depth--;
9692         }
9693         if (flags & NDR_OUT) {
9694                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
9695                 ndr->depth++;
9696                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
9697                 ndr->depth++;
9698                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
9699                 ndr->depth--;
9700                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9701                 ndr->depth--;
9702         }
9703         ndr->depth--;
9704 }
9705
9706 static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
9707 {
9708         if (flags & NDR_IN) {
9709                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9710                 if (r->in.server_name) {
9711                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9712                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9713                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9714                         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));
9715                 }
9716                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9717                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9718                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9719                 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));
9720                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
9721                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9722                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9723                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9724                 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));
9725                 if (r->in.credential == NULL) {
9726                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9727                 }
9728                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9729                 if (r->in.new_password == NULL) {
9730                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9731                 }
9732                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
9733         }
9734         if (flags & NDR_OUT) {
9735                 if (r->out.return_authenticator == NULL) {
9736                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9737                 }
9738                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9739                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9740         }
9741         return NDR_ERR_SUCCESS;
9742 }
9743
9744 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
9745 {
9746         uint32_t _ptr_server_name;
9747         TALLOC_CTX *_mem_save_server_name_0;
9748         TALLOC_CTX *_mem_save_credential_0;
9749         TALLOC_CTX *_mem_save_return_authenticator_0;
9750         TALLOC_CTX *_mem_save_new_password_0;
9751         if (flags & NDR_IN) {
9752                 ZERO_STRUCT(r->out);
9753
9754                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9755                 if (_ptr_server_name) {
9756                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9757                 } else {
9758                         r->in.server_name = NULL;
9759                 }
9760                 if (r->in.server_name) {
9761                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9762                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9763                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9764                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9765                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9766                                 return 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));
9767                         }
9768                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9769                         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));
9770                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9771                 }
9772                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9773                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9774                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
9775                         return 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));
9776                 }
9777                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9778                 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));
9779                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
9780                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9781                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9782                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9783                         return 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));
9784                 }
9785                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9786                 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));
9787                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9788                         NDR_PULL_ALLOC(ndr, r->in.credential);
9789                 }
9790                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9791                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
9792                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9793                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
9794                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9795                         NDR_PULL_ALLOC(ndr, r->in.new_password);
9796                 }
9797                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
9798                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
9799                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
9800                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
9801                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9802                 ZERO_STRUCTP(r->out.return_authenticator);
9803         }
9804         if (flags & NDR_OUT) {
9805                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9806                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9807                 }
9808                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9809                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9810                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9811                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9812                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9813         }
9814         return NDR_ERR_SUCCESS;
9815 }
9816
9817 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
9818 {
9819         ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
9820         ndr->depth++;
9821         if (flags & NDR_SET_VALUES) {
9822                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9823         }
9824         if (flags & NDR_IN) {
9825                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
9826                 ndr->depth++;
9827                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9828                 ndr->depth++;
9829                 if (r->in.server_name) {
9830                         ndr_print_string(ndr, "server_name", r->in.server_name);
9831                 }
9832                 ndr->depth--;
9833                 ndr_print_string(ndr, "account_name", r->in.account_name);
9834                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
9835                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9836                 ndr_print_ptr(ndr, "credential", r->in.credential);
9837                 ndr->depth++;
9838                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9839                 ndr->depth--;
9840                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
9841                 ndr->depth++;
9842                 ndr_print_samr_Password(ndr, "new_password", r->in.new_password);
9843                 ndr->depth--;
9844                 ndr->depth--;
9845         }
9846         if (flags & NDR_OUT) {
9847                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
9848                 ndr->depth++;
9849                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9850                 ndr->depth++;
9851                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9852                 ndr->depth--;
9853                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9854                 ndr->depth--;
9855         }
9856         ndr->depth--;
9857 }
9858
9859 static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
9860 {
9861         if (flags & NDR_IN) {
9862                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, 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.logon_server, CH_UTF16)));
9865                 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));
9866                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9867                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9868                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9869                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9870                 if (r->in.credential == NULL) {
9871                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9872                 }
9873                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9874                 if (r->in.return_authenticator == NULL) {
9875                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9876                 }
9877                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9878                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9879                 if (r->in.sequence_num == NULL) {
9880                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9881                 }
9882                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
9883                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9884         }
9885         if (flags & NDR_OUT) {
9886                 if (r->out.return_authenticator == NULL) {
9887                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9888                 }
9889                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9890                 if (r->out.sequence_num == NULL) {
9891                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9892                 }
9893                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
9894                 if (r->out.delta_enum_array == NULL) {
9895                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9896                 }
9897                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
9898                 if (*r->out.delta_enum_array) {
9899                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9900                 }
9901                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9902         }
9903         return NDR_ERR_SUCCESS;
9904 }
9905
9906 static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
9907 {
9908         uint32_t _ptr_delta_enum_array;
9909         TALLOC_CTX *_mem_save_credential_0;
9910         TALLOC_CTX *_mem_save_return_authenticator_0;
9911         TALLOC_CTX *_mem_save_sequence_num_0;
9912         TALLOC_CTX *_mem_save_delta_enum_array_0;
9913         TALLOC_CTX *_mem_save_delta_enum_array_1;
9914         if (flags & NDR_IN) {
9915                 ZERO_STRUCT(r->out);
9916
9917                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9918                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9919                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9920                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
9921                 }
9922                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9923                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.logon_server, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t), CH_UTF16));
9924                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9925                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9926                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9927                         return 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));
9928                 }
9929                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9930                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9931                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9932                         NDR_PULL_ALLOC(ndr, r->in.credential);
9933                 }
9934                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9935                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
9936                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9937                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
9938                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9939                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9940                 }
9941                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9942                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9943                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9944                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9945                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9946                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9947                         NDR_PULL_ALLOC(ndr, r->in.sequence_num);
9948                 }
9949                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9950                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9951                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
9952                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9953                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9954                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9955                 *r->out.return_authenticator = *r->in.return_authenticator;
9956                 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9957                 *r->out.sequence_num = *r->in.sequence_num;
9958                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9959                 ZERO_STRUCTP(r->out.delta_enum_array);
9960         }
9961         if (flags & NDR_OUT) {
9962                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9963                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9964                 }
9965                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9966                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9967                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9968                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9969                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9970                         NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9971                 }
9972                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9973                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9974                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
9975                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9976                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9977                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9978                 }
9979                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9980                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9981                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
9982                 if (_ptr_delta_enum_array) {
9983                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
9984                 } else {
9985                         *r->out.delta_enum_array = NULL;
9986                 }
9987                 if (*r->out.delta_enum_array) {
9988                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
9989                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
9990                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9991                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
9992                 }
9993                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9994                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9995         }
9996         return NDR_ERR_SUCCESS;
9997 }
9998
9999 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
10000 {
10001         ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
10002         ndr->depth++;
10003         if (flags & NDR_SET_VALUES) {
10004                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10005         }
10006         if (flags & NDR_IN) {
10007                 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
10008                 ndr->depth++;
10009                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10010                 ndr_print_string(ndr, "computername", r->in.computername);
10011                 ndr_print_ptr(ndr, "credential", r->in.credential);
10012                 ndr->depth++;
10013                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10014                 ndr->depth--;
10015                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10016                 ndr->depth++;
10017                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10018                 ndr->depth--;
10019                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10020                 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
10021                 ndr->depth++;
10022                 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
10023                 ndr->depth--;
10024                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10025                 ndr->depth--;
10026         }
10027         if (flags & NDR_OUT) {
10028                 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
10029                 ndr->depth++;
10030                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10031                 ndr->depth++;
10032                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10033                 ndr->depth--;
10034                 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
10035                 ndr->depth++;
10036                 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
10037                 ndr->depth--;
10038                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10039                 ndr->depth++;
10040                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10041                 ndr->depth++;
10042                 if (*r->out.delta_enum_array) {
10043                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10044                 }
10045                 ndr->depth--;
10046                 ndr->depth--;
10047                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10048                 ndr->depth--;
10049         }
10050         ndr->depth--;
10051 }
10052
10053 static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
10054 {
10055         if (flags & NDR_IN) {
10056                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10057                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10058                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10059                 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));
10060                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10061                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10062                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10063                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10064                 if (r->in.credential == NULL) {
10065                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10066                 }
10067                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10068                 if (r->in.return_authenticator == NULL) {
10069                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10070                 }
10071                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10072                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10073                 if (r->in.sync_context == NULL) {
10074                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10075                 }
10076                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
10077                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10078         }
10079         if (flags & NDR_OUT) {
10080                 if (r->out.return_authenticator == NULL) {
10081                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10082                 }
10083                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10084                 if (r->out.sync_context == NULL) {
10085                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10086                 }
10087                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
10088                 if (r->out.delta_enum_array == NULL) {
10089                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10090                 }
10091                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10092                 if (*r->out.delta_enum_array) {
10093                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10094                 }
10095                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10096         }
10097         return NDR_ERR_SUCCESS;
10098 }
10099
10100 static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
10101 {
10102         uint32_t _ptr_delta_enum_array;
10103         TALLOC_CTX *_mem_save_credential_0;
10104         TALLOC_CTX *_mem_save_return_authenticator_0;
10105         TALLOC_CTX *_mem_save_sync_context_0;
10106         TALLOC_CTX *_mem_save_delta_enum_array_0;
10107         TALLOC_CTX *_mem_save_delta_enum_array_1;
10108         if (flags & NDR_IN) {
10109                 ZERO_STRUCT(r->out);
10110
10111                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10112                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10113                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10114                         return 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));
10115                 }
10116                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10117                 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));
10118                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10119                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10120                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10121                         return 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));
10122                 }
10123                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10124                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10125                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10126                         NDR_PULL_ALLOC(ndr, r->in.credential);
10127                 }
10128                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10129                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10130                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10131                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10132                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10133                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10134                 }
10135                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10136                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10137                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10138                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10139                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10140                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10141                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
10142                 }
10143                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10144                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
10145                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
10146                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10147                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10148                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10149                 *r->out.return_authenticator = *r->in.return_authenticator;
10150                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10151                 *r->out.sync_context = *r->in.sync_context;
10152                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10153                 ZERO_STRUCTP(r->out.delta_enum_array);
10154         }
10155         if (flags & NDR_OUT) {
10156                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10157                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10158                 }
10159                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10160                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10161                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10162                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10163                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10164                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
10165                 }
10166                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10167                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
10168                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
10169                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10170                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10171                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10172                 }
10173                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10174                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10175                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10176                 if (_ptr_delta_enum_array) {
10177                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
10178                 } else {
10179                         *r->out.delta_enum_array = NULL;
10180                 }
10181                 if (*r->out.delta_enum_array) {
10182                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
10183                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
10184                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10185                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
10186                 }
10187                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10188                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10189         }
10190         return NDR_ERR_SUCCESS;
10191 }
10192
10193 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
10194 {
10195         ndr_print_struct(ndr, name, "netr_DatabaseSync");
10196         ndr->depth++;
10197         if (flags & NDR_SET_VALUES) {
10198                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10199         }
10200         if (flags & NDR_IN) {
10201                 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
10202                 ndr->depth++;
10203                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10204                 ndr_print_string(ndr, "computername", r->in.computername);
10205                 ndr_print_ptr(ndr, "credential", r->in.credential);
10206                 ndr->depth++;
10207                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10208                 ndr->depth--;
10209                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10210                 ndr->depth++;
10211                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10212                 ndr->depth--;
10213                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10214                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
10215                 ndr->depth++;
10216                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
10217                 ndr->depth--;
10218                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10219                 ndr->depth--;
10220         }
10221         if (flags & NDR_OUT) {
10222                 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
10223                 ndr->depth++;
10224                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10225                 ndr->depth++;
10226                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10227                 ndr->depth--;
10228                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
10229                 ndr->depth++;
10230                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
10231                 ndr->depth--;
10232                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10233                 ndr->depth++;
10234                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10235                 ndr->depth++;
10236                 if (*r->out.delta_enum_array) {
10237                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10238                 }
10239                 ndr->depth--;
10240                 ndr->depth--;
10241                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10242                 ndr->depth--;
10243         }
10244         ndr->depth--;
10245 }
10246
10247 static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
10248 {
10249         if (flags & NDR_IN) {
10250                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10251                 if (r->in.logon_server) {
10252                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10253                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10254                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10255                         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));
10256                 }
10257                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10258                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10259                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10260                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10261                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10262                 if (r->in.return_authenticator == NULL) {
10263                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10264                 }
10265                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10266                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
10267                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
10268                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10269                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
10270         }
10271         if (flags & NDR_OUT) {
10272                 if (r->out.return_authenticator == NULL) {
10273                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10274                 }
10275                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10276                 if (r->out.buffer == NULL) {
10277                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10278                 }
10279                 {
10280                         struct ndr_push *_ndr_buffer;
10281                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10282                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10283                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
10284                 }
10285                 if (r->out.count_returned == NULL) {
10286                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10287                 }
10288                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
10289                 if (r->out.total_entries == NULL) {
10290                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10291                 }
10292                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
10293                 if (r->out.recordid == NULL) {
10294                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10295                 }
10296                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10297                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10298         }
10299         return NDR_ERR_SUCCESS;
10300 }
10301
10302 static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
10303 {
10304         uint32_t _ptr_logon_server;
10305         TALLOC_CTX *_mem_save_logon_server_0;
10306         TALLOC_CTX *_mem_save_return_authenticator_0;
10307         TALLOC_CTX *_mem_save_buffer_0;
10308         TALLOC_CTX *_mem_save_count_returned_0;
10309         TALLOC_CTX *_mem_save_total_entries_0;
10310         TALLOC_CTX *_mem_save_recordid_0;
10311         if (flags & NDR_IN) {
10312                 ZERO_STRUCT(r->out);
10313
10314                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10315                 if (_ptr_logon_server) {
10316                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10317                 } else {
10318                         r->in.logon_server = NULL;
10319                 }
10320                 if (r->in.logon_server) {
10321                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10322                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10323                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10324                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10325                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10326                                 return 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));
10327                         }
10328                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10329                         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));
10330                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10331                 }
10332                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10333                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10334                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10335                         return 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));
10336                 }
10337                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10338                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10339                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10340                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10341                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10342                 }
10343                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10344                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10345                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10346                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10347                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
10348                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
10349                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10350                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
10351                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10352                 *r->out.return_authenticator = *r->in.return_authenticator;
10353                 NDR_PULL_ALLOC(ndr, r->out.buffer);
10354                 ZERO_STRUCTP(r->out.buffer);
10355                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
10356                 ZERO_STRUCTP(r->out.count_returned);
10357                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
10358                 ZERO_STRUCTP(r->out.total_entries);
10359                 NDR_PULL_ALLOC(ndr, r->out.recordid);
10360                 ZERO_STRUCTP(r->out.recordid);
10361         }
10362         if (flags & NDR_OUT) {
10363                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10364                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10365                 }
10366                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10367                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10368                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10369                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10370                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10371                         NDR_PULL_ALLOC(ndr, r->out.buffer);
10372                 }
10373                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
10374                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
10375                 {
10376                         struct ndr_pull *_ndr_buffer;
10377                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10378                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10379                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
10380                 }
10381                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
10382                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10383                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
10384                 }
10385                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
10386                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
10387                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
10388                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
10389                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10390                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
10391                 }
10392                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
10393                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
10394                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
10395                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
10396                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10397                         NDR_PULL_ALLOC(ndr, r->out.recordid);
10398                 }
10399                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10400                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
10401                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10402                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
10403                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10404         }
10405         return NDR_ERR_SUCCESS;
10406 }
10407
10408 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
10409 {
10410         ndr_print_struct(ndr, name, "netr_AccountDeltas");
10411         ndr->depth++;
10412         if (flags & NDR_SET_VALUES) {
10413                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10414         }
10415         if (flags & NDR_IN) {
10416                 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
10417                 ndr->depth++;
10418                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10419                 ndr->depth++;
10420                 if (r->in.logon_server) {
10421                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10422                 }
10423                 ndr->depth--;
10424                 ndr_print_string(ndr, "computername", r->in.computername);
10425                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10426                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10427                 ndr->depth++;
10428                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10429                 ndr->depth--;
10430                 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
10431                 ndr_print_uint32(ndr, "count", r->in.count);
10432                 ndr_print_uint32(ndr, "level", r->in.level);
10433                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
10434                 ndr->depth--;
10435         }
10436         if (flags & NDR_OUT) {
10437                 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
10438                 ndr->depth++;
10439                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10440                 ndr->depth++;
10441                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10442                 ndr->depth--;
10443                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
10444                 ndr->depth++;
10445                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
10446                 ndr->depth--;
10447                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
10448                 ndr->depth++;
10449                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
10450                 ndr->depth--;
10451                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
10452                 ndr->depth++;
10453                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
10454                 ndr->depth--;
10455                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
10456                 ndr->depth++;
10457                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
10458                 ndr->depth--;
10459                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10460                 ndr->depth--;
10461         }
10462         ndr->depth--;
10463 }
10464
10465 static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
10466 {
10467         if (flags & NDR_IN) {
10468                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10469                 if (r->in.logon_server) {
10470                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10471                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10472                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10473                         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));
10474                 }
10475                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10476                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10477                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10478                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10479                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10480                 if (r->in.return_authenticator == NULL) {
10481                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10482                 }
10483                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10484                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
10485                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10486                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
10487                 if (r->in.recordid == NULL) {
10488                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10489                 }
10490                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
10491         }
10492         if (flags & NDR_OUT) {
10493                 if (r->out.return_authenticator == NULL) {
10494                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10495                 }
10496                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10497                 if (r->out.buffer == NULL) {
10498                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10499                 }
10500                 {
10501                         struct ndr_push *_ndr_buffer;
10502                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10503                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10504                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
10505                 }
10506                 if (r->out.count_returned == NULL) {
10507                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10508                 }
10509                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
10510                 if (r->out.total_entries == NULL) {
10511                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10512                 }
10513                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
10514                 if (r->out.next_reference == NULL) {
10515                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10516                 }
10517                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
10518                 if (r->out.recordid == NULL) {
10519                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10520                 }
10521                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10522                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10523         }
10524         return NDR_ERR_SUCCESS;
10525 }
10526
10527 static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
10528 {
10529         uint32_t _ptr_logon_server;
10530         TALLOC_CTX *_mem_save_logon_server_0;
10531         TALLOC_CTX *_mem_save_return_authenticator_0;
10532         TALLOC_CTX *_mem_save_buffer_0;
10533         TALLOC_CTX *_mem_save_count_returned_0;
10534         TALLOC_CTX *_mem_save_total_entries_0;
10535         TALLOC_CTX *_mem_save_next_reference_0;
10536         TALLOC_CTX *_mem_save_recordid_0;
10537         if (flags & NDR_IN) {
10538                 ZERO_STRUCT(r->out);
10539
10540                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10541                 if (_ptr_logon_server) {
10542                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10543                 } else {
10544                         r->in.logon_server = NULL;
10545                 }
10546                 if (r->in.logon_server) {
10547                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10548                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10549                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10550                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10551                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10552                                 return 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));
10553                         }
10554                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10555                         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));
10556                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10557                 }
10558                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10559                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10560                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10561                         return 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));
10562                 }
10563                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10564                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10565                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10566                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10567                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10568                 }
10569                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10570                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10571                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10572                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10573                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
10574                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10575                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
10576                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10577                         NDR_PULL_ALLOC(ndr, r->in.recordid);
10578                 }
10579                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10580                 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
10581                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
10582                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
10583                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10584                 *r->out.return_authenticator = *r->in.return_authenticator;
10585                 NDR_PULL_ALLOC(ndr, r->out.buffer);
10586                 ZERO_STRUCTP(r->out.buffer);
10587                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
10588                 ZERO_STRUCTP(r->out.count_returned);
10589                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
10590                 ZERO_STRUCTP(r->out.total_entries);
10591                 NDR_PULL_ALLOC(ndr, r->out.next_reference);
10592                 ZERO_STRUCTP(r->out.next_reference);
10593                 NDR_PULL_ALLOC(ndr, r->out.recordid);
10594                 *r->out.recordid = *r->in.recordid;
10595         }
10596         if (flags & NDR_OUT) {
10597                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10598                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10599                 }
10600                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10601                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10602                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10603                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10604                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10605                         NDR_PULL_ALLOC(ndr, r->out.buffer);
10606                 }
10607                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
10608                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
10609                 {
10610                         struct ndr_pull *_ndr_buffer;
10611                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10612                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10613                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
10614                 }
10615                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
10616                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10617                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
10618                 }
10619                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
10620                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
10621                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
10622                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
10623                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10624                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
10625                 }
10626                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
10627                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
10628                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
10629                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
10630                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10631                         NDR_PULL_ALLOC(ndr, r->out.next_reference);
10632                 }
10633                 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
10634                 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
10635                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
10636                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
10637                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10638                         NDR_PULL_ALLOC(ndr, r->out.recordid);
10639                 }
10640                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10641                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
10642                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10643                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
10644                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10645         }
10646         return NDR_ERR_SUCCESS;
10647 }
10648
10649 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
10650 {
10651         ndr_print_struct(ndr, name, "netr_AccountSync");
10652         ndr->depth++;
10653         if (flags & NDR_SET_VALUES) {
10654                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10655         }
10656         if (flags & NDR_IN) {
10657                 ndr_print_struct(ndr, "in", "netr_AccountSync");
10658                 ndr->depth++;
10659                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10660                 ndr->depth++;
10661                 if (r->in.logon_server) {
10662                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10663                 }
10664                 ndr->depth--;
10665                 ndr_print_string(ndr, "computername", r->in.computername);
10666                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10667                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10668                 ndr->depth++;
10669                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10670                 ndr->depth--;
10671                 ndr_print_uint32(ndr, "reference", r->in.reference);
10672                 ndr_print_uint32(ndr, "level", r->in.level);
10673                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
10674                 ndr_print_ptr(ndr, "recordid", r->in.recordid);
10675                 ndr->depth++;
10676                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
10677                 ndr->depth--;
10678                 ndr->depth--;
10679         }
10680         if (flags & NDR_OUT) {
10681                 ndr_print_struct(ndr, "out", "netr_AccountSync");
10682                 ndr->depth++;
10683                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10684                 ndr->depth++;
10685                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10686                 ndr->depth--;
10687                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
10688                 ndr->depth++;
10689                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
10690                 ndr->depth--;
10691                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
10692                 ndr->depth++;
10693                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
10694                 ndr->depth--;
10695                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
10696                 ndr->depth++;
10697                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
10698                 ndr->depth--;
10699                 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
10700                 ndr->depth++;
10701                 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
10702                 ndr->depth--;
10703                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
10704                 ndr->depth++;
10705                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
10706                 ndr->depth--;
10707                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10708                 ndr->depth--;
10709         }
10710         ndr->depth--;
10711 }
10712
10713 static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
10714 {
10715         if (flags & NDR_IN) {
10716                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10717                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10718                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10719                 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));
10720                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
10721                 if (r->in.domainname) {
10722                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10723                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10724                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10725                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10726                 }
10727         }
10728         if (flags & NDR_OUT) {
10729                 if (r->out.dcname == NULL) {
10730                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10731                 }
10732                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
10733                 if (*r->out.dcname) {
10734                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10735                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10736                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10737                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10738                 }
10739                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10740         }
10741         return NDR_ERR_SUCCESS;
10742 }
10743
10744 static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
10745 {
10746         uint32_t _ptr_domainname;
10747         uint32_t _ptr_dcname;
10748         TALLOC_CTX *_mem_save_domainname_0;
10749         TALLOC_CTX *_mem_save_dcname_0;
10750         TALLOC_CTX *_mem_save_dcname_1;
10751         if (flags & NDR_IN) {
10752                 ZERO_STRUCT(r->out);
10753
10754                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10755                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10756                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10757                         return 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));
10758                 }
10759                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10760                 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));
10761                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
10762                 if (_ptr_domainname) {
10763                         NDR_PULL_ALLOC(ndr, r->in.domainname);
10764                 } else {
10765                         r->in.domainname = NULL;
10766                 }
10767                 if (r->in.domainname) {
10768                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10769                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
10770                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
10771                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
10772                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
10773                                 return 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));
10774                         }
10775                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
10776                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
10777                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
10778                 }
10779                 NDR_PULL_ALLOC(ndr, r->out.dcname);
10780                 ZERO_STRUCTP(r->out.dcname);
10781         }
10782         if (flags & NDR_OUT) {
10783                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10784                         NDR_PULL_ALLOC(ndr, r->out.dcname);
10785                 }
10786                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10787                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
10788                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
10789                 if (_ptr_dcname) {
10790                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
10791                 } else {
10792                         *r->out.dcname = NULL;
10793                 }
10794                 if (*r->out.dcname) {
10795                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
10796                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
10797                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
10798                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
10799                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
10800                                 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));
10801                         }
10802                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
10803                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
10804                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
10805                 }
10806                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
10807                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10808         }
10809         return NDR_ERR_SUCCESS;
10810 }
10811
10812 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
10813 {
10814         ndr_print_struct(ndr, name, "netr_GetDcName");
10815         ndr->depth++;
10816         if (flags & NDR_SET_VALUES) {
10817                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10818         }
10819         if (flags & NDR_IN) {
10820                 ndr_print_struct(ndr, "in", "netr_GetDcName");
10821                 ndr->depth++;
10822                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10823                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
10824                 ndr->depth++;
10825                 if (r->in.domainname) {
10826                         ndr_print_string(ndr, "domainname", r->in.domainname);
10827                 }
10828                 ndr->depth--;
10829                 ndr->depth--;
10830         }
10831         if (flags & NDR_OUT) {
10832                 ndr_print_struct(ndr, "out", "netr_GetDcName");
10833                 ndr->depth++;
10834                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
10835                 ndr->depth++;
10836                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
10837                 ndr->depth++;
10838                 if (*r->out.dcname) {
10839                         ndr_print_string(ndr, "dcname", *r->out.dcname);
10840                 }
10841                 ndr->depth--;
10842                 ndr->depth--;
10843                 ndr_print_WERROR(ndr, "result", r->out.result);
10844                 ndr->depth--;
10845         }
10846         ndr->depth--;
10847 }
10848
10849 static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
10850 {
10851         if (flags & NDR_IN) {
10852                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10853                 if (r->in.logon_server) {
10854                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10855                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10856                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10857                         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));
10858                 }
10859                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
10860                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10861         }
10862         if (flags & NDR_OUT) {
10863                 if (r->out.info == NULL) {
10864                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10865                 }
10866                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
10867                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10868                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10869         }
10870         return NDR_ERR_SUCCESS;
10871 }
10872
10873 static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
10874 {
10875         uint32_t _ptr_logon_server;
10876         TALLOC_CTX *_mem_save_logon_server_0;
10877         TALLOC_CTX *_mem_save_info_0;
10878         if (flags & NDR_IN) {
10879                 ZERO_STRUCT(r->out);
10880
10881                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10882                 if (_ptr_logon_server) {
10883                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10884                 } else {
10885                         r->in.logon_server = NULL;
10886                 }
10887                 if (r->in.logon_server) {
10888                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10889                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10890                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10891                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10892                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10893                                 return 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));
10894                         }
10895                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10896                         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));
10897                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10898                 }
10899                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
10900                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10901                 NDR_PULL_ALLOC(ndr, r->out.info);
10902                 ZERO_STRUCTP(r->out.info);
10903         }
10904         if (flags & NDR_OUT) {
10905                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10906                         NDR_PULL_ALLOC(ndr, r->out.info);
10907                 }
10908                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10909                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
10910                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
10911                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10912                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
10913                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10914         }
10915         return NDR_ERR_SUCCESS;
10916 }
10917
10918 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
10919 {
10920         ndr_print_struct(ndr, name, "netr_LogonControl");
10921         ndr->depth++;
10922         if (flags & NDR_SET_VALUES) {
10923                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10924         }
10925         if (flags & NDR_IN) {
10926                 ndr_print_struct(ndr, "in", "netr_LogonControl");
10927                 ndr->depth++;
10928                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10929                 ndr->depth++;
10930                 if (r->in.logon_server) {
10931                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10932                 }
10933                 ndr->depth--;
10934                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
10935                 ndr_print_uint32(ndr, "level", r->in.level);
10936                 ndr->depth--;
10937         }
10938         if (flags & NDR_OUT) {
10939                 ndr_print_struct(ndr, "out", "netr_LogonControl");
10940                 ndr->depth++;
10941                 ndr_print_ptr(ndr, "info", r->out.info);
10942                 ndr->depth++;
10943                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
10944                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "info", r->out.info);
10945                 ndr->depth--;
10946                 ndr_print_WERROR(ndr, "result", r->out.result);
10947                 ndr->depth--;
10948         }
10949         ndr->depth--;
10950 }
10951
10952 static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
10953 {
10954         if (flags & NDR_IN) {
10955                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10956                 if (r->in.logon_server) {
10957                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10958                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10959                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10960                         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));
10961                 }
10962                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
10963                 if (r->in.domainname) {
10964                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10965                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10966                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10967                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10968                 }
10969         }
10970         if (flags & NDR_OUT) {
10971                 if (r->out.dcname == NULL) {
10972                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10973                 }
10974                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
10975                 if (*r->out.dcname) {
10976                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10977                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10978                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10979                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10980                 }
10981                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10982         }
10983         return NDR_ERR_SUCCESS;
10984 }
10985
10986 static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
10987 {
10988         uint32_t _ptr_logon_server;
10989         uint32_t _ptr_domainname;
10990         uint32_t _ptr_dcname;
10991         TALLOC_CTX *_mem_save_logon_server_0;
10992         TALLOC_CTX *_mem_save_domainname_0;
10993         TALLOC_CTX *_mem_save_dcname_0;
10994         TALLOC_CTX *_mem_save_dcname_1;
10995         if (flags & NDR_IN) {
10996                 ZERO_STRUCT(r->out);
10997
10998                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10999                 if (_ptr_logon_server) {
11000                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
11001                 } else {
11002                         r->in.logon_server = NULL;
11003                 }
11004                 if (r->in.logon_server) {
11005                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11006                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11007                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11008                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11009                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11010                                 return 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));
11011                         }
11012                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11013                         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));
11014                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11015                 }
11016                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
11017                 if (_ptr_domainname) {
11018                         NDR_PULL_ALLOC(ndr, r->in.domainname);
11019                 } else {
11020                         r->in.domainname = NULL;
11021                 }
11022                 if (r->in.domainname) {
11023                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11024                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
11025                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
11026                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
11027                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
11028                                 return 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));
11029                         }
11030                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
11031                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
11032                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
11033                 }
11034                 NDR_PULL_ALLOC(ndr, r->out.dcname);
11035                 ZERO_STRUCTP(r->out.dcname);
11036         }
11037         if (flags & NDR_OUT) {
11038                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11039                         NDR_PULL_ALLOC(ndr, r->out.dcname);
11040                 }
11041                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11042                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
11043                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
11044                 if (_ptr_dcname) {
11045                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
11046                 } else {
11047                         *r->out.dcname = NULL;
11048                 }
11049                 if (*r->out.dcname) {
11050                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
11051                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
11052                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
11053                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
11054                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
11055                                 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));
11056                         }
11057                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
11058                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
11059                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
11060                 }
11061                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
11062                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11063         }
11064         return NDR_ERR_SUCCESS;
11065 }
11066
11067 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
11068 {
11069         ndr_print_struct(ndr, name, "netr_GetAnyDCName");
11070         ndr->depth++;
11071         if (flags & NDR_SET_VALUES) {
11072                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11073         }
11074         if (flags & NDR_IN) {
11075                 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
11076                 ndr->depth++;
11077                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11078                 ndr->depth++;
11079                 if (r->in.logon_server) {
11080                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11081                 }
11082                 ndr->depth--;
11083                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
11084                 ndr->depth++;
11085                 if (r->in.domainname) {
11086                         ndr_print_string(ndr, "domainname", r->in.domainname);
11087                 }
11088                 ndr->depth--;
11089                 ndr->depth--;
11090         }
11091         if (flags & NDR_OUT) {
11092                 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
11093                 ndr->depth++;
11094                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
11095                 ndr->depth++;
11096                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
11097                 ndr->depth++;
11098                 if (*r->out.dcname) {
11099                         ndr_print_string(ndr, "dcname", *r->out.dcname);
11100                 }
11101                 ndr->depth--;
11102                 ndr->depth--;
11103                 ndr_print_WERROR(ndr, "result", r->out.result);
11104                 ndr->depth--;
11105         }
11106         ndr->depth--;
11107 }
11108
11109 static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
11110 {
11111         if (flags & NDR_IN) {
11112                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11113                 if (r->in.logon_server) {
11114                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11115                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11116                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11117                         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));
11118                 }
11119                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
11120                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11121                 if (r->in.data == NULL) {
11122                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11123                 }
11124                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
11125                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
11126         }
11127         if (flags & NDR_OUT) {
11128                 if (r->out.query == NULL) {
11129                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11130                 }
11131                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
11132                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11133                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11134         }
11135         return NDR_ERR_SUCCESS;
11136 }
11137
11138 static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
11139 {
11140         uint32_t _ptr_logon_server;
11141         TALLOC_CTX *_mem_save_logon_server_0;
11142         TALLOC_CTX *_mem_save_data_0;
11143         TALLOC_CTX *_mem_save_query_0;
11144         if (flags & NDR_IN) {
11145                 ZERO_STRUCT(r->out);
11146
11147                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11148                 if (_ptr_logon_server) {
11149                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
11150                 } else {
11151                         r->in.logon_server = NULL;
11152                 }
11153                 if (r->in.logon_server) {
11154                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11155                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11156                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11157                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11158                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11159                                 return 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));
11160                         }
11161                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11162                         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));
11163                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11164                 }
11165                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
11166                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11167                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11168                         NDR_PULL_ALLOC(ndr, r->in.data);
11169                 }
11170                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
11171                 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
11172                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
11173                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
11174                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
11175                 NDR_PULL_ALLOC(ndr, r->out.query);
11176                 ZERO_STRUCTP(r->out.query);
11177         }
11178         if (flags & NDR_OUT) {
11179                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11180                         NDR_PULL_ALLOC(ndr, r->out.query);
11181                 }
11182                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
11183                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
11184                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
11185                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11186                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
11187                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11188         }
11189         return NDR_ERR_SUCCESS;
11190 }
11191
11192 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
11193 {
11194         ndr_print_struct(ndr, name, "netr_LogonControl2");
11195         ndr->depth++;
11196         if (flags & NDR_SET_VALUES) {
11197                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11198         }
11199         if (flags & NDR_IN) {
11200                 ndr_print_struct(ndr, "in", "netr_LogonControl2");
11201                 ndr->depth++;
11202                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11203                 ndr->depth++;
11204                 if (r->in.logon_server) {
11205                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11206                 }
11207                 ndr->depth--;
11208                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
11209                 ndr_print_uint32(ndr, "level", r->in.level);
11210                 ndr_print_ptr(ndr, "data", r->in.data);
11211                 ndr->depth++;
11212                 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
11213                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
11214                 ndr->depth--;
11215                 ndr->depth--;
11216         }
11217         if (flags & NDR_OUT) {
11218                 ndr_print_struct(ndr, "out", "netr_LogonControl2");
11219                 ndr->depth++;
11220                 ndr_print_ptr(ndr, "query", r->out.query);
11221                 ndr->depth++;
11222                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
11223                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
11224                 ndr->depth--;
11225                 ndr_print_WERROR(ndr, "result", r->out.result);
11226                 ndr->depth--;
11227         }
11228         ndr->depth--;
11229 }
11230
11231 static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
11232 {
11233         if (flags & NDR_IN) {
11234                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11235                 if (r->in.server_name) {
11236                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11237                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11238                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11239                         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));
11240                 }
11241                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11242                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11243                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11244                 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));
11245                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11246                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11247                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11248                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11249                 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));
11250                 if (r->in.credentials == NULL) {
11251                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11252                 }
11253                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11254                 if (r->in.negotiate_flags == NULL) {
11255                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11256                 }
11257                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
11258         }
11259         if (flags & NDR_OUT) {
11260                 if (r->out.return_credentials == NULL) {
11261                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11262                 }
11263                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
11264                 if (r->out.negotiate_flags == NULL) {
11265                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11266                 }
11267                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
11268                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11269         }
11270         return NDR_ERR_SUCCESS;
11271 }
11272
11273 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
11274 {
11275         uint32_t _ptr_server_name;
11276         TALLOC_CTX *_mem_save_server_name_0;
11277         TALLOC_CTX *_mem_save_credentials_0;
11278         TALLOC_CTX *_mem_save_return_credentials_0;
11279         TALLOC_CTX *_mem_save_negotiate_flags_0;
11280         if (flags & NDR_IN) {
11281                 ZERO_STRUCT(r->out);
11282
11283                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11284                 if (_ptr_server_name) {
11285                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11286                 } else {
11287                         r->in.server_name = NULL;
11288                 }
11289                 if (r->in.server_name) {
11290                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11291                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11292                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11293                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11294                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11295                                 return 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));
11296                         }
11297                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11298                         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));
11299                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11300                 }
11301                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11302                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11303                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11304                         return 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));
11305                 }
11306                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11307                 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));
11308                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11309                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11310                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11311                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11312                         return 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));
11313                 }
11314                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11315                 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));
11316                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11317                         NDR_PULL_ALLOC(ndr, r->in.credentials);
11318                 }
11319                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11320                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
11321                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11322                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11323                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11324                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
11325                 }
11326                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11327                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11328                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
11329                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11330                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
11331                 ZERO_STRUCTP(r->out.return_credentials);
11332                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11333                 *r->out.negotiate_flags = *r->in.negotiate_flags;
11334         }
11335         if (flags & NDR_OUT) {
11336                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11337                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
11338                 }
11339                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11340                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
11341                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
11342                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11343                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11344                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11345                 }
11346                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11347                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11348                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
11349                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11350                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11351         }
11352         return NDR_ERR_SUCCESS;
11353 }
11354
11355 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
11356 {
11357         ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
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_ServerAuthenticate2");
11364                 ndr->depth++;
11365                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11366                 ndr->depth++;
11367                 if (r->in.server_name) {
11368                         ndr_print_string(ndr, "server_name", r->in.server_name);
11369                 }
11370                 ndr->depth--;
11371                 ndr_print_string(ndr, "account_name", r->in.account_name);
11372                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
11373                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11374                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
11375                 ndr->depth++;
11376                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
11377                 ndr->depth--;
11378                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
11379                 ndr->depth++;
11380                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
11381                 ndr->depth--;
11382                 ndr->depth--;
11383         }
11384         if (flags & NDR_OUT) {
11385                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
11386                 ndr->depth++;
11387                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
11388                 ndr->depth++;
11389                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
11390                 ndr->depth--;
11391                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
11392                 ndr->depth++;
11393                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
11394                 ndr->depth--;
11395                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11396                 ndr->depth--;
11397         }
11398         ndr->depth--;
11399 }
11400
11401 static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
11402 {
11403         if (flags & NDR_IN) {
11404                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11405                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11406                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11407                 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));
11408                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11409                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11410                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11411                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11412                 if (r->in.credential == NULL) {
11413                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11414                 }
11415                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11416                 if (r->in.return_authenticator == NULL) {
11417                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11418                 }
11419                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11420                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
11421                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.restart_state));
11422                 if (r->in.sync_context == NULL) {
11423                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11424                 }
11425                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
11426                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
11427         }
11428         if (flags & NDR_OUT) {
11429                 if (r->out.return_authenticator == NULL) {
11430                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11431                 }
11432                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11433                 if (r->out.sync_context == NULL) {
11434                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11435                 }
11436                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
11437                 if (r->out.delta_enum_array == NULL) {
11438                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11439                 }
11440                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
11441                 if (*r->out.delta_enum_array) {
11442                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
11443                 }
11444                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11445         }
11446         return NDR_ERR_SUCCESS;
11447 }
11448
11449 static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
11450 {
11451         uint32_t _ptr_delta_enum_array;
11452         TALLOC_CTX *_mem_save_credential_0;
11453         TALLOC_CTX *_mem_save_return_authenticator_0;
11454         TALLOC_CTX *_mem_save_sync_context_0;
11455         TALLOC_CTX *_mem_save_delta_enum_array_0;
11456         TALLOC_CTX *_mem_save_delta_enum_array_1;
11457         if (flags & NDR_IN) {
11458                 ZERO_STRUCT(r->out);
11459
11460                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11461                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11462                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11463                         return 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));
11464                 }
11465                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11466                 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));
11467                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
11468                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
11469                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
11470                         return 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));
11471                 }
11472                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
11473                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
11474                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11475                         NDR_PULL_ALLOC(ndr, r->in.credential);
11476                 }
11477                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
11478                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
11479                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11480                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
11481                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11482                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
11483                 }
11484                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11485                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11486                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11487                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11488                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
11489                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.restart_state));
11490                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11491                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
11492                 }
11493                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
11494                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
11495                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
11496                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
11497                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
11498                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11499                 *r->out.return_authenticator = *r->in.return_authenticator;
11500                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
11501                 *r->out.sync_context = *r->in.sync_context;
11502                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11503                 ZERO_STRUCTP(r->out.delta_enum_array);
11504         }
11505         if (flags & NDR_OUT) {
11506                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11507                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11508                 }
11509                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11510                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11511                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11512                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11513                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11514                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
11515                 }
11516                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
11517                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
11518                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
11519                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
11520                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11521                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11522                 }
11523                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11524                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
11525                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
11526                 if (_ptr_delta_enum_array) {
11527                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
11528                 } else {
11529                         *r->out.delta_enum_array = NULL;
11530                 }
11531                 if (*r->out.delta_enum_array) {
11532                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
11533                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
11534                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
11535                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
11536                 }
11537                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
11538                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11539         }
11540         return NDR_ERR_SUCCESS;
11541 }
11542
11543 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
11544 {
11545         ndr_print_struct(ndr, name, "netr_DatabaseSync2");
11546         ndr->depth++;
11547         if (flags & NDR_SET_VALUES) {
11548                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11549         }
11550         if (flags & NDR_IN) {
11551                 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
11552                 ndr->depth++;
11553                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11554                 ndr_print_string(ndr, "computername", r->in.computername);
11555                 ndr_print_ptr(ndr, "credential", r->in.credential);
11556                 ndr->depth++;
11557                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
11558                 ndr->depth--;
11559                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
11560                 ndr->depth++;
11561                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
11562                 ndr->depth--;
11563                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
11564                 ndr_print_uint16(ndr, "restart_state", r->in.restart_state);
11565                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
11566                 ndr->depth++;
11567                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
11568                 ndr->depth--;
11569                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
11570                 ndr->depth--;
11571         }
11572         if (flags & NDR_OUT) {
11573                 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
11574                 ndr->depth++;
11575                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
11576                 ndr->depth++;
11577                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
11578                 ndr->depth--;
11579                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
11580                 ndr->depth++;
11581                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
11582                 ndr->depth--;
11583                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
11584                 ndr->depth++;
11585                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
11586                 ndr->depth++;
11587                 if (*r->out.delta_enum_array) {
11588                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
11589                 }
11590                 ndr->depth--;
11591                 ndr->depth--;
11592                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11593                 ndr->depth--;
11594         }
11595         ndr->depth--;
11596 }
11597
11598 static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
11599 {
11600         if (flags & NDR_IN) {
11601                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11602                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11603                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11604                 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));
11605                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11606                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11607                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11608                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11609                 if (r->in.credential == NULL) {
11610                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11611                 }
11612                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11613                 if (r->in.return_authenticator == NULL) {
11614                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11615                 }
11616                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11617                 {
11618                         struct ndr_push *_ndr_change_log_entry;
11619                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_change_log_entry, 4, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->flags)));
11620                         NDR_CHECK(ndr_push_netr_ChangeLogEntry(_ndr_change_log_entry, NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
11621                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_change_log_entry, 4, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->flags)));
11622                 }
11623                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->flags)));
11624         }
11625         if (flags & NDR_OUT) {
11626                 if (r->out.return_authenticator == NULL) {
11627                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11628                 }
11629                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11630                 if (r->out.delta_enum_array == NULL) {
11631                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11632                 }
11633                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
11634                 if (*r->out.delta_enum_array) {
11635                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
11636                 }
11637                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11638         }
11639         return NDR_ERR_SUCCESS;
11640 }
11641
11642 static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
11643 {
11644         uint32_t _ptr_delta_enum_array;
11645         TALLOC_CTX *_mem_save_credential_0;
11646         TALLOC_CTX *_mem_save_return_authenticator_0;
11647         TALLOC_CTX *_mem_save_delta_enum_array_0;
11648         TALLOC_CTX *_mem_save_delta_enum_array_1;
11649         if (flags & NDR_IN) {
11650                 ZERO_STRUCT(r->out);
11651
11652                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11653                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11654                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11655                         return 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));
11656                 }
11657                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11658                 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));
11659                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
11660                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
11661                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
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.computername), ndr_get_array_length(ndr, &r->in.computername));
11663                 }
11664                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
11665                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
11666                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11667                         NDR_PULL_ALLOC(ndr, r->in.credential);
11668                 }
11669                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
11670                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
11671                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11672                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
11673                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11674                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
11675                 }
11676                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11677                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11678                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11679                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11680                 {
11681                         struct ndr_pull *_ndr_change_log_entry;
11682                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_change_log_entry, 4, r->in.change_log_entry_size));
11683                         NDR_CHECK(ndr_pull_netr_ChangeLogEntry(_ndr_change_log_entry, NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
11684                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_change_log_entry, 4, r->in.change_log_entry_size));
11685                 }
11686                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
11687                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11688                 *r->out.return_authenticator = *r->in.return_authenticator;
11689                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11690                 ZERO_STRUCTP(r->out.delta_enum_array);
11691         }
11692         if (flags & NDR_OUT) {
11693                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11694                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11695                 }
11696                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11697                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11698                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11699                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11700                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11701                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11702                 }
11703                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11704                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
11705                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
11706                 if (_ptr_delta_enum_array) {
11707                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
11708                 } else {
11709                         *r->out.delta_enum_array = NULL;
11710                 }
11711                 if (*r->out.delta_enum_array) {
11712                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
11713                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
11714                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
11715                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
11716                 }
11717                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
11718                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11719         }
11720         return NDR_ERR_SUCCESS;
11721 }
11722
11723 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
11724 {
11725         ndr_print_struct(ndr, name, "netr_DatabaseRedo");
11726         ndr->depth++;
11727         if (flags & NDR_SET_VALUES) {
11728                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11729         }
11730         if (flags & NDR_IN) {
11731                 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
11732                 ndr->depth++;
11733                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11734                 ndr_print_string(ndr, "computername", r->in.computername);
11735                 ndr_print_ptr(ndr, "credential", r->in.credential);
11736                 ndr->depth++;
11737                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
11738                 ndr->depth--;
11739                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
11740                 ndr->depth++;
11741                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
11742                 ndr->depth--;
11743                 ndr_print_netr_ChangeLogEntry(ndr, "change_log_entry", &r->in.change_log_entry);
11744                 ndr_print_uint32(ndr, "change_log_entry_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->flags):r->in.change_log_entry_size);
11745                 ndr->depth--;
11746         }
11747         if (flags & NDR_OUT) {
11748                 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
11749                 ndr->depth++;
11750                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
11751                 ndr->depth++;
11752                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
11753                 ndr->depth--;
11754                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
11755                 ndr->depth++;
11756                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
11757                 ndr->depth++;
11758                 if (*r->out.delta_enum_array) {
11759                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
11760                 }
11761                 ndr->depth--;
11762                 ndr->depth--;
11763                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11764                 ndr->depth--;
11765         }
11766         ndr->depth--;
11767 }
11768
11769 static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
11770 {
11771         if (flags & NDR_IN) {
11772                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11773                 if (r->in.logon_server) {
11774                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11775                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11776                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11777                         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));
11778                 }
11779                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
11780                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11781                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
11782                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
11783         }
11784         if (flags & NDR_OUT) {
11785                 if (r->out.query == NULL) {
11786                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11787                 }
11788                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
11789                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11790                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11791         }
11792         return NDR_ERR_SUCCESS;
11793 }
11794
11795 static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
11796 {
11797         uint32_t _ptr_logon_server;
11798         TALLOC_CTX *_mem_save_logon_server_0;
11799         TALLOC_CTX *_mem_save_query_0;
11800         if (flags & NDR_IN) {
11801                 ZERO_STRUCT(r->out);
11802
11803                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11804                 if (_ptr_logon_server) {
11805                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
11806                 } else {
11807                         r->in.logon_server = NULL;
11808                 }
11809                 if (r->in.logon_server) {
11810                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11811                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11812                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11813                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11814                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11815                                 return 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));
11816                         }
11817                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11818                         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));
11819                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11820                 }
11821                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
11822                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11823                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
11824                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
11825                 NDR_PULL_ALLOC(ndr, r->out.query);
11826                 ZERO_STRUCTP(r->out.query);
11827         }
11828         if (flags & NDR_OUT) {
11829                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11830                         NDR_PULL_ALLOC(ndr, r->out.query);
11831                 }
11832                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
11833                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
11834                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
11835                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11836                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
11837                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11838         }
11839         return NDR_ERR_SUCCESS;
11840 }
11841
11842 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
11843 {
11844         ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
11845         ndr->depth++;
11846         if (flags & NDR_SET_VALUES) {
11847                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11848         }
11849         if (flags & NDR_IN) {
11850                 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
11851                 ndr->depth++;
11852                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11853                 ndr->depth++;
11854                 if (r->in.logon_server) {
11855                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11856                 }
11857                 ndr->depth--;
11858                 ndr_print_uint32(ndr, "function_code", r->in.function_code);
11859                 ndr_print_uint32(ndr, "level", r->in.level);
11860                 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
11861                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
11862                 ndr->depth--;
11863         }
11864         if (flags & NDR_OUT) {
11865                 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
11866                 ndr->depth++;
11867                 ndr_print_ptr(ndr, "query", r->out.query);
11868                 ndr->depth++;
11869                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
11870                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
11871                 ndr->depth--;
11872                 ndr_print_WERROR(ndr, "result", r->out.result);
11873                 ndr->depth--;
11874         }
11875         ndr->depth--;
11876 }
11877
11878 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
11879 {
11880         if (flags & NDR_IN) {
11881                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11882                 if (r->in.server_name) {
11883                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11884                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11885                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11886                         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));
11887                 }
11888         }
11889         if (flags & NDR_OUT) {
11890                 if (r->out.trusted_domains_blob == NULL) {
11891                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11892                 }
11893                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
11894                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11895         }
11896         return NDR_ERR_SUCCESS;
11897 }
11898
11899 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r)
11900 {
11901         uint32_t _ptr_server_name;
11902         TALLOC_CTX *_mem_save_server_name_0;
11903         TALLOC_CTX *_mem_save_trusted_domains_blob_0;
11904         if (flags & NDR_IN) {
11905                 ZERO_STRUCT(r->out);
11906
11907                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11908                 if (_ptr_server_name) {
11909                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11910                 } else {
11911                         r->in.server_name = NULL;
11912                 }
11913                 if (r->in.server_name) {
11914                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11915                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11916                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11917                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11918                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11919                                 return 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));
11920                         }
11921                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11922                         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));
11923                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11924                 }
11925                 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11926                 ZERO_STRUCTP(r->out.trusted_domains_blob);
11927         }
11928         if (flags & NDR_OUT) {
11929                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11930                         NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11931                 }
11932                 _mem_save_trusted_domains_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
11933                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusted_domains_blob, LIBNDR_FLAG_REF_ALLOC);
11934                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
11935                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_blob_0, LIBNDR_FLAG_REF_ALLOC);
11936                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11937         }
11938         return NDR_ERR_SUCCESS;
11939 }
11940
11941 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
11942 {
11943         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomains");
11944         ndr->depth++;
11945         if (flags & NDR_SET_VALUES) {
11946                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11947         }
11948         if (flags & NDR_IN) {
11949                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomains");
11950                 ndr->depth++;
11951                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11952                 ndr->depth++;
11953                 if (r->in.server_name) {
11954                         ndr_print_string(ndr, "server_name", r->in.server_name);
11955                 }
11956                 ndr->depth--;
11957                 ndr->depth--;
11958         }
11959         if (flags & NDR_OUT) {
11960                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomains");
11961                 ndr->depth++;
11962                 ndr_print_ptr(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11963                 ndr->depth++;
11964                 ndr_print_netr_Blob(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11965                 ndr->depth--;
11966                 ndr_print_WERROR(ndr, "result", r->out.result);
11967                 ndr->depth--;
11968         }
11969         ndr->depth--;
11970 }
11971
11972 static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
11973 {
11974         if (flags & NDR_IN) {
11975                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11976                 if (r->in.server_unc) {
11977                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11978                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11979                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11980                         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));
11981                 }
11982                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11983                 if (r->in.domain_name) {
11984                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11985                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11986                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11987                         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));
11988                 }
11989                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11990                 if (r->in.domain_guid) {
11991                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
11992                 }
11993                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
11994                 if (r->in.site_guid) {
11995                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.site_guid));
11996                 }
11997                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11998         }
11999         if (flags & NDR_OUT) {
12000                 if (r->out.info == NULL) {
12001                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12002                 }
12003                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
12004                 if (*r->out.info) {
12005                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12006                 }
12007                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12008         }
12009         return NDR_ERR_SUCCESS;
12010 }
12011
12012 static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
12013 {
12014         uint32_t _ptr_server_unc;
12015         uint32_t _ptr_domain_name;
12016         uint32_t _ptr_domain_guid;
12017         uint32_t _ptr_site_guid;
12018         uint32_t _ptr_info;
12019         TALLOC_CTX *_mem_save_server_unc_0;
12020         TALLOC_CTX *_mem_save_domain_name_0;
12021         TALLOC_CTX *_mem_save_domain_guid_0;
12022         TALLOC_CTX *_mem_save_site_guid_0;
12023         TALLOC_CTX *_mem_save_info_0;
12024         TALLOC_CTX *_mem_save_info_1;
12025         if (flags & NDR_IN) {
12026                 ZERO_STRUCT(r->out);
12027
12028                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12029                 if (_ptr_server_unc) {
12030                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
12031                 } else {
12032                         r->in.server_unc = NULL;
12033                 }
12034                 if (r->in.server_unc) {
12035                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12036                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12037                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12038                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12039                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12040                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_unc), ndr_get_array_length(ndr, &r->in.server_unc));
12041                         }
12042                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12043                         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));
12044                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12045                 }
12046                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12047                 if (_ptr_domain_name) {
12048                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12049                 } else {
12050                         r->in.domain_name = NULL;
12051                 }
12052                 if (r->in.domain_name) {
12053                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12054                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12055                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12056                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12057                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12058                                 return 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));
12059                         }
12060                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12061                         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));
12062                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12063                 }
12064                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12065                 if (_ptr_domain_guid) {
12066                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12067                 } else {
12068                         r->in.domain_guid = NULL;
12069                 }
12070                 if (r->in.domain_guid) {
12071                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12072                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12073                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12074                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12075                 }
12076                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
12077                 if (_ptr_site_guid) {
12078                         NDR_PULL_ALLOC(ndr, r->in.site_guid);
12079                 } else {
12080                         r->in.site_guid = NULL;
12081                 }
12082                 if (r->in.site_guid) {
12083                         _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12084                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
12085                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.site_guid));
12086                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
12087                 }
12088                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12089                 NDR_PULL_ALLOC(ndr, r->out.info);
12090                 ZERO_STRUCTP(r->out.info);
12091         }
12092         if (flags & NDR_OUT) {
12093                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12094                         NDR_PULL_ALLOC(ndr, r->out.info);
12095                 }
12096                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12097                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12098                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12099                 if (_ptr_info) {
12100                         NDR_PULL_ALLOC(ndr, *r->out.info);
12101                 } else {
12102                         *r->out.info = NULL;
12103                 }
12104                 if (*r->out.info) {
12105                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
12106                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
12107                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12108                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
12109                 }
12110                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12111                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12112         }
12113         return NDR_ERR_SUCCESS;
12114 }
12115
12116 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
12117 {
12118         ndr_print_struct(ndr, name, "netr_DsRGetDCName");
12119         ndr->depth++;
12120         if (flags & NDR_SET_VALUES) {
12121                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12122         }
12123         if (flags & NDR_IN) {
12124                 ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
12125                 ndr->depth++;
12126                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
12127                 ndr->depth++;
12128                 if (r->in.server_unc) {
12129                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
12130                 }
12131                 ndr->depth--;
12132                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12133                 ndr->depth++;
12134                 if (r->in.domain_name) {
12135                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12136                 }
12137                 ndr->depth--;
12138                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
12139                 ndr->depth++;
12140                 if (r->in.domain_guid) {
12141                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
12142                 }
12143                 ndr->depth--;
12144                 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
12145                 ndr->depth++;
12146                 if (r->in.site_guid) {
12147                         ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
12148                 }
12149                 ndr->depth--;
12150                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
12151                 ndr->depth--;
12152         }
12153         if (flags & NDR_OUT) {
12154                 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
12155                 ndr->depth++;
12156                 ndr_print_ptr(ndr, "info", r->out.info);
12157                 ndr->depth++;
12158                 ndr_print_ptr(ndr, "info", *r->out.info);
12159                 ndr->depth++;
12160                 if (*r->out.info) {
12161                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
12162                 }
12163                 ndr->depth--;
12164                 ndr->depth--;
12165                 ndr_print_WERROR(ndr, "result", r->out.result);
12166                 ndr->depth--;
12167         }
12168         ndr->depth--;
12169 }
12170
12171 static enum ndr_err_code ndr_push_netr_NETRLOGONDUMMYROUTINE1(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
12172 {
12173         if (flags & NDR_IN) {
12174         }
12175         if (flags & NDR_OUT) {
12176                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12177         }
12178         return NDR_ERR_SUCCESS;
12179 }
12180
12181 static enum ndr_err_code ndr_pull_netr_NETRLOGONDUMMYROUTINE1(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONDUMMYROUTINE1 *r)
12182 {
12183         if (flags & NDR_IN) {
12184         }
12185         if (flags & NDR_OUT) {
12186                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12187         }
12188         return NDR_ERR_SUCCESS;
12189 }
12190
12191 _PUBLIC_ void ndr_print_netr_NETRLOGONDUMMYROUTINE1(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
12192 {
12193         ndr_print_struct(ndr, name, "netr_NETRLOGONDUMMYROUTINE1");
12194         ndr->depth++;
12195         if (flags & NDR_SET_VALUES) {
12196                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12197         }
12198         if (flags & NDR_IN) {
12199                 ndr_print_struct(ndr, "in", "netr_NETRLOGONDUMMYROUTINE1");
12200                 ndr->depth++;
12201                 ndr->depth--;
12202         }
12203         if (flags & NDR_OUT) {
12204                 ndr_print_struct(ndr, "out", "netr_NETRLOGONDUMMYROUTINE1");
12205                 ndr->depth++;
12206                 ndr_print_WERROR(ndr, "result", r->out.result);
12207                 ndr->depth--;
12208         }
12209         ndr->depth--;
12210 }
12211
12212 static enum ndr_err_code ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
12213 {
12214         if (flags & NDR_IN) {
12215         }
12216         if (flags & NDR_OUT) {
12217                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12218         }
12219         return NDR_ERR_SUCCESS;
12220 }
12221
12222 static enum ndr_err_code ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
12223 {
12224         if (flags & NDR_IN) {
12225         }
12226         if (flags & NDR_OUT) {
12227                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12228         }
12229         return NDR_ERR_SUCCESS;
12230 }
12231
12232 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
12233 {
12234         ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
12235         ndr->depth++;
12236         if (flags & NDR_SET_VALUES) {
12237                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12238         }
12239         if (flags & NDR_IN) {
12240                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
12241                 ndr->depth++;
12242                 ndr->depth--;
12243         }
12244         if (flags & NDR_OUT) {
12245                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
12246                 ndr->depth++;
12247                 ndr_print_WERROR(ndr, "result", r->out.result);
12248                 ndr->depth--;
12249         }
12250         ndr->depth--;
12251 }
12252
12253 static enum ndr_err_code ndr_push_netr_LogonGetTrustRid(struct ndr_push *ndr, int flags, const struct netr_LogonGetTrustRid *r)
12254 {
12255         if (flags & NDR_IN) {
12256                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12257                 if (r->in.server_name) {
12258                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12259                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12260                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12261                         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));
12262                 }
12263                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12264                 if (r->in.domain_name) {
12265                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12266                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12267                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12268                         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));
12269                 }
12270         }
12271         if (flags & NDR_OUT) {
12272                 if (r->out.rid == NULL) {
12273                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12274                 }
12275                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
12276                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12277         }
12278         return NDR_ERR_SUCCESS;
12279 }
12280
12281 static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, int flags, struct netr_LogonGetTrustRid *r)
12282 {
12283         uint32_t _ptr_server_name;
12284         uint32_t _ptr_domain_name;
12285         TALLOC_CTX *_mem_save_server_name_0;
12286         TALLOC_CTX *_mem_save_domain_name_0;
12287         TALLOC_CTX *_mem_save_rid_0;
12288         if (flags & NDR_IN) {
12289                 ZERO_STRUCT(r->out);
12290
12291                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12292                 if (_ptr_server_name) {
12293                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12294                 } else {
12295                         r->in.server_name = NULL;
12296                 }
12297                 if (r->in.server_name) {
12298                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12299                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12300                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12301                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12302                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12303                                 return 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));
12304                         }
12305                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12306                         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));
12307                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12308                 }
12309                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12310                 if (_ptr_domain_name) {
12311                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12312                 } else {
12313                         r->in.domain_name = NULL;
12314                 }
12315                 if (r->in.domain_name) {
12316                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12317                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12318                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12319                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12320                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12321                                 return 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));
12322                         }
12323                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12324                         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));
12325                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12326                 }
12327                 NDR_PULL_ALLOC(ndr, r->out.rid);
12328                 ZERO_STRUCTP(r->out.rid);
12329         }
12330         if (flags & NDR_OUT) {
12331                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12332                         NDR_PULL_ALLOC(ndr, r->out.rid);
12333                 }
12334                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12335                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
12336                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
12337                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
12338                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12339         }
12340         return NDR_ERR_SUCCESS;
12341 }
12342
12343 _PUBLIC_ void ndr_print_netr_LogonGetTrustRid(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetTrustRid *r)
12344 {
12345         ndr_print_struct(ndr, name, "netr_LogonGetTrustRid");
12346         ndr->depth++;
12347         if (flags & NDR_SET_VALUES) {
12348                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12349         }
12350         if (flags & NDR_IN) {
12351                 ndr_print_struct(ndr, "in", "netr_LogonGetTrustRid");
12352                 ndr->depth++;
12353                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12354                 ndr->depth++;
12355                 if (r->in.server_name) {
12356                         ndr_print_string(ndr, "server_name", r->in.server_name);
12357                 }
12358                 ndr->depth--;
12359                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12360                 ndr->depth++;
12361                 if (r->in.domain_name) {
12362                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12363                 }
12364                 ndr->depth--;
12365                 ndr->depth--;
12366         }
12367         if (flags & NDR_OUT) {
12368                 ndr_print_struct(ndr, "out", "netr_LogonGetTrustRid");
12369                 ndr->depth++;
12370                 ndr_print_ptr(ndr, "rid", r->out.rid);
12371                 ndr->depth++;
12372                 ndr_print_uint32(ndr, "rid", *r->out.rid);
12373                 ndr->depth--;
12374                 ndr_print_WERROR(ndr, "result", r->out.result);
12375                 ndr->depth--;
12376         }
12377         ndr->depth--;
12378 }
12379
12380 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
12381 {
12382         if (flags & NDR_IN) {
12383         }
12384         if (flags & NDR_OUT) {
12385                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12386         }
12387         return NDR_ERR_SUCCESS;
12388 }
12389
12390 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
12391 {
12392         if (flags & NDR_IN) {
12393         }
12394         if (flags & NDR_OUT) {
12395                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12396         }
12397         return NDR_ERR_SUCCESS;
12398 }
12399
12400 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
12401 {
12402         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
12403         ndr->depth++;
12404         if (flags & NDR_SET_VALUES) {
12405                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12406         }
12407         if (flags & NDR_IN) {
12408                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
12409                 ndr->depth++;
12410                 ndr->depth--;
12411         }
12412         if (flags & NDR_OUT) {
12413                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
12414                 ndr->depth++;
12415                 ndr_print_WERROR(ndr, "result", r->out.result);
12416                 ndr->depth--;
12417         }
12418         ndr->depth--;
12419 }
12420
12421 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
12422 {
12423         if (flags & NDR_IN) {
12424         }
12425         if (flags & NDR_OUT) {
12426                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12427         }
12428         return NDR_ERR_SUCCESS;
12429 }
12430
12431 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
12432 {
12433         if (flags & NDR_IN) {
12434         }
12435         if (flags & NDR_OUT) {
12436                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12437         }
12438         return NDR_ERR_SUCCESS;
12439 }
12440
12441 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
12442 {
12443         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
12444         ndr->depth++;
12445         if (flags & NDR_SET_VALUES) {
12446                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12447         }
12448         if (flags & NDR_IN) {
12449                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
12450                 ndr->depth++;
12451                 ndr->depth--;
12452         }
12453         if (flags & NDR_OUT) {
12454                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
12455                 ndr->depth++;
12456                 ndr_print_WERROR(ndr, "result", r->out.result);
12457                 ndr->depth--;
12458         }
12459         ndr->depth--;
12460 }
12461
12462 _PUBLIC_ enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
12463 {
12464         if (flags & NDR_IN) {
12465                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12466                 if (r->in.server_name) {
12467                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12468                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12469                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12470                         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));
12471                 }
12472                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12473                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12474                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12475                 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));
12476                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12477                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12478                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12479                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12480                 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));
12481                 if (r->in.credentials == NULL) {
12482                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12483                 }
12484                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
12485                 if (r->in.negotiate_flags == NULL) {
12486                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12487                 }
12488                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
12489         }
12490         if (flags & NDR_OUT) {
12491                 if (r->out.return_credentials == NULL) {
12492                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12493                 }
12494                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
12495                 if (r->out.negotiate_flags == NULL) {
12496                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12497                 }
12498                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
12499                 if (r->out.rid == NULL) {
12500                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12501                 }
12502                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
12503                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12504         }
12505         return NDR_ERR_SUCCESS;
12506 }
12507
12508 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
12509 {
12510         uint32_t _ptr_server_name;
12511         TALLOC_CTX *_mem_save_server_name_0;
12512         TALLOC_CTX *_mem_save_credentials_0;
12513         TALLOC_CTX *_mem_save_return_credentials_0;
12514         TALLOC_CTX *_mem_save_negotiate_flags_0;
12515         TALLOC_CTX *_mem_save_rid_0;
12516         if (flags & NDR_IN) {
12517                 ZERO_STRUCT(r->out);
12518
12519                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12520                 if (_ptr_server_name) {
12521                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12522                 } else {
12523                         r->in.server_name = NULL;
12524                 }
12525                 if (r->in.server_name) {
12526                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12527                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12528                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12529                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12530                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12531                                 return 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));
12532                         }
12533                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12534                         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));
12535                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12536                 }
12537                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12538                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12539                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12540                         return 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));
12541                 }
12542                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12543                 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));
12544                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12545                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12546                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12547                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12548                         return 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));
12549                 }
12550                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12551                 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));
12552                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12553                         NDR_PULL_ALLOC(ndr, r->in.credentials);
12554                 }
12555                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
12556                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
12557                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
12558                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
12559                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12560                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
12561                 }
12562                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
12563                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
12564                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
12565                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
12566                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
12567                 ZERO_STRUCTP(r->out.return_credentials);
12568                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
12569                 *r->out.negotiate_flags = *r->in.negotiate_flags;
12570                 NDR_PULL_ALLOC(ndr, r->out.rid);
12571                 ZERO_STRUCTP(r->out.rid);
12572         }
12573         if (flags & NDR_OUT) {
12574                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12575                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
12576                 }
12577                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
12578                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
12579                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
12580                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
12581                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12582                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
12583                 }
12584                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
12585                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
12586                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
12587                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
12588                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12589                         NDR_PULL_ALLOC(ndr, r->out.rid);
12590                 }
12591                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12592                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
12593                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
12594                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
12595                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12596         }
12597         return NDR_ERR_SUCCESS;
12598 }
12599
12600 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
12601 {
12602         ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
12603         ndr->depth++;
12604         if (flags & NDR_SET_VALUES) {
12605                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12606         }
12607         if (flags & NDR_IN) {
12608                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
12609                 ndr->depth++;
12610                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12611                 ndr->depth++;
12612                 if (r->in.server_name) {
12613                         ndr_print_string(ndr, "server_name", r->in.server_name);
12614                 }
12615                 ndr->depth--;
12616                 ndr_print_string(ndr, "account_name", r->in.account_name);
12617                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12618                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12619                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
12620                 ndr->depth++;
12621                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
12622                 ndr->depth--;
12623                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
12624                 ndr->depth++;
12625                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
12626                 ndr->depth--;
12627                 ndr->depth--;
12628         }
12629         if (flags & NDR_OUT) {
12630                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
12631                 ndr->depth++;
12632                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
12633                 ndr->depth++;
12634                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
12635                 ndr->depth--;
12636                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
12637                 ndr->depth++;
12638                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
12639                 ndr->depth--;
12640                 ndr_print_ptr(ndr, "rid", r->out.rid);
12641                 ndr->depth++;
12642                 ndr_print_uint32(ndr, "rid", *r->out.rid);
12643                 ndr->depth--;
12644                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12645                 ndr->depth--;
12646         }
12647         ndr->depth--;
12648 }
12649
12650 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
12651 {
12652         if (flags & NDR_IN) {
12653                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
12654                 if (r->in.server_unc) {
12655                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12656                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12657                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12658                         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));
12659                 }
12660                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12661                 if (r->in.domain_name) {
12662                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12663                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12664                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12665                         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));
12666                 }
12667                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
12668                 if (r->in.domain_guid) {
12669                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12670                 }
12671                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
12672                 if (r->in.site_name) {
12673                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12674                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12675                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12676                         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));
12677                 }
12678                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
12679         }
12680         if (flags & NDR_OUT) {
12681                 if (r->out.info == NULL) {
12682                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12683                 }
12684                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
12685                 if (*r->out.info) {
12686                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12687                 }
12688                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12689         }
12690         return NDR_ERR_SUCCESS;
12691 }
12692
12693 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
12694 {
12695         uint32_t _ptr_server_unc;
12696         uint32_t _ptr_domain_name;
12697         uint32_t _ptr_domain_guid;
12698         uint32_t _ptr_site_name;
12699         uint32_t _ptr_info;
12700         TALLOC_CTX *_mem_save_server_unc_0;
12701         TALLOC_CTX *_mem_save_domain_name_0;
12702         TALLOC_CTX *_mem_save_domain_guid_0;
12703         TALLOC_CTX *_mem_save_site_name_0;
12704         TALLOC_CTX *_mem_save_info_0;
12705         TALLOC_CTX *_mem_save_info_1;
12706         if (flags & NDR_IN) {
12707                 ZERO_STRUCT(r->out);
12708
12709                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12710                 if (_ptr_server_unc) {
12711                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
12712                 } else {
12713                         r->in.server_unc = NULL;
12714                 }
12715                 if (r->in.server_unc) {
12716                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12717                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12718                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12719                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12720                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12721                                 return 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));
12722                         }
12723                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12724                         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));
12725                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12726                 }
12727                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12728                 if (_ptr_domain_name) {
12729                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12730                 } else {
12731                         r->in.domain_name = NULL;
12732                 }
12733                 if (r->in.domain_name) {
12734                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12735                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12736                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12737                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12738                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12739                                 return 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));
12740                         }
12741                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12742                         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));
12743                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12744                 }
12745                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12746                 if (_ptr_domain_guid) {
12747                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12748                 } else {
12749                         r->in.domain_guid = NULL;
12750                 }
12751                 if (r->in.domain_guid) {
12752                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12753                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12754                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12755                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12756                 }
12757                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
12758                 if (_ptr_site_name) {
12759                         NDR_PULL_ALLOC(ndr, r->in.site_name);
12760                 } else {
12761                         r->in.site_name = NULL;
12762                 }
12763                 if (r->in.site_name) {
12764                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12765                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
12766                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
12767                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
12768                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
12769                                 return 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));
12770                         }
12771                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
12772                         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));
12773                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
12774                 }
12775                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12776                 NDR_PULL_ALLOC(ndr, r->out.info);
12777                 ZERO_STRUCTP(r->out.info);
12778         }
12779         if (flags & NDR_OUT) {
12780                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12781                         NDR_PULL_ALLOC(ndr, r->out.info);
12782                 }
12783                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12784                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12785                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12786                 if (_ptr_info) {
12787                         NDR_PULL_ALLOC(ndr, *r->out.info);
12788                 } else {
12789                         *r->out.info = NULL;
12790                 }
12791                 if (*r->out.info) {
12792                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
12793                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
12794                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12795                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
12796                 }
12797                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12798                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12799         }
12800         return NDR_ERR_SUCCESS;
12801 }
12802
12803 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
12804 {
12805         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
12806         ndr->depth++;
12807         if (flags & NDR_SET_VALUES) {
12808                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12809         }
12810         if (flags & NDR_IN) {
12811                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
12812                 ndr->depth++;
12813                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
12814                 ndr->depth++;
12815                 if (r->in.server_unc) {
12816                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
12817                 }
12818                 ndr->depth--;
12819                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12820                 ndr->depth++;
12821                 if (r->in.domain_name) {
12822                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12823                 }
12824                 ndr->depth--;
12825                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
12826                 ndr->depth++;
12827                 if (r->in.domain_guid) {
12828                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
12829                 }
12830                 ndr->depth--;
12831                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
12832                 ndr->depth++;
12833                 if (r->in.site_name) {
12834                         ndr_print_string(ndr, "site_name", r->in.site_name);
12835                 }
12836                 ndr->depth--;
12837                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
12838                 ndr->depth--;
12839         }
12840         if (flags & NDR_OUT) {
12841                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
12842                 ndr->depth++;
12843                 ndr_print_ptr(ndr, "info", r->out.info);
12844                 ndr->depth++;
12845                 ndr_print_ptr(ndr, "info", *r->out.info);
12846                 ndr->depth++;
12847                 if (*r->out.info) {
12848                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
12849                 }
12850                 ndr->depth--;
12851                 ndr->depth--;
12852                 ndr_print_WERROR(ndr, "result", r->out.result);
12853                 ndr->depth--;
12854         }
12855         ndr->depth--;
12856 }
12857
12858 static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
12859 {
12860         if (flags & NDR_IN) {
12861                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12862                 if (r->in.computer_name) {
12863                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12864                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12865                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12866                         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));
12867                 }
12868         }
12869         if (flags & NDR_OUT) {
12870                 if (r->out.site == NULL) {
12871                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12872                 }
12873                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.site));
12874                 if (*r->out.site) {
12875                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
12876                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12877                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
12878                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12879                 }
12880                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12881         }
12882         return NDR_ERR_SUCCESS;
12883 }
12884
12885 static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
12886 {
12887         uint32_t _ptr_computer_name;
12888         uint32_t _ptr_site;
12889         TALLOC_CTX *_mem_save_computer_name_0;
12890         TALLOC_CTX *_mem_save_site_0;
12891         TALLOC_CTX *_mem_save_site_1;
12892         if (flags & NDR_IN) {
12893                 ZERO_STRUCT(r->out);
12894
12895                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12896                 if (_ptr_computer_name) {
12897                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
12898                 } else {
12899                         r->in.computer_name = NULL;
12900                 }
12901                 if (r->in.computer_name) {
12902                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12903                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12904                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12905                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12906                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12907                                 return 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));
12908                         }
12909                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12910                         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));
12911                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12912                 }
12913                 NDR_PULL_ALLOC(ndr, r->out.site);
12914                 ZERO_STRUCTP(r->out.site);
12915         }
12916         if (flags & NDR_OUT) {
12917                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12918                         NDR_PULL_ALLOC(ndr, r->out.site);
12919                 }
12920                 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
12921                 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
12922                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site));
12923                 if (_ptr_site) {
12924                         NDR_PULL_ALLOC(ndr, *r->out.site);
12925                 } else {
12926                         *r->out.site = NULL;
12927                 }
12928                 if (*r->out.site) {
12929                         _mem_save_site_1 = NDR_PULL_GET_MEM_CTX(ndr);
12930                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.site, 0);
12931                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
12932                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
12933                         if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
12934                                 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));
12935                         }
12936                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
12937                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
12938                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_1, 0);
12939                 }
12940                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
12941                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12942         }
12943         return NDR_ERR_SUCCESS;
12944 }
12945
12946 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
12947 {
12948         ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
12949         ndr->depth++;
12950         if (flags & NDR_SET_VALUES) {
12951                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12952         }
12953         if (flags & NDR_IN) {
12954                 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
12955                 ndr->depth++;
12956                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12957                 ndr->depth++;
12958                 if (r->in.computer_name) {
12959                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12960                 }
12961                 ndr->depth--;
12962                 ndr->depth--;
12963         }
12964         if (flags & NDR_OUT) {
12965                 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
12966                 ndr->depth++;
12967                 ndr_print_ptr(ndr, "site", r->out.site);
12968                 ndr->depth++;
12969                 ndr_print_ptr(ndr, "site", *r->out.site);
12970                 ndr->depth++;
12971                 if (*r->out.site) {
12972                         ndr_print_string(ndr, "site", *r->out.site);
12973                 }
12974                 ndr->depth--;
12975                 ndr->depth--;
12976                 ndr_print_WERROR(ndr, "result", r->out.result);
12977                 ndr->depth--;
12978         }
12979         ndr->depth--;
12980 }
12981
12982 static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
12983 {
12984         if (flags & NDR_IN) {
12985                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12986                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12987                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12988                 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));
12989                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12990                 if (r->in.computer_name) {
12991                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12992                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12993                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12994                         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));
12995                 }
12996                 if (r->in.credential == NULL) {
12997                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12998                 }
12999                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13000                 if (r->in.return_authenticator == NULL) {
13001                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13002                 }
13003                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
13004                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
13005                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level));
13006                 NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
13007         }
13008         if (flags & NDR_OUT) {
13009                 if (r->out.return_authenticator == NULL) {
13010                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13011                 }
13012                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13013                 if (r->out.info == NULL) {
13014                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13015                 }
13016                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
13017                 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13018                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13019         }
13020         return NDR_ERR_SUCCESS;
13021 }
13022
13023 static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
13024 {
13025         uint32_t _ptr_computer_name;
13026         TALLOC_CTX *_mem_save_computer_name_0;
13027         TALLOC_CTX *_mem_save_credential_0;
13028         TALLOC_CTX *_mem_save_return_authenticator_0;
13029         TALLOC_CTX *_mem_save_info_0;
13030         if (flags & NDR_IN) {
13031                 ZERO_STRUCT(r->out);
13032
13033                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13034                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13035                 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13036                         return 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));
13037                 }
13038                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13039                 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));
13040                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13041                 if (_ptr_computer_name) {
13042                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13043                 } else {
13044                         r->in.computer_name = NULL;
13045                 }
13046                 if (r->in.computer_name) {
13047                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13048                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13049                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13050                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13051                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13052                                 return 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));
13053                         }
13054                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13055                         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));
13056                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13057                 }
13058                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13059                         NDR_PULL_ALLOC(ndr, r->in.credential);
13060                 }
13061                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13062                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13063                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13064                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13065                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13066                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
13067                 }
13068                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13069                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13070                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
13071                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13072                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
13073                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level));
13074                 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
13075                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13076                 *r->out.return_authenticator = *r->in.return_authenticator;
13077                 NDR_PULL_ALLOC(ndr, r->out.info);
13078                 ZERO_STRUCTP(r->out.info);
13079         }
13080         if (flags & NDR_OUT) {
13081                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13082                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13083                 }
13084                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13085                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13086                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13087                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13088                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13089                         NDR_PULL_ALLOC(ndr, r->out.info);
13090                 }
13091                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13092                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
13093                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
13094                 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13095                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
13096                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13097         }
13098         return NDR_ERR_SUCCESS;
13099 }
13100
13101 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
13102 {
13103         ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
13104         ndr->depth++;
13105         if (flags & NDR_SET_VALUES) {
13106                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13107         }
13108         if (flags & NDR_IN) {
13109                 ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
13110                 ndr->depth++;
13111                 ndr_print_string(ndr, "server_name", r->in.server_name);
13112                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13113                 ndr->depth++;
13114                 if (r->in.computer_name) {
13115                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
13116                 }
13117                 ndr->depth--;
13118                 ndr_print_ptr(ndr, "credential", r->in.credential);
13119                 ndr->depth++;
13120                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13121                 ndr->depth--;
13122                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
13123                 ndr->depth++;
13124                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
13125                 ndr->depth--;
13126                 ndr_print_uint32(ndr, "level", r->in.level);
13127                 ndr_print_set_switch_value(ndr, &r->in.query, r->in.level);
13128                 ndr_print_netr_DomainQuery(ndr, "query", &r->in.query);
13129                 ndr->depth--;
13130         }
13131         if (flags & NDR_OUT) {
13132                 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
13133                 ndr->depth++;
13134                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13135                 ndr->depth++;
13136                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13137                 ndr->depth--;
13138                 ndr_print_ptr(ndr, "info", r->out.info);
13139                 ndr->depth++;
13140                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
13141                 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
13142                 ndr->depth--;
13143                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13144                 ndr->depth--;
13145         }
13146         ndr->depth--;
13147 }
13148
13149 static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
13150 {
13151         if (flags & NDR_IN) {
13152                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13153                 if (r->in.server_name) {
13154                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13155                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13156                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13157                         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));
13158                 }
13159                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13160                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13161                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13162                 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));
13163                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13164                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13165                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13166                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13167                 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));
13168                 if (r->in.credential == NULL) {
13169                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13170                 }
13171                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13172                 if (r->in.new_password == NULL) {
13173                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13174                 }
13175                 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
13176         }
13177         if (flags & NDR_OUT) {
13178                 if (r->out.return_authenticator == NULL) {
13179                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13180                 }
13181                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13182                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13183         }
13184         return NDR_ERR_SUCCESS;
13185 }
13186
13187 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
13188 {
13189         uint32_t _ptr_server_name;
13190         TALLOC_CTX *_mem_save_server_name_0;
13191         TALLOC_CTX *_mem_save_credential_0;
13192         TALLOC_CTX *_mem_save_return_authenticator_0;
13193         TALLOC_CTX *_mem_save_new_password_0;
13194         if (flags & NDR_IN) {
13195                 ZERO_STRUCT(r->out);
13196
13197                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13198                 if (_ptr_server_name) {
13199                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13200                 } else {
13201                         r->in.server_name = NULL;
13202                 }
13203                 if (r->in.server_name) {
13204                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13205                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13206                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13207                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13208                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13209                                 return 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));
13210                         }
13211                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13212                         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));
13213                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13214                 }
13215                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13216                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13217                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13218                         return 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));
13219                 }
13220                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13221                 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));
13222                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13223                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13224                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13225                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13226                         return 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));
13227                 }
13228                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13229                 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));
13230                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13231                         NDR_PULL_ALLOC(ndr, r->in.credential);
13232                 }
13233                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13234                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13235                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13236                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13237                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13238                         NDR_PULL_ALLOC(ndr, r->in.new_password);
13239                 }
13240                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
13241                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
13242                 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
13243                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
13244                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13245                 ZERO_STRUCTP(r->out.return_authenticator);
13246         }
13247         if (flags & NDR_OUT) {
13248                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13249                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13250                 }
13251                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13252                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13253                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13254                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13255                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13256         }
13257         return NDR_ERR_SUCCESS;
13258 }
13259
13260 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
13261 {
13262         ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
13263         ndr->depth++;
13264         if (flags & NDR_SET_VALUES) {
13265                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13266         }
13267         if (flags & NDR_IN) {
13268                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
13269                 ndr->depth++;
13270                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13271                 ndr->depth++;
13272                 if (r->in.server_name) {
13273                         ndr_print_string(ndr, "server_name", r->in.server_name);
13274                 }
13275                 ndr->depth--;
13276                 ndr_print_string(ndr, "account_name", r->in.account_name);
13277                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
13278                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13279                 ndr_print_ptr(ndr, "credential", r->in.credential);
13280                 ndr->depth++;
13281                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13282                 ndr->depth--;
13283                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
13284                 ndr->depth++;
13285                 ndr_print_netr_CryptPassword(ndr, "new_password", r->in.new_password);
13286                 ndr->depth--;
13287                 ndr->depth--;
13288         }
13289         if (flags & NDR_OUT) {
13290                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
13291                 ndr->depth++;
13292                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13293                 ndr->depth++;
13294                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13295                 ndr->depth--;
13296                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13297                 ndr->depth--;
13298         }
13299         ndr->depth--;
13300 }
13301
13302 static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordGet *r)
13303 {
13304         if (flags & NDR_IN) {
13305                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13306                 if (r->in.server_name) {
13307                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13308                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13309                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13310                         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));
13311                 }
13312                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13313                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13314                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13315                 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));
13316                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13317                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13318                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13319                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13320                 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));
13321                 if (r->in.credential == NULL) {
13322                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13323                 }
13324                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13325         }
13326         if (flags & NDR_OUT) {
13327                 if (r->out.return_authenticator == NULL) {
13328                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13329                 }
13330                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13331                 if (r->out.password == NULL) {
13332                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13333                 }
13334                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
13335                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13336         }
13337         return NDR_ERR_SUCCESS;
13338 }
13339
13340 static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r)
13341 {
13342         uint32_t _ptr_server_name;
13343         TALLOC_CTX *_mem_save_server_name_0;
13344         TALLOC_CTX *_mem_save_credential_0;
13345         TALLOC_CTX *_mem_save_return_authenticator_0;
13346         TALLOC_CTX *_mem_save_password_0;
13347         if (flags & NDR_IN) {
13348                 ZERO_STRUCT(r->out);
13349
13350                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13351                 if (_ptr_server_name) {
13352                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13353                 } else {
13354                         r->in.server_name = NULL;
13355                 }
13356                 if (r->in.server_name) {
13357                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13358                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13359                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13360                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13361                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13362                                 return 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));
13363                         }
13364                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13365                         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));
13366                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13367                 }
13368                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13369                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13370                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13371                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
13372                 }
13373                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13374                 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));
13375                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13376                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13377                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13378                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13379                         return 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));
13380                 }
13381                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13382                 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));
13383                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13384                         NDR_PULL_ALLOC(ndr, r->in.credential);
13385                 }
13386                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13387                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13388                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13389                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13390                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13391                 ZERO_STRUCTP(r->out.return_authenticator);
13392                 NDR_PULL_ALLOC(ndr, r->out.password);
13393                 ZERO_STRUCTP(r->out.password);
13394         }
13395         if (flags & NDR_OUT) {
13396                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13397                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13398                 }
13399                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13400                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13401                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13402                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13403                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13404                         NDR_PULL_ALLOC(ndr, r->out.password);
13405                 }
13406                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
13407                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
13408                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
13409                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
13410                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13411         }
13412         return NDR_ERR_SUCCESS;
13413 }
13414
13415 _PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordGet *r)
13416 {
13417         ndr_print_struct(ndr, name, "netr_ServerPasswordGet");
13418         ndr->depth++;
13419         if (flags & NDR_SET_VALUES) {
13420                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13421         }
13422         if (flags & NDR_IN) {
13423                 ndr_print_struct(ndr, "in", "netr_ServerPasswordGet");
13424                 ndr->depth++;
13425                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13426                 ndr->depth++;
13427                 if (r->in.server_name) {
13428                         ndr_print_string(ndr, "server_name", r->in.server_name);
13429                 }
13430                 ndr->depth--;
13431                 ndr_print_string(ndr, "account_name", r->in.account_name);
13432                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
13433                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13434                 ndr_print_ptr(ndr, "credential", r->in.credential);
13435                 ndr->depth++;
13436                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13437                 ndr->depth--;
13438                 ndr->depth--;
13439         }
13440         if (flags & NDR_OUT) {
13441                 ndr_print_struct(ndr, "out", "netr_ServerPasswordGet");
13442                 ndr->depth++;
13443                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13444                 ndr->depth++;
13445                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13446                 ndr->depth--;
13447                 ndr_print_ptr(ndr, "password", r->out.password);
13448                 ndr->depth++;
13449                 ndr_print_samr_Password(ndr, "password", r->out.password);
13450                 ndr->depth--;
13451                 ndr_print_WERROR(ndr, "result", r->out.result);
13452                 ndr->depth--;
13453         }
13454         ndr->depth--;
13455 }
13456
13457 static enum ndr_err_code ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
13458 {
13459         if (flags & NDR_IN) {
13460         }
13461         if (flags & NDR_OUT) {
13462                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13463         }
13464         return NDR_ERR_SUCCESS;
13465 }
13466
13467 static enum ndr_err_code ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
13468 {
13469         if (flags & NDR_IN) {
13470         }
13471         if (flags & NDR_OUT) {
13472                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13473         }
13474         return NDR_ERR_SUCCESS;
13475 }
13476
13477 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
13478 {
13479         ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
13480         ndr->depth++;
13481         if (flags & NDR_SET_VALUES) {
13482                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13483         }
13484         if (flags & NDR_IN) {
13485                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
13486                 ndr->depth++;
13487                 ndr->depth--;
13488         }
13489         if (flags & NDR_OUT) {
13490                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
13491                 ndr->depth++;
13492                 ndr_print_WERROR(ndr, "result", r->out.result);
13493                 ndr->depth--;
13494         }
13495         ndr->depth--;
13496 }
13497
13498 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesW *r)
13499 {
13500         uint32_t cntr_addresses_1;
13501         if (flags & NDR_IN) {
13502                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13503                 if (r->in.server_name) {
13504                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13505                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13506                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13507                         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));
13508                 }
13509                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13510                 if (r->in.addresses == NULL) {
13511                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13512                 }
13513                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13514                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13515                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13516                 }
13517                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13518                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13519                 }
13520         }
13521         if (flags & NDR_OUT) {
13522                 if (r->out.ctr == NULL) {
13523                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13524                 }
13525                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
13526                 if (*r->out.ctr) {
13527                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13528                 }
13529                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13530         }
13531         return NDR_ERR_SUCCESS;
13532 }
13533
13534 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r)
13535 {
13536         uint32_t _ptr_server_name;
13537         uint32_t cntr_addresses_1;
13538         uint32_t _ptr_ctr;
13539         TALLOC_CTX *_mem_save_server_name_0;
13540         TALLOC_CTX *_mem_save_addresses_1;
13541         TALLOC_CTX *_mem_save_ctr_0;
13542         TALLOC_CTX *_mem_save_ctr_1;
13543         if (flags & NDR_IN) {
13544                 ZERO_STRUCT(r->out);
13545
13546                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13547                 if (_ptr_server_name) {
13548                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13549                 } else {
13550                         r->in.server_name = NULL;
13551                 }
13552                 if (r->in.server_name) {
13553                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13554                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13555                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13556                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13557                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13558                                 return 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));
13559                         }
13560                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13561                         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));
13562                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13563                 }
13564                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
13565                 if (r->in.count < 0 || r->in.count > 32000) {
13566                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13567                 }
13568                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
13569                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13570                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
13571                 }
13572                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
13573                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
13574                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13575                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13576                 }
13577                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13578                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13579                 }
13580                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
13581                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13582                 ZERO_STRUCTP(r->out.ctr);
13583                 if (r->in.addresses) {
13584                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
13585                 }
13586         }
13587         if (flags & NDR_OUT) {
13588                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13589                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13590                 }
13591                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13592                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13593                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
13594                 if (_ptr_ctr) {
13595                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
13596                 } else {
13597                         *r->out.ctr = NULL;
13598                 }
13599                 if (*r->out.ctr) {
13600                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
13601                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
13602                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13603                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
13604                 }
13605                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13606                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13607         }
13608         return NDR_ERR_SUCCESS;
13609 }
13610
13611 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesW *r)
13612 {
13613         uint32_t cntr_addresses_1;
13614         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesW");
13615         ndr->depth++;
13616         if (flags & NDR_SET_VALUES) {
13617                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13618         }
13619         if (flags & NDR_IN) {
13620                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesW");
13621                 ndr->depth++;
13622                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13623                 ndr->depth++;
13624                 if (r->in.server_name) {
13625                         ndr_print_string(ndr, "server_name", r->in.server_name);
13626                 }
13627                 ndr->depth--;
13628                 ndr_print_uint32(ndr, "count", r->in.count);
13629                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
13630                 ndr->depth++;
13631                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
13632                 ndr->depth++;
13633                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
13634                         char *idx_1=NULL;
13635                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
13636                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
13637                                 free(idx_1);
13638                         }
13639                 }
13640                 ndr->depth--;
13641                 ndr->depth--;
13642                 ndr->depth--;
13643         }
13644         if (flags & NDR_OUT) {
13645                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesW");
13646                 ndr->depth++;
13647                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13648                 ndr->depth++;
13649                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
13650                 ndr->depth++;
13651                 if (*r->out.ctr) {
13652                         ndr_print_netr_DsRAddressToSitenamesWCtr(ndr, "ctr", *r->out.ctr);
13653                 }
13654                 ndr->depth--;
13655                 ndr->depth--;
13656                 ndr_print_WERROR(ndr, "result", r->out.result);
13657                 ndr->depth--;
13658         }
13659         ndr->depth--;
13660 }
13661
13662 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
13663 {
13664         if (flags & NDR_IN) {
13665                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
13666                 if (r->in.server_unc) {
13667                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
13668                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13669                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
13670                         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));
13671                 }
13672                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
13673                 if (r->in.client_account) {
13674                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
13675                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13676                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
13677                         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));
13678                 }
13679                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.mask));
13680                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
13681                 if (r->in.domain_name) {
13682                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
13683                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13684                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
13685                         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));
13686                 }
13687                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
13688                 if (r->in.domain_guid) {
13689                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
13690                 }
13691                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
13692                 if (r->in.site_name) {
13693                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
13694                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13695                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
13696                         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));
13697                 }
13698                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
13699         }
13700         if (flags & NDR_OUT) {
13701                 if (r->out.info == NULL) {
13702                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13703                 }
13704                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
13705                 if (*r->out.info) {
13706                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
13707                 }
13708                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13709         }
13710         return NDR_ERR_SUCCESS;
13711 }
13712
13713 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
13714 {
13715         uint32_t _ptr_server_unc;
13716         uint32_t _ptr_client_account;
13717         uint32_t _ptr_domain_name;
13718         uint32_t _ptr_domain_guid;
13719         uint32_t _ptr_site_name;
13720         uint32_t _ptr_info;
13721         TALLOC_CTX *_mem_save_server_unc_0;
13722         TALLOC_CTX *_mem_save_client_account_0;
13723         TALLOC_CTX *_mem_save_domain_name_0;
13724         TALLOC_CTX *_mem_save_domain_guid_0;
13725         TALLOC_CTX *_mem_save_site_name_0;
13726         TALLOC_CTX *_mem_save_info_0;
13727         TALLOC_CTX *_mem_save_info_1;
13728         if (flags & NDR_IN) {
13729                 ZERO_STRUCT(r->out);
13730
13731                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
13732                 if (_ptr_server_unc) {
13733                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
13734                 } else {
13735                         r->in.server_unc = NULL;
13736                 }
13737                 if (r->in.server_unc) {
13738                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
13739                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
13740                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
13741                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
13742                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
13743                                 return 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));
13744                         }
13745                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
13746                         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));
13747                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
13748                 }
13749                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
13750                 if (_ptr_client_account) {
13751                         NDR_PULL_ALLOC(ndr, r->in.client_account);
13752                 } else {
13753                         r->in.client_account = NULL;
13754                 }
13755                 if (r->in.client_account) {
13756                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
13757                         NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
13758                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
13759                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
13760                         if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
13761                                 return 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));
13762                         }
13763                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
13764                         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));
13765                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
13766                 }
13767                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask));
13768                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
13769                 if (_ptr_domain_name) {
13770                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
13771                 } else {
13772                         r->in.domain_name = NULL;
13773                 }
13774                 if (r->in.domain_name) {
13775                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13776                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
13777                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
13778                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
13779                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
13780                                 return 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));
13781                         }
13782                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
13783                         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));
13784                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
13785                 }
13786                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
13787                 if (_ptr_domain_guid) {
13788                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
13789                 } else {
13790                         r->in.domain_guid = NULL;
13791                 }
13792                 if (r->in.domain_guid) {
13793                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13794                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
13795                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
13796                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
13797                 }
13798                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
13799                 if (_ptr_site_name) {
13800                         NDR_PULL_ALLOC(ndr, r->in.site_name);
13801                 } else {
13802                         r->in.site_name = NULL;
13803                 }
13804                 if (r->in.site_name) {
13805                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13806                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
13807                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
13808                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
13809                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
13810                                 return 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));
13811                         }
13812                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
13813                         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));
13814                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
13815                 }
13816                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
13817                 NDR_PULL_ALLOC(ndr, r->out.info);
13818                 ZERO_STRUCTP(r->out.info);
13819         }
13820         if (flags & NDR_OUT) {
13821                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13822                         NDR_PULL_ALLOC(ndr, r->out.info);
13823                 }
13824                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13825                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
13826                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
13827                 if (_ptr_info) {
13828                         NDR_PULL_ALLOC(ndr, *r->out.info);
13829                 } else {
13830                         *r->out.info = NULL;
13831                 }
13832                 if (*r->out.info) {
13833                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
13834                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
13835                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
13836                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
13837                 }
13838                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
13839                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13840         }
13841         return NDR_ERR_SUCCESS;
13842 }
13843
13844 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
13845 {
13846         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
13847         ndr->depth++;
13848         if (flags & NDR_SET_VALUES) {
13849                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13850         }
13851         if (flags & NDR_IN) {
13852                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
13853                 ndr->depth++;
13854                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
13855                 ndr->depth++;
13856                 if (r->in.server_unc) {
13857                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
13858                 }
13859                 ndr->depth--;
13860                 ndr_print_ptr(ndr, "client_account", r->in.client_account);
13861                 ndr->depth++;
13862                 if (r->in.client_account) {
13863                         ndr_print_string(ndr, "client_account", r->in.client_account);
13864                 }
13865                 ndr->depth--;
13866                 ndr_print_samr_AcctFlags(ndr, "mask", r->in.mask);
13867                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
13868                 ndr->depth++;
13869                 if (r->in.domain_name) {
13870                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
13871                 }
13872                 ndr->depth--;
13873                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
13874                 ndr->depth++;
13875                 if (r->in.domain_guid) {
13876                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
13877                 }
13878                 ndr->depth--;
13879                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
13880                 ndr->depth++;
13881                 if (r->in.site_name) {
13882                         ndr_print_string(ndr, "site_name", r->in.site_name);
13883                 }
13884                 ndr->depth--;
13885                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
13886                 ndr->depth--;
13887         }
13888         if (flags & NDR_OUT) {
13889                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
13890                 ndr->depth++;
13891                 ndr_print_ptr(ndr, "info", r->out.info);
13892                 ndr->depth++;
13893                 ndr_print_ptr(ndr, "info", *r->out.info);
13894                 ndr->depth++;
13895                 if (*r->out.info) {
13896                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
13897                 }
13898                 ndr->depth--;
13899                 ndr->depth--;
13900                 ndr_print_WERROR(ndr, "result", r->out.result);
13901                 ndr->depth--;
13902         }
13903         ndr->depth--;
13904 }
13905
13906 static enum ndr_err_code ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13907 {
13908         if (flags & NDR_IN) {
13909         }
13910         if (flags & NDR_OUT) {
13911                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13912         }
13913         return NDR_ERR_SUCCESS;
13914 }
13915
13916 static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13917 {
13918         if (flags & NDR_IN) {
13919         }
13920         if (flags & NDR_OUT) {
13921                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13922         }
13923         return NDR_ERR_SUCCESS;
13924 }
13925
13926 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13927 {
13928         ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13929         ndr->depth++;
13930         if (flags & NDR_SET_VALUES) {
13931                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13932         }
13933         if (flags & NDR_IN) {
13934                 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13935                 ndr->depth++;
13936                 ndr->depth--;
13937         }
13938         if (flags & NDR_OUT) {
13939                 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13940                 ndr->depth++;
13941                 ndr_print_WERROR(ndr, "result", r->out.result);
13942                 ndr->depth--;
13943         }
13944         ndr->depth--;
13945 }
13946
13947 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
13948 {
13949         if (flags & NDR_IN) {
13950                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13951                 if (r->in.server_name) {
13952                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13953                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13954                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13955                         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));
13956                 }
13957         }
13958         if (flags & NDR_OUT) {
13959                 if (r->out.dom_trust_list == NULL) {
13960                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13961                 }
13962                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
13963                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13964         }
13965         return NDR_ERR_SUCCESS;
13966 }
13967
13968 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r)
13969 {
13970         uint32_t _ptr_server_name;
13971         TALLOC_CTX *_mem_save_server_name_0;
13972         TALLOC_CTX *_mem_save_dom_trust_list_0;
13973         if (flags & NDR_IN) {
13974                 ZERO_STRUCT(r->out);
13975
13976                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13977                 if (_ptr_server_name) {
13978                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13979                 } else {
13980                         r->in.server_name = NULL;
13981                 }
13982                 if (r->in.server_name) {
13983                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13984                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13985                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13986                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13987                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13988                                 return 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));
13989                         }
13990                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13991                         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));
13992                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13993                 }
13994                 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13995                 ZERO_STRUCTP(r->out.dom_trust_list);
13996         }
13997         if (flags & NDR_OUT) {
13998                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13999                         NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
14000                 }
14001                 _mem_save_dom_trust_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
14002                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dom_trust_list, LIBNDR_FLAG_REF_ALLOC);
14003                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
14004                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_trust_list_0, LIBNDR_FLAG_REF_ALLOC);
14005                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14006         }
14007         return NDR_ERR_SUCCESS;
14008 }
14009
14010 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
14011 {
14012         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomainsEx");
14013         ndr->depth++;
14014         if (flags & NDR_SET_VALUES) {
14015                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14016         }
14017         if (flags & NDR_IN) {
14018                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomainsEx");
14019                 ndr->depth++;
14020                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14021                 ndr->depth++;
14022                 if (r->in.server_name) {
14023                         ndr_print_string(ndr, "server_name", r->in.server_name);
14024                 }
14025                 ndr->depth--;
14026                 ndr->depth--;
14027         }
14028         if (flags & NDR_OUT) {
14029                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomainsEx");
14030                 ndr->depth++;
14031                 ndr_print_ptr(ndr, "dom_trust_list", r->out.dom_trust_list);
14032                 ndr->depth++;
14033                 ndr_print_netr_DomainTrustList(ndr, "dom_trust_list", r->out.dom_trust_list);
14034                 ndr->depth--;
14035                 ndr_print_WERROR(ndr, "result", r->out.result);
14036                 ndr->depth--;
14037         }
14038         ndr->depth--;
14039 }
14040
14041 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesExW *r)
14042 {
14043         uint32_t cntr_addresses_1;
14044         if (flags & NDR_IN) {
14045                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14046                 if (r->in.server_name) {
14047                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14048                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14049                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14050                         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));
14051                 }
14052                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14053                 if (r->in.addresses == NULL) {
14054                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14055                 }
14056                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14057                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14058                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
14059                 }
14060                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14061                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
14062                 }
14063         }
14064         if (flags & NDR_OUT) {
14065                 if (r->out.ctr == NULL) {
14066                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14067                 }
14068                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
14069                 if (*r->out.ctr) {
14070                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14071                 }
14072                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14073         }
14074         return NDR_ERR_SUCCESS;
14075 }
14076
14077 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r)
14078 {
14079         uint32_t _ptr_server_name;
14080         uint32_t cntr_addresses_1;
14081         uint32_t _ptr_ctr;
14082         TALLOC_CTX *_mem_save_server_name_0;
14083         TALLOC_CTX *_mem_save_addresses_1;
14084         TALLOC_CTX *_mem_save_ctr_0;
14085         TALLOC_CTX *_mem_save_ctr_1;
14086         if (flags & NDR_IN) {
14087                 ZERO_STRUCT(r->out);
14088
14089                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14090                 if (_ptr_server_name) {
14091                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14092                 } else {
14093                         r->in.server_name = NULL;
14094                 }
14095                 if (r->in.server_name) {
14096                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14097                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14098                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14099                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14100                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14101                                 return 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));
14102                         }
14103                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14104                         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));
14105                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14106                 }
14107                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
14108                 if (r->in.count < 0 || r->in.count > 32000) {
14109                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
14110                 }
14111                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
14112                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14113                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
14114                 }
14115                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
14116                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
14117                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14118                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
14119                 }
14120                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14121                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
14122                 }
14123                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
14124                 NDR_PULL_ALLOC(ndr, r->out.ctr);
14125                 ZERO_STRUCTP(r->out.ctr);
14126                 if (r->in.addresses) {
14127                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
14128                 }
14129         }
14130         if (flags & NDR_OUT) {
14131                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14132                         NDR_PULL_ALLOC(ndr, r->out.ctr);
14133                 }
14134                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14135                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14136                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
14137                 if (_ptr_ctr) {
14138                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
14139                 } else {
14140                         *r->out.ctr = NULL;
14141                 }
14142                 if (*r->out.ctr) {
14143                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
14144                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
14145                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14146                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
14147                 }
14148                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14149                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14150         }
14151         return NDR_ERR_SUCCESS;
14152 }
14153
14154 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesExW *r)
14155 {
14156         uint32_t cntr_addresses_1;
14157         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExW");
14158         ndr->depth++;
14159         if (flags & NDR_SET_VALUES) {
14160                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14161         }
14162         if (flags & NDR_IN) {
14163                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesExW");
14164                 ndr->depth++;
14165                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14166                 ndr->depth++;
14167                 if (r->in.server_name) {
14168                         ndr_print_string(ndr, "server_name", r->in.server_name);
14169                 }
14170                 ndr->depth--;
14171                 ndr_print_uint32(ndr, "count", r->in.count);
14172                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
14173                 ndr->depth++;
14174                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
14175                 ndr->depth++;
14176                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
14177                         char *idx_1=NULL;
14178                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
14179                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
14180                                 free(idx_1);
14181                         }
14182                 }
14183                 ndr->depth--;
14184                 ndr->depth--;
14185                 ndr->depth--;
14186         }
14187         if (flags & NDR_OUT) {
14188                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesExW");
14189                 ndr->depth++;
14190                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14191                 ndr->depth++;
14192                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
14193                 ndr->depth++;
14194                 if (*r->out.ctr) {
14195                         ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr, "ctr", *r->out.ctr);
14196                 }
14197                 ndr->depth--;
14198                 ndr->depth--;
14199                 ndr_print_WERROR(ndr, "result", r->out.result);
14200                 ndr->depth--;
14201         }
14202         ndr->depth--;
14203 }
14204
14205 static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *ndr, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
14206 {
14207         if (flags & NDR_IN) {
14208                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14209                 if (r->in.server_name) {
14210                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14211                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14212                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14213                         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));
14214                 }
14215         }
14216         if (flags & NDR_OUT) {
14217                 if (r->out.ctr == NULL) {
14218                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14219                 }
14220                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
14221                 if (*r->out.ctr) {
14222                         NDR_CHECK(ndr_push_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14223                 }
14224                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14225         }
14226         return NDR_ERR_SUCCESS;
14227 }
14228
14229 static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r)
14230 {
14231         uint32_t _ptr_server_name;
14232         uint32_t _ptr_ctr;
14233         TALLOC_CTX *_mem_save_server_name_0;
14234         TALLOC_CTX *_mem_save_ctr_0;
14235         TALLOC_CTX *_mem_save_ctr_1;
14236         if (flags & NDR_IN) {
14237                 ZERO_STRUCT(r->out);
14238
14239                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14240                 if (_ptr_server_name) {
14241                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14242                 } else {
14243                         r->in.server_name = NULL;
14244                 }
14245                 if (r->in.server_name) {
14246                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14247                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14248                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14249                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14250                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14251                                 return 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));
14252                         }
14253                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14254                         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));
14255                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14256                 }
14257                 NDR_PULL_ALLOC(ndr, r->out.ctr);
14258                 ZERO_STRUCTP(r->out.ctr);
14259         }
14260         if (flags & NDR_OUT) {
14261                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14262                         NDR_PULL_ALLOC(ndr, r->out.ctr);
14263                 }
14264                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14265                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14266                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
14267                 if (_ptr_ctr) {
14268                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
14269                 } else {
14270                         *r->out.ctr = NULL;
14271                 }
14272                 if (*r->out.ctr) {
14273                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
14274                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
14275                         NDR_CHECK(ndr_pull_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14276                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
14277                 }
14278                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14279                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14280         }
14281         return NDR_ERR_SUCCESS;
14282 }
14283
14284 _PUBLIC_ void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
14285 {
14286         ndr_print_struct(ndr, name, "netr_DsrGetDcSiteCoverageW");
14287         ndr->depth++;
14288         if (flags & NDR_SET_VALUES) {
14289                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14290         }
14291         if (flags & NDR_IN) {
14292                 ndr_print_struct(ndr, "in", "netr_DsrGetDcSiteCoverageW");
14293                 ndr->depth++;
14294                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14295                 ndr->depth++;
14296                 if (r->in.server_name) {
14297                         ndr_print_string(ndr, "server_name", r->in.server_name);
14298                 }
14299                 ndr->depth--;
14300                 ndr->depth--;
14301         }
14302         if (flags & NDR_OUT) {
14303                 ndr_print_struct(ndr, "out", "netr_DsrGetDcSiteCoverageW");
14304                 ndr->depth++;
14305                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14306                 ndr->depth++;
14307                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
14308                 ndr->depth++;
14309                 if (*r->out.ctr) {
14310                         ndr_print_DcSitesCtr(ndr, "ctr", *r->out.ctr);
14311                 }
14312                 ndr->depth--;
14313                 ndr->depth--;
14314                 ndr_print_WERROR(ndr, "result", r->out.result);
14315                 ndr->depth--;
14316         }
14317         ndr->depth--;
14318 }
14319
14320 static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
14321 {
14322         if (flags & NDR_IN) {
14323                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14324                 if (r->in.server_name) {
14325                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14326                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14327                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14328                         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));
14329                 }
14330                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
14331                 if (r->in.computer_name) {
14332                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14333                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14334                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14335                         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));
14336                 }
14337                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
14338                 if (r->in.logon == NULL) {
14339                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14340                 }
14341                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
14342                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
14343                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
14344                 if (r->in.flags == NULL) {
14345                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14346                 }
14347                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
14348         }
14349         if (flags & NDR_OUT) {
14350                 if (r->out.validation == NULL) {
14351                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14352                 }
14353                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14354                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14355                 if (r->out.authoritative == NULL) {
14356                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14357                 }
14358                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
14359                 if (r->out.flags == NULL) {
14360                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14361                 }
14362                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
14363                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
14364         }
14365         return NDR_ERR_SUCCESS;
14366 }
14367
14368 static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
14369 {
14370         uint32_t _ptr_server_name;
14371         uint32_t _ptr_computer_name;
14372         TALLOC_CTX *_mem_save_server_name_0;
14373         TALLOC_CTX *_mem_save_computer_name_0;
14374         TALLOC_CTX *_mem_save_logon_0;
14375         TALLOC_CTX *_mem_save_validation_0;
14376         TALLOC_CTX *_mem_save_authoritative_0;
14377         TALLOC_CTX *_mem_save_flags_0;
14378         if (flags & NDR_IN) {
14379                 ZERO_STRUCT(r->out);
14380
14381                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14382                 if (_ptr_server_name) {
14383                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14384                 } else {
14385                         r->in.server_name = NULL;
14386                 }
14387                 if (r->in.server_name) {
14388                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14389                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14390                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14391                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14392                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14393                                 return 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));
14394                         }
14395                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14396                         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));
14397                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14398                 }
14399                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
14400                 if (_ptr_computer_name) {
14401                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
14402                 } else {
14403                         r->in.computer_name = NULL;
14404                 }
14405                 if (r->in.computer_name) {
14406                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14407                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
14408                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14409                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14410                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14411                                 return 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));
14412                         }
14413                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14414                         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));
14415                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
14416                 }
14417                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
14418                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14419                         NDR_PULL_ALLOC(ndr, r->in.logon);
14420                 }
14421                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
14422                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
14423                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
14424                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
14425                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
14426                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
14427                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14428                         NDR_PULL_ALLOC(ndr, r->in.flags);
14429                 }
14430                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14431                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
14432                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
14433                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14434                 NDR_PULL_ALLOC(ndr, r->out.validation);
14435                 ZERO_STRUCTP(r->out.validation);
14436                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
14437                 ZERO_STRUCTP(r->out.authoritative);
14438                 NDR_PULL_ALLOC(ndr, r->out.flags);
14439                 *r->out.flags = *r->in.flags;
14440         }
14441         if (flags & NDR_OUT) {
14442                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14443                         NDR_PULL_ALLOC(ndr, r->out.validation);
14444                 }
14445                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
14446                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
14447                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14448                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14449                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
14450                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14451                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
14452                 }
14453                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
14454                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
14455                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
14456                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
14457                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14458                         NDR_PULL_ALLOC(ndr, r->out.flags);
14459                 }
14460                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14461                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
14462                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
14463                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14464                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14465         }
14466         return NDR_ERR_SUCCESS;
14467 }
14468
14469 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
14470 {
14471         ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
14472         ndr->depth++;
14473         if (flags & NDR_SET_VALUES) {
14474                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14475         }
14476         if (flags & NDR_IN) {
14477                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
14478                 ndr->depth++;
14479                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14480                 ndr->depth++;
14481                 if (r->in.server_name) {
14482                         ndr_print_string(ndr, "server_name", r->in.server_name);
14483                 }
14484                 ndr->depth--;
14485                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14486                 ndr->depth++;
14487                 if (r->in.computer_name) {
14488                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
14489                 }
14490                 ndr->depth--;
14491                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
14492                 ndr_print_ptr(ndr, "logon", r->in.logon);
14493                 ndr->depth++;
14494                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
14495                 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
14496                 ndr->depth--;
14497                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
14498                 ndr_print_ptr(ndr, "flags", r->in.flags);
14499                 ndr->depth++;
14500                 ndr_print_uint32(ndr, "flags", *r->in.flags);
14501                 ndr->depth--;
14502                 ndr->depth--;
14503         }
14504         if (flags & NDR_OUT) {
14505                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
14506                 ndr->depth++;
14507                 ndr_print_ptr(ndr, "validation", r->out.validation);
14508                 ndr->depth++;
14509                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
14510                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
14511                 ndr->depth--;
14512                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
14513                 ndr->depth++;
14514                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
14515                 ndr->depth--;
14516                 ndr_print_ptr(ndr, "flags", r->out.flags);
14517                 ndr->depth++;
14518                 ndr_print_uint32(ndr, "flags", *r->out.flags);
14519                 ndr->depth--;
14520                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14521                 ndr->depth--;
14522         }
14523         ndr->depth--;
14524 }
14525
14526 static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
14527 {
14528         if (flags & NDR_IN) {
14529                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14530                 if (r->in.server_name) {
14531                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14532                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14533                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14534                         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));
14535                 }
14536                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
14537         }
14538         if (flags & NDR_OUT) {
14539                 if (r->out.trusts == NULL) {
14540                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14541                 }
14542                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
14543                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14544         }
14545         return NDR_ERR_SUCCESS;
14546 }
14547
14548 static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
14549 {
14550         uint32_t _ptr_server_name;
14551         TALLOC_CTX *_mem_save_server_name_0;
14552         TALLOC_CTX *_mem_save_trusts_0;
14553         if (flags & NDR_IN) {
14554                 ZERO_STRUCT(r->out);
14555
14556                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14557                 if (_ptr_server_name) {
14558                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14559                 } else {
14560                         r->in.server_name = NULL;
14561                 }
14562                 if (r->in.server_name) {
14563                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14564                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14565                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14566                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14567                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14568                                 return 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));
14569                         }
14570                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14571                         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));
14572                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14573                 }
14574                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
14575                 NDR_PULL_ALLOC(ndr, r->out.trusts);
14576                 ZERO_STRUCTP(r->out.trusts);
14577         }
14578         if (flags & NDR_OUT) {
14579                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14580                         NDR_PULL_ALLOC(ndr, r->out.trusts);
14581                 }
14582                 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
14583                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
14584                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
14585                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, LIBNDR_FLAG_REF_ALLOC);
14586                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14587         }
14588         return NDR_ERR_SUCCESS;
14589 }
14590
14591 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
14592 {
14593         ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
14594         ndr->depth++;
14595         if (flags & NDR_SET_VALUES) {
14596                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14597         }
14598         if (flags & NDR_IN) {
14599                 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
14600                 ndr->depth++;
14601                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14602                 ndr->depth++;
14603                 if (r->in.server_name) {
14604                         ndr_print_string(ndr, "server_name", r->in.server_name);
14605                 }
14606                 ndr->depth--;
14607                 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
14608                 ndr->depth--;
14609         }
14610         if (flags & NDR_OUT) {
14611                 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
14612                 ndr->depth++;
14613                 ndr_print_ptr(ndr, "trusts", r->out.trusts);
14614                 ndr->depth++;
14615                 ndr_print_netr_DomainTrustList(ndr, "trusts", r->out.trusts);
14616                 ndr->depth--;
14617                 ndr_print_WERROR(ndr, "result", r->out.result);
14618                 ndr->depth--;
14619         }
14620         ndr->depth--;
14621 }
14622
14623 static enum ndr_err_code ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push *ndr, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
14624 {
14625         if (flags & NDR_IN) {
14626                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14627                 if (r->in.server_name) {
14628                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14629                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14630                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14631                         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));
14632                 }
14633                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain));
14634                 if (r->in.domain) {
14635                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
14636                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14637                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
14638                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14639                 }
14640                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
14641                 if (r->in.domain_guid) {
14642                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
14643                 }
14644                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dsa_guid));
14645                 if (r->in.dsa_guid) {
14646                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
14647                 }
14648                 if (r->in.dns_host == NULL) {
14649                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14650                 }
14651                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
14652                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14653                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
14654                 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));
14655         }
14656         if (flags & NDR_OUT) {
14657                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14658         }
14659         return NDR_ERR_SUCCESS;
14660 }
14661
14662 static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull *ndr, int flags, struct netr_DsrDeregisterDNSHostRecords *r)
14663 {
14664         uint32_t _ptr_server_name;
14665         uint32_t _ptr_domain;
14666         uint32_t _ptr_domain_guid;
14667         uint32_t _ptr_dsa_guid;
14668         TALLOC_CTX *_mem_save_server_name_0;
14669         TALLOC_CTX *_mem_save_domain_0;
14670         TALLOC_CTX *_mem_save_domain_guid_0;
14671         TALLOC_CTX *_mem_save_dsa_guid_0;
14672         if (flags & NDR_IN) {
14673                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14674                 if (_ptr_server_name) {
14675                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14676                 } else {
14677                         r->in.server_name = NULL;
14678                 }
14679                 if (r->in.server_name) {
14680                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14681                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14682                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14683                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14684                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14685                                 return 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));
14686                         }
14687                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14688                         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));
14689                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14690                 }
14691                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
14692                 if (_ptr_domain) {
14693                         NDR_PULL_ALLOC(ndr, r->in.domain);
14694                 } else {
14695                         r->in.domain = NULL;
14696                 }
14697                 if (r->in.domain) {
14698                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
14699                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain, 0);
14700                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
14701                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
14702                         if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
14703                                 return 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));
14704                         }
14705                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t)));
14706                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t), CH_UTF16));
14707                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
14708                 }
14709                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
14710                 if (_ptr_domain_guid) {
14711                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
14712                 } else {
14713                         r->in.domain_guid = NULL;
14714                 }
14715                 if (r->in.domain_guid) {
14716                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
14717                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
14718                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
14719                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
14720                 }
14721                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_guid));
14722                 if (_ptr_dsa_guid) {
14723                         NDR_PULL_ALLOC(ndr, r->in.dsa_guid);
14724                 } else {
14725                         r->in.dsa_guid = NULL;
14726                 }
14727                 if (r->in.dsa_guid) {
14728                         _mem_save_dsa_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
14729                         NDR_PULL_SET_MEM_CTX(ndr, r->in.dsa_guid, 0);
14730                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
14731                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_guid_0, 0);
14732                 }
14733                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_host));
14734                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_host));
14735                 if (ndr_get_array_length(ndr, &r->in.dns_host) > ndr_get_array_size(ndr, &r->in.dns_host)) {
14736                         return 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));
14737                 }
14738                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t)));
14739                 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));
14740         }
14741         if (flags & NDR_OUT) {
14742                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14743         }
14744         return NDR_ERR_SUCCESS;
14745 }
14746
14747 _PUBLIC_ void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
14748 {
14749         ndr_print_struct(ndr, name, "netr_DsrDeregisterDNSHostRecords");
14750         ndr->depth++;
14751         if (flags & NDR_SET_VALUES) {
14752                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14753         }
14754         if (flags & NDR_IN) {
14755                 ndr_print_struct(ndr, "in", "netr_DsrDeregisterDNSHostRecords");
14756                 ndr->depth++;
14757                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14758                 ndr->depth++;
14759                 if (r->in.server_name) {
14760                         ndr_print_string(ndr, "server_name", r->in.server_name);
14761                 }
14762                 ndr->depth--;
14763                 ndr_print_ptr(ndr, "domain", r->in.domain);
14764                 ndr->depth++;
14765                 if (r->in.domain) {
14766                         ndr_print_string(ndr, "domain", r->in.domain);
14767                 }
14768                 ndr->depth--;
14769                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
14770                 ndr->depth++;
14771                 if (r->in.domain_guid) {
14772                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
14773                 }
14774                 ndr->depth--;
14775                 ndr_print_ptr(ndr, "dsa_guid", r->in.dsa_guid);
14776                 ndr->depth++;
14777                 if (r->in.dsa_guid) {
14778                         ndr_print_GUID(ndr, "dsa_guid", r->in.dsa_guid);
14779                 }
14780                 ndr->depth--;
14781                 ndr_print_ptr(ndr, "dns_host", r->in.dns_host);
14782                 ndr->depth++;
14783                 ndr_print_string(ndr, "dns_host", r->in.dns_host);
14784                 ndr->depth--;
14785                 ndr->depth--;
14786         }
14787         if (flags & NDR_OUT) {
14788                 ndr_print_struct(ndr, "out", "netr_DsrDeregisterDNSHostRecords");
14789                 ndr->depth++;
14790                 ndr_print_WERROR(ndr, "result", r->out.result);
14791                 ndr->depth--;
14792         }
14793         ndr->depth--;
14794 }
14795
14796 static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push *ndr, int flags, const struct netr_ServerTrustPasswordsGet *r)
14797 {
14798         if (flags & NDR_IN) {
14799                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14800                 if (r->in.server_name) {
14801                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14802                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14803                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14804                         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));
14805                 }
14806                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
14807                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14808                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
14809                 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));
14810                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
14811                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14812                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14813                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14814                 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));
14815                 if (r->in.credential == NULL) {
14816                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14817                 }
14818                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14819         }
14820         if (flags & NDR_OUT) {
14821                 if (r->out.return_authenticator == NULL) {
14822                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14823                 }
14824                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14825                 if (r->out.password == NULL) {
14826                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14827                 }
14828                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
14829                 if (r->out.password2 == NULL) {
14830                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14831                 }
14832                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password2));
14833                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
14834         }
14835         return NDR_ERR_SUCCESS;
14836 }
14837
14838 static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r)
14839 {
14840         uint32_t _ptr_server_name;
14841         TALLOC_CTX *_mem_save_server_name_0;
14842         TALLOC_CTX *_mem_save_credential_0;
14843         TALLOC_CTX *_mem_save_return_authenticator_0;
14844         TALLOC_CTX *_mem_save_password_0;
14845         TALLOC_CTX *_mem_save_password2_0;
14846         if (flags & NDR_IN) {
14847                 ZERO_STRUCT(r->out);
14848
14849                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14850                 if (_ptr_server_name) {
14851                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14852                 } else {
14853                         r->in.server_name = NULL;
14854                 }
14855                 if (r->in.server_name) {
14856                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14857                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14858                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14859                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14860                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14861                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
14862                         }
14863                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14864                         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));
14865                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14866                 }
14867                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
14868                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
14869                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
14870                         return 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));
14871                 }
14872                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
14873                 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));
14874                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
14875                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14876                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14877                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14878                         return 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));
14879                 }
14880                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14881                 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));
14882                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14883                         NDR_PULL_ALLOC(ndr, r->in.credential);
14884                 }
14885                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14886                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
14887                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14888                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
14889                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14890                 ZERO_STRUCTP(r->out.return_authenticator);
14891                 NDR_PULL_ALLOC(ndr, r->out.password);
14892                 ZERO_STRUCTP(r->out.password);
14893                 NDR_PULL_ALLOC(ndr, r->out.password2);
14894                 ZERO_STRUCTP(r->out.password2);
14895         }
14896         if (flags & NDR_OUT) {
14897                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14898                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14899                 }
14900                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14901                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14902                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14903                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14904                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14905                         NDR_PULL_ALLOC(ndr, r->out.password);
14906                 }
14907                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
14908                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
14909                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
14910                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
14911                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14912                         NDR_PULL_ALLOC(ndr, r->out.password2);
14913                 }
14914                 _mem_save_password2_0 = NDR_PULL_GET_MEM_CTX(ndr);
14915                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password2, LIBNDR_FLAG_REF_ALLOC);
14916                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password2));
14917                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password2_0, LIBNDR_FLAG_REF_ALLOC);
14918                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14919         }
14920         return NDR_ERR_SUCCESS;
14921 }
14922
14923 _PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerTrustPasswordsGet *r)
14924 {
14925         ndr_print_struct(ndr, name, "netr_ServerTrustPasswordsGet");
14926         ndr->depth++;
14927         if (flags & NDR_SET_VALUES) {
14928                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14929         }
14930         if (flags & NDR_IN) {
14931                 ndr_print_struct(ndr, "in", "netr_ServerTrustPasswordsGet");
14932                 ndr->depth++;
14933                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14934                 ndr->depth++;
14935                 if (r->in.server_name) {
14936                         ndr_print_string(ndr, "server_name", r->in.server_name);
14937                 }
14938                 ndr->depth--;
14939                 ndr_print_string(ndr, "account_name", r->in.account_name);
14940                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
14941                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
14942                 ndr_print_ptr(ndr, "credential", r->in.credential);
14943                 ndr->depth++;
14944                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14945                 ndr->depth--;
14946                 ndr->depth--;
14947         }
14948         if (flags & NDR_OUT) {
14949                 ndr_print_struct(ndr, "out", "netr_ServerTrustPasswordsGet");
14950                 ndr->depth++;
14951                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14952                 ndr->depth++;
14953                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14954                 ndr->depth--;
14955                 ndr_print_ptr(ndr, "password", r->out.password);
14956                 ndr->depth++;
14957                 ndr_print_samr_Password(ndr, "password", r->out.password);
14958                 ndr->depth--;
14959                 ndr_print_ptr(ndr, "password2", r->out.password2);
14960                 ndr->depth++;
14961                 ndr_print_samr_Password(ndr, "password2", r->out.password2);
14962                 ndr->depth--;
14963                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14964                 ndr->depth--;
14965         }
14966         ndr->depth--;
14967 }
14968
14969 static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_DsRGetForestTrustInformation *r)
14970 {
14971         if (flags & NDR_IN) {
14972                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14973                 if (r->in.server_name) {
14974                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14975                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14976                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14977                         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));
14978                 }
14979                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.trusted_domain_name));
14980                 if (r->in.trusted_domain_name) {
14981                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14982                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14983                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14984                         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));
14985                 }
14986                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14987         }
14988         if (flags & NDR_OUT) {
14989                 if (r->out.forest_trust_info == NULL) {
14990                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14991                 }
14992                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
14993                 if (*r->out.forest_trust_info) {
14994                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14995                 }
14996                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14997         }
14998         return NDR_ERR_SUCCESS;
14999 }
15000
15001 static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r)
15002 {
15003         uint32_t _ptr_server_name;
15004         uint32_t _ptr_trusted_domain_name;
15005         uint32_t _ptr_forest_trust_info;
15006         TALLOC_CTX *_mem_save_server_name_0;
15007         TALLOC_CTX *_mem_save_trusted_domain_name_0;
15008         TALLOC_CTX *_mem_save_forest_trust_info_0;
15009         TALLOC_CTX *_mem_save_forest_trust_info_1;
15010         if (flags & NDR_IN) {
15011                 ZERO_STRUCT(r->out);
15012
15013                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15014                 if (_ptr_server_name) {
15015                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15016                 } else {
15017                         r->in.server_name = NULL;
15018                 }
15019                 if (r->in.server_name) {
15020                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15021                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15022                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15023                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15024                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15025                                 return 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));
15026                         }
15027                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15028                         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));
15029                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15030                 }
15031                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
15032                 if (_ptr_trusted_domain_name) {
15033                         NDR_PULL_ALLOC(ndr, r->in.trusted_domain_name);
15034                 } else {
15035                         r->in.trusted_domain_name = NULL;
15036                 }
15037                 if (r->in.trusted_domain_name) {
15038                         _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15039                         NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0);
15040                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
15041                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
15042                         if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
15043                                 return 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));
15044                         }
15045                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
15046                         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));
15047                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
15048                 }
15049                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
15050                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15051                 ZERO_STRUCTP(r->out.forest_trust_info);
15052         }
15053         if (flags & NDR_OUT) {
15054                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15055                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15056                 }
15057                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15058                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
15059                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
15060                 if (_ptr_forest_trust_info) {
15061                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
15062                 } else {
15063                         *r->out.forest_trust_info = NULL;
15064                 }
15065                 if (*r->out.forest_trust_info) {
15066                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
15067                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
15068                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15069                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
15070                 }
15071                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
15072                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15073         }
15074         return NDR_ERR_SUCCESS;
15075 }
15076
15077 _PUBLIC_ void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r)
15078 {
15079         ndr_print_struct(ndr, name, "netr_DsRGetForestTrustInformation");
15080         ndr->depth++;
15081         if (flags & NDR_SET_VALUES) {
15082                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15083         }
15084         if (flags & NDR_IN) {
15085                 ndr_print_struct(ndr, "in", "netr_DsRGetForestTrustInformation");
15086                 ndr->depth++;
15087                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15088                 ndr->depth++;
15089                 if (r->in.server_name) {
15090                         ndr_print_string(ndr, "server_name", r->in.server_name);
15091                 }
15092                 ndr->depth--;
15093                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15094                 ndr->depth++;
15095                 if (r->in.trusted_domain_name) {
15096                         ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15097                 }
15098                 ndr->depth--;
15099                 ndr_print_uint32(ndr, "flags", r->in.flags);
15100                 ndr->depth--;
15101         }
15102         if (flags & NDR_OUT) {
15103                 ndr_print_struct(ndr, "out", "netr_DsRGetForestTrustInformation");
15104                 ndr->depth++;
15105                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
15106                 ndr->depth++;
15107                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
15108                 ndr->depth++;
15109                 if (*r->out.forest_trust_info) {
15110                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
15111                 }
15112                 ndr->depth--;
15113                 ndr->depth--;
15114                 ndr_print_WERROR(ndr, "result", r->out.result);
15115                 ndr->depth--;
15116         }
15117         ndr->depth--;
15118 }
15119
15120 static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_GetForestTrustInformation *r)
15121 {
15122         if (flags & NDR_IN) {
15123                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15124                 if (r->in.server_name) {
15125                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15126                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15127                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15128                         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));
15129                 }
15130                 if (r->in.trusted_domain_name == NULL) {
15131                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15132                 }
15133                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15134                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15135                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15136                 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));
15137                 if (r->in.credential == NULL) {
15138                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15139                 }
15140                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15141                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
15142         }
15143         if (flags & NDR_OUT) {
15144                 if (r->out.return_authenticator == NULL) {
15145                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15146                 }
15147                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15148                 if (r->out.forest_trust_info == NULL) {
15149                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15150                 }
15151                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
15152                 if (*r->out.forest_trust_info) {
15153                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15154                 }
15155                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15156         }
15157         return NDR_ERR_SUCCESS;
15158 }
15159
15160 static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r)
15161 {
15162         uint32_t _ptr_server_name;
15163         uint32_t _ptr_forest_trust_info;
15164         TALLOC_CTX *_mem_save_server_name_0;
15165         TALLOC_CTX *_mem_save_credential_0;
15166         TALLOC_CTX *_mem_save_return_authenticator_0;
15167         TALLOC_CTX *_mem_save_forest_trust_info_0;
15168         TALLOC_CTX *_mem_save_forest_trust_info_1;
15169         if (flags & NDR_IN) {
15170                 ZERO_STRUCT(r->out);
15171
15172                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15173                 if (_ptr_server_name) {
15174                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15175                 } else {
15176                         r->in.server_name = NULL;
15177                 }
15178                 if (r->in.server_name) {
15179                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15180                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15181                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15182                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15183                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15184                                 return 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));
15185                         }
15186                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15187                         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));
15188                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15189                 }
15190                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
15191                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
15192                 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
15193                         return 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));
15194                 }
15195                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
15196                 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));
15197                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15198                         NDR_PULL_ALLOC(ndr, r->in.credential);
15199                 }
15200                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
15201                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
15202                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15203                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
15204                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
15205                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15206                 ZERO_STRUCTP(r->out.return_authenticator);
15207                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15208                 ZERO_STRUCTP(r->out.forest_trust_info);
15209         }
15210         if (flags & NDR_OUT) {
15211                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15212                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15213                 }
15214                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15215                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
15216                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15217                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
15218                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15219                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15220                 }
15221                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15222                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
15223                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
15224                 if (_ptr_forest_trust_info) {
15225                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
15226                 } else {
15227                         *r->out.forest_trust_info = NULL;
15228                 }
15229                 if (*r->out.forest_trust_info) {
15230                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
15231                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
15232                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15233                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
15234                 }
15235                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
15236                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15237         }
15238         return NDR_ERR_SUCCESS;
15239 }
15240
15241 _PUBLIC_ void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r)
15242 {
15243         ndr_print_struct(ndr, name, "netr_GetForestTrustInformation");
15244         ndr->depth++;
15245         if (flags & NDR_SET_VALUES) {
15246                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15247         }
15248         if (flags & NDR_IN) {
15249                 ndr_print_struct(ndr, "in", "netr_GetForestTrustInformation");
15250                 ndr->depth++;
15251                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15252                 ndr->depth++;
15253                 if (r->in.server_name) {
15254                         ndr_print_string(ndr, "server_name", r->in.server_name);
15255                 }
15256                 ndr->depth--;
15257                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15258                 ndr->depth++;
15259                 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15260                 ndr->depth--;
15261                 ndr_print_ptr(ndr, "credential", r->in.credential);
15262                 ndr->depth++;
15263                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
15264                 ndr->depth--;
15265                 ndr_print_uint32(ndr, "flags", r->in.flags);
15266                 ndr->depth--;
15267         }
15268         if (flags & NDR_OUT) {
15269                 ndr_print_struct(ndr, "out", "netr_GetForestTrustInformation");
15270                 ndr->depth++;
15271                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
15272                 ndr->depth++;
15273                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
15274                 ndr->depth--;
15275                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
15276                 ndr->depth++;
15277                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
15278                 ndr->depth++;
15279                 if (*r->out.forest_trust_info) {
15280                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
15281                 }
15282                 ndr->depth--;
15283                 ndr->depth--;
15284                 ndr_print_WERROR(ndr, "result", r->out.result);
15285                 ndr->depth--;
15286         }
15287         ndr->depth--;
15288 }
15289
15290 static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
15291 {
15292         if (flags & NDR_IN) {
15293                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15294                 if (r->in.server_name) {
15295                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15296                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15297                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15298                         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));
15299                 }
15300                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
15301                 if (r->in.computer_name) {
15302                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15303                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15304                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15305                         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));
15306                 }
15307                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
15308                 if (r->in.credential) {
15309                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15310                 }
15311                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
15312                 if (r->in.return_authenticator) {
15313                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
15314                 }
15315                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
15316                 if (r->in.logon == NULL) {
15317                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15318                 }
15319                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
15320                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
15321                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
15322                 if (r->in.flags == NULL) {
15323                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15324                 }
15325                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
15326         }
15327         if (flags & NDR_OUT) {
15328                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
15329                 if (r->out.return_authenticator) {
15330                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15331                 }
15332                 if (r->out.validation == NULL) {
15333                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15334                 }
15335                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
15336                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
15337                 if (r->out.authoritative == NULL) {
15338                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15339                 }
15340                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
15341                 if (r->out.flags == NULL) {
15342                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15343                 }
15344                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
15345                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
15346         }
15347         return NDR_ERR_SUCCESS;
15348 }
15349
15350 static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
15351 {
15352         uint32_t _ptr_server_name;
15353         uint32_t _ptr_computer_name;
15354         uint32_t _ptr_credential;
15355         uint32_t _ptr_return_authenticator;
15356         TALLOC_CTX *_mem_save_server_name_0;
15357         TALLOC_CTX *_mem_save_computer_name_0;
15358         TALLOC_CTX *_mem_save_credential_0;
15359         TALLOC_CTX *_mem_save_return_authenticator_0;
15360         TALLOC_CTX *_mem_save_logon_0;
15361         TALLOC_CTX *_mem_save_validation_0;
15362         TALLOC_CTX *_mem_save_authoritative_0;
15363         TALLOC_CTX *_mem_save_flags_0;
15364         if (flags & NDR_IN) {
15365                 ZERO_STRUCT(r->out);
15366
15367                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15368                 if (_ptr_server_name) {
15369                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15370                 } else {
15371                         r->in.server_name = NULL;
15372                 }
15373                 if (r->in.server_name) {
15374                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15375                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15376                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15377                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15378                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15379                                 return 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));
15380                         }
15381                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15382                         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));
15383                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15384                 }
15385                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
15386                 if (_ptr_computer_name) {
15387                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
15388                 } else {
15389                         r->in.computer_name = NULL;
15390                 }
15391                 if (r->in.computer_name) {
15392                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15393                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
15394                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
15395                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
15396                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
15397                                 return 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));
15398                         }
15399                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
15400                         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));
15401                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
15402                 }
15403                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
15404                 if (_ptr_credential) {
15405                         NDR_PULL_ALLOC(ndr, r->in.credential);
15406                 } else {
15407                         r->in.credential = NULL;
15408                 }
15409                 if (r->in.credential) {
15410                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
15411                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
15412                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15413                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
15414                 }
15415                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
15416                 if (_ptr_return_authenticator) {
15417                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
15418                 } else {
15419                         r->in.return_authenticator = NULL;
15420                 }
15421                 if (r->in.return_authenticator) {
15422                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15423                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
15424                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
15425                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
15426                 }
15427                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
15428                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15429                         NDR_PULL_ALLOC(ndr, r->in.logon);
15430                 }
15431                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
15432                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
15433                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
15434                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
15435                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
15436                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
15437                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15438                         NDR_PULL_ALLOC(ndr, r->in.flags);
15439                 }
15440                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
15441                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
15442                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
15443                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
15444                 NDR_PULL_ALLOC(ndr, r->out.validation);
15445                 ZERO_STRUCTP(r->out.validation);
15446                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
15447                 ZERO_STRUCTP(r->out.authoritative);
15448                 NDR_PULL_ALLOC(ndr, r->out.flags);
15449                 *r->out.flags = *r->in.flags;
15450         }
15451         if (flags & NDR_OUT) {
15452                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
15453                 if (_ptr_return_authenticator) {
15454                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15455                 } else {
15456                         r->out.return_authenticator = NULL;
15457                 }
15458                 if (r->out.return_authenticator) {
15459                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15460                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
15461                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15462                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
15463                 }
15464                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15465                         NDR_PULL_ALLOC(ndr, r->out.validation);
15466                 }
15467                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
15468                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
15469                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
15470                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
15471                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
15472                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15473                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
15474                 }
15475                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
15476                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
15477                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
15478                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
15479                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15480                         NDR_PULL_ALLOC(ndr, r->out.flags);
15481                 }
15482                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
15483                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
15484                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
15485                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
15486                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
15487         }
15488         return NDR_ERR_SUCCESS;
15489 }
15490
15491 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
15492 {
15493         ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
15494         ndr->depth++;
15495         if (flags & NDR_SET_VALUES) {
15496                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15497         }
15498         if (flags & NDR_IN) {
15499                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
15500                 ndr->depth++;
15501                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15502                 ndr->depth++;
15503                 if (r->in.server_name) {
15504                         ndr_print_string(ndr, "server_name", r->in.server_name);
15505                 }
15506                 ndr->depth--;
15507                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
15508                 ndr->depth++;
15509                 if (r->in.computer_name) {
15510                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
15511                 }
15512                 ndr->depth--;
15513                 ndr_print_ptr(ndr, "credential", r->in.credential);
15514                 ndr->depth++;
15515                 if (r->in.credential) {
15516                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
15517                 }
15518                 ndr->depth--;
15519                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
15520                 ndr->depth++;
15521                 if (r->in.return_authenticator) {
15522                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
15523                 }
15524                 ndr->depth--;
15525                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
15526                 ndr_print_ptr(ndr, "logon", r->in.logon);
15527                 ndr->depth++;
15528                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
15529                 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
15530                 ndr->depth--;
15531                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
15532                 ndr_print_ptr(ndr, "flags", r->in.flags);
15533                 ndr->depth++;
15534                 ndr_print_uint32(ndr, "flags", *r->in.flags);
15535                 ndr->depth--;
15536                 ndr->depth--;
15537         }
15538         if (flags & NDR_OUT) {
15539                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
15540                 ndr->depth++;
15541                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
15542                 ndr->depth++;
15543                 if (r->out.return_authenticator) {
15544                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
15545                 }
15546                 ndr->depth--;
15547                 ndr_print_ptr(ndr, "validation", r->out.validation);
15548                 ndr->depth++;
15549                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
15550                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
15551                 ndr->depth--;
15552                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
15553                 ndr->depth++;
15554                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
15555                 ndr->depth--;
15556                 ndr_print_ptr(ndr, "flags", r->out.flags);
15557                 ndr->depth++;
15558                 ndr_print_uint32(ndr, "flags", *r->out.flags);
15559                 ndr->depth--;
15560                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
15561                 ndr->depth--;
15562         }
15563         ndr->depth--;
15564 }
15565
15566 static enum ndr_err_code ndr_push_netr_ServerGetTrustInfo(struct ndr_push *ndr, int flags, const struct netr_ServerGetTrustInfo *r)
15567 {
15568         if (flags & NDR_IN) {
15569                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15570                 if (r->in.server_name) {
15571                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15572                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15573                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15574                         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));
15575                 }
15576                 if (r->in.account_name == NULL) {
15577                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15578                 }
15579                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
15580                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15581                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
15582                 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));
15583                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
15584                 if (r->in.computer_name == NULL) {
15585                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15586                 }
15587                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15588                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15589                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15590                 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));
15591                 if (r->in.credential == NULL) {
15592                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15593                 }
15594                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15595         }
15596         if (flags & NDR_OUT) {
15597                 if (r->out.return_authenticator == NULL) {
15598                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15599                 }
15600                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15601                 if (r->out.new_owf_password == NULL) {
15602                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15603                 }
15604                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.new_owf_password));
15605                 if (r->out.old_owf_password == NULL) {
15606                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15607                 }
15608                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.old_owf_password));
15609                 if (r->out.trust_info == NULL) {
15610                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15611                 }
15612                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.trust_info));
15613                 if (*r->out.trust_info) {
15614                         NDR_CHECK(ndr_push_netr_TrustInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trust_info));
15615                 }
15616                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
15617         }
15618         return NDR_ERR_SUCCESS;
15619 }
15620
15621 static enum ndr_err_code ndr_pull_netr_ServerGetTrustInfo(struct ndr_pull *ndr, int flags, struct netr_ServerGetTrustInfo *r)
15622 {
15623         uint32_t _ptr_server_name;
15624         uint32_t _ptr_trust_info;
15625         TALLOC_CTX *_mem_save_server_name_0;
15626         TALLOC_CTX *_mem_save_credential_0;
15627         TALLOC_CTX *_mem_save_return_authenticator_0;
15628         TALLOC_CTX *_mem_save_new_owf_password_0;
15629         TALLOC_CTX *_mem_save_old_owf_password_0;
15630         TALLOC_CTX *_mem_save_trust_info_0;
15631         TALLOC_CTX *_mem_save_trust_info_1;
15632         if (flags & NDR_IN) {
15633                 ZERO_STRUCT(r->out);
15634
15635                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15636                 if (_ptr_server_name) {
15637                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15638                 } else {
15639                         r->in.server_name = NULL;
15640                 }
15641                 if (r->in.server_name) {
15642                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15643                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15644                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15645                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15646                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15647                                 return 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));
15648                         }
15649                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15650                         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));
15651                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15652                 }
15653                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
15654                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
15655                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
15656                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
15657                 }
15658                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
15659                 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));
15660                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
15661                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
15662                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
15663                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
15664                         return 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));
15665                 }
15666                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
15667                 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));
15668                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15669                         NDR_PULL_ALLOC(ndr, r->in.credential);
15670                 }
15671                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
15672                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
15673                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15674                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
15675                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15676                 ZERO_STRUCTP(r->out.return_authenticator);
15677                 NDR_PULL_ALLOC(ndr, r->out.new_owf_password);
15678                 ZERO_STRUCTP(r->out.new_owf_password);
15679                 NDR_PULL_ALLOC(ndr, r->out.old_owf_password);
15680                 ZERO_STRUCTP(r->out.old_owf_password);
15681                 NDR_PULL_ALLOC(ndr, r->out.trust_info);
15682                 ZERO_STRUCTP(r->out.trust_info);
15683         }
15684         if (flags & NDR_OUT) {
15685                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15686                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15687                 }
15688                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15689                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
15690                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15691                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
15692                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15693                         NDR_PULL_ALLOC(ndr, r->out.new_owf_password);
15694                 }
15695                 _mem_save_new_owf_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
15696                 NDR_PULL_SET_MEM_CTX(ndr, r->out.new_owf_password, LIBNDR_FLAG_REF_ALLOC);
15697                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.new_owf_password));
15698                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_owf_password_0, LIBNDR_FLAG_REF_ALLOC);
15699                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15700                         NDR_PULL_ALLOC(ndr, r->out.old_owf_password);
15701                 }
15702                 _mem_save_old_owf_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
15703                 NDR_PULL_SET_MEM_CTX(ndr, r->out.old_owf_password, LIBNDR_FLAG_REF_ALLOC);
15704                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.old_owf_password));
15705                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_old_owf_password_0, LIBNDR_FLAG_REF_ALLOC);
15706                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15707                         NDR_PULL_ALLOC(ndr, r->out.trust_info);
15708                 }
15709                 _mem_save_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15710                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trust_info, LIBNDR_FLAG_REF_ALLOC);
15711                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trust_info));
15712                 if (_ptr_trust_info) {
15713                         NDR_PULL_ALLOC(ndr, *r->out.trust_info);
15714                 } else {
15715                         *r->out.trust_info = NULL;
15716                 }
15717                 if (*r->out.trust_info) {
15718                         _mem_save_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
15719                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.trust_info, 0);
15720                         NDR_CHECK(ndr_pull_netr_TrustInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trust_info));
15721                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trust_info_1, 0);
15722                 }
15723                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
15724                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
15725         }
15726         return NDR_ERR_SUCCESS;
15727 }
15728
15729 _PUBLIC_ void ndr_print_netr_ServerGetTrustInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerGetTrustInfo *r)
15730 {
15731         ndr_print_struct(ndr, name, "netr_ServerGetTrustInfo");
15732         ndr->depth++;
15733         if (flags & NDR_SET_VALUES) {
15734                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15735         }
15736         if (flags & NDR_IN) {
15737                 ndr_print_struct(ndr, "in", "netr_ServerGetTrustInfo");
15738                 ndr->depth++;
15739                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15740                 ndr->depth++;
15741                 if (r->in.server_name) {
15742                         ndr_print_string(ndr, "server_name", r->in.server_name);
15743                 }
15744                 ndr->depth--;
15745                 ndr_print_ptr(ndr, "account_name", r->in.account_name);
15746                 ndr->depth++;
15747                 ndr_print_string(ndr, "account_name", r->in.account_name);
15748                 ndr->depth--;
15749                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
15750                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
15751                 ndr->depth++;
15752                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
15753                 ndr->depth--;
15754                 ndr_print_ptr(ndr, "credential", r->in.credential);
15755                 ndr->depth++;
15756                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
15757                 ndr->depth--;
15758                 ndr->depth--;
15759         }
15760         if (flags & NDR_OUT) {
15761                 ndr_print_struct(ndr, "out", "netr_ServerGetTrustInfo");
15762                 ndr->depth++;
15763                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
15764                 ndr->depth++;
15765                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
15766                 ndr->depth--;
15767                 ndr_print_ptr(ndr, "new_owf_password", r->out.new_owf_password);
15768                 ndr->depth++;
15769                 ndr_print_samr_Password(ndr, "new_owf_password", r->out.new_owf_password);
15770                 ndr->depth--;
15771                 ndr_print_ptr(ndr, "old_owf_password", r->out.old_owf_password);
15772                 ndr->depth++;
15773                 ndr_print_samr_Password(ndr, "old_owf_password", r->out.old_owf_password);
15774                 ndr->depth--;
15775                 ndr_print_ptr(ndr, "trust_info", r->out.trust_info);
15776                 ndr->depth++;
15777                 ndr_print_ptr(ndr, "trust_info", *r->out.trust_info);
15778                 ndr->depth++;
15779                 if (*r->out.trust_info) {
15780                         ndr_print_netr_TrustInfo(ndr, "trust_info", *r->out.trust_info);
15781                 }
15782                 ndr->depth--;
15783                 ndr->depth--;
15784                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
15785                 ndr->depth--;
15786         }
15787         ndr->depth--;
15788 }
15789
15790 static const struct ndr_interface_call netlogon_calls[] = {
15791         {
15792                 "netr_LogonUasLogon",
15793                 sizeof(struct netr_LogonUasLogon),
15794                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
15795                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
15796                 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
15797                 false,
15798         },
15799         {
15800                 "netr_LogonUasLogoff",
15801                 sizeof(struct netr_LogonUasLogoff),
15802                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
15803                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
15804                 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
15805                 false,
15806         },
15807         {
15808                 "netr_LogonSamLogon",
15809                 sizeof(struct netr_LogonSamLogon),
15810                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
15811                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
15812                 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
15813                 false,
15814         },
15815         {
15816                 "netr_LogonSamLogoff",
15817                 sizeof(struct netr_LogonSamLogoff),
15818                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
15819                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
15820                 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
15821                 false,
15822         },
15823         {
15824                 "netr_ServerReqChallenge",
15825                 sizeof(struct netr_ServerReqChallenge),
15826                 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
15827                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
15828                 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
15829                 false,
15830         },
15831         {
15832                 "netr_ServerAuthenticate",
15833                 sizeof(struct netr_ServerAuthenticate),
15834                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
15835                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
15836                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
15837                 false,
15838         },
15839         {
15840                 "netr_ServerPasswordSet",
15841                 sizeof(struct netr_ServerPasswordSet),
15842                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
15843                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
15844                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
15845                 false,
15846         },
15847         {
15848                 "netr_DatabaseDeltas",
15849                 sizeof(struct netr_DatabaseDeltas),
15850                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
15851                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
15852                 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
15853                 false,
15854         },
15855         {
15856                 "netr_DatabaseSync",
15857                 sizeof(struct netr_DatabaseSync),
15858                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
15859                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
15860                 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
15861                 false,
15862         },
15863         {
15864                 "netr_AccountDeltas",
15865                 sizeof(struct netr_AccountDeltas),
15866                 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
15867                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
15868                 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
15869                 false,
15870         },
15871         {
15872                 "netr_AccountSync",
15873                 sizeof(struct netr_AccountSync),
15874                 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
15875                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
15876                 (ndr_print_function_t) ndr_print_netr_AccountSync,
15877                 false,
15878         },
15879         {
15880                 "netr_GetDcName",
15881                 sizeof(struct netr_GetDcName),
15882                 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
15883                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
15884                 (ndr_print_function_t) ndr_print_netr_GetDcName,
15885                 false,
15886         },
15887         {
15888                 "netr_LogonControl",
15889                 sizeof(struct netr_LogonControl),
15890                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
15891                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
15892                 (ndr_print_function_t) ndr_print_netr_LogonControl,
15893                 false,
15894         },
15895         {
15896                 "netr_GetAnyDCName",
15897                 sizeof(struct netr_GetAnyDCName),
15898                 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
15899                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
15900                 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
15901                 false,
15902         },
15903         {
15904                 "netr_LogonControl2",
15905                 sizeof(struct netr_LogonControl2),
15906                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
15907                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
15908                 (ndr_print_function_t) ndr_print_netr_LogonControl2,
15909                 false,
15910         },
15911         {
15912                 "netr_ServerAuthenticate2",
15913                 sizeof(struct netr_ServerAuthenticate2),
15914                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
15915                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
15916                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
15917                 false,
15918         },
15919         {
15920                 "netr_DatabaseSync2",
15921                 sizeof(struct netr_DatabaseSync2),
15922                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
15923                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
15924                 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
15925                 false,
15926         },
15927         {
15928                 "netr_DatabaseRedo",
15929                 sizeof(struct netr_DatabaseRedo),
15930                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
15931                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
15932                 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
15933                 false,
15934         },
15935         {
15936                 "netr_LogonControl2Ex",
15937                 sizeof(struct netr_LogonControl2Ex),
15938                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
15939                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
15940                 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
15941                 false,
15942         },
15943         {
15944                 "netr_NetrEnumerateTrustedDomains",
15945                 sizeof(struct netr_NetrEnumerateTrustedDomains),
15946                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomains,
15947                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomains,
15948                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomains,
15949                 false,
15950         },
15951         {
15952                 "netr_DsRGetDCName",
15953                 sizeof(struct netr_DsRGetDCName),
15954                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
15955                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
15956                 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
15957                 false,
15958         },
15959         {
15960                 "netr_NETRLOGONDUMMYROUTINE1",
15961                 sizeof(struct netr_NETRLOGONDUMMYROUTINE1),
15962                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONDUMMYROUTINE1,
15963                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONDUMMYROUTINE1,
15964                 (ndr_print_function_t) ndr_print_netr_NETRLOGONDUMMYROUTINE1,
15965                 false,
15966         },
15967         {
15968                 "netr_NETRLOGONSETSERVICEBITS",
15969                 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
15970                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
15971                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
15972                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
15973                 false,
15974         },
15975         {
15976                 "netr_LogonGetTrustRid",
15977                 sizeof(struct netr_LogonGetTrustRid),
15978                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetTrustRid,
15979                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetTrustRid,
15980                 (ndr_print_function_t) ndr_print_netr_LogonGetTrustRid,
15981                 false,
15982         },
15983         {
15984                 "netr_NETRLOGONCOMPUTESERVERDIGEST",
15985                 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
15986                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
15987                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
15988                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
15989                 false,
15990         },
15991         {
15992                 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
15993                 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
15994                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
15995                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
15996                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
15997                 false,
15998         },
15999         {
16000                 "netr_ServerAuthenticate3",
16001                 sizeof(struct netr_ServerAuthenticate3),
16002                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
16003                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
16004                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
16005                 false,
16006         },
16007         {
16008                 "netr_DsRGetDCNameEx",
16009                 sizeof(struct netr_DsRGetDCNameEx),
16010                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
16011                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
16012                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
16013                 false,
16014         },
16015         {
16016                 "netr_DsRGetSiteName",
16017                 sizeof(struct netr_DsRGetSiteName),
16018                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
16019                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
16020                 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
16021                 false,
16022         },
16023         {
16024                 "netr_LogonGetDomainInfo",
16025                 sizeof(struct netr_LogonGetDomainInfo),
16026                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
16027                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
16028                 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
16029                 false,
16030         },
16031         {
16032                 "netr_ServerPasswordSet2",
16033                 sizeof(struct netr_ServerPasswordSet2),
16034                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
16035                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
16036                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
16037                 false,
16038         },
16039         {
16040                 "netr_ServerPasswordGet",
16041                 sizeof(struct netr_ServerPasswordGet),
16042                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordGet,
16043                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordGet,
16044                 (ndr_print_function_t) ndr_print_netr_ServerPasswordGet,
16045                 false,
16046         },
16047         {
16048                 "netr_NETRLOGONSENDTOSAM",
16049                 sizeof(struct netr_NETRLOGONSENDTOSAM),
16050                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
16051                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
16052                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
16053                 false,
16054         },
16055         {
16056                 "netr_DsRAddressToSitenamesW",
16057                 sizeof(struct netr_DsRAddressToSitenamesW),
16058                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesW,
16059                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesW,
16060                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesW,
16061                 false,
16062         },
16063         {
16064                 "netr_DsRGetDCNameEx2",
16065                 sizeof(struct netr_DsRGetDCNameEx2),
16066                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
16067                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
16068                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
16069                 false,
16070         },
16071         {
16072                 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
16073                 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
16074                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16075                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16076                 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16077                 false,
16078         },
16079         {
16080                 "netr_NetrEnumerateTrustedDomainsEx",
16081                 sizeof(struct netr_NetrEnumerateTrustedDomainsEx),
16082                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomainsEx,
16083                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomainsEx,
16084                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomainsEx,
16085                 false,
16086         },
16087         {
16088                 "netr_DsRAddressToSitenamesExW",
16089                 sizeof(struct netr_DsRAddressToSitenamesExW),
16090                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesExW,
16091                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesExW,
16092                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesExW,
16093                 false,
16094         },
16095         {
16096                 "netr_DsrGetDcSiteCoverageW",
16097                 sizeof(struct netr_DsrGetDcSiteCoverageW),
16098                 (ndr_push_flags_fn_t) ndr_push_netr_DsrGetDcSiteCoverageW,
16099                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrGetDcSiteCoverageW,
16100                 (ndr_print_function_t) ndr_print_netr_DsrGetDcSiteCoverageW,
16101                 false,
16102         },
16103         {
16104                 "netr_LogonSamLogonEx",
16105                 sizeof(struct netr_LogonSamLogonEx),
16106                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
16107                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
16108                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
16109                 false,
16110         },
16111         {
16112                 "netr_DsrEnumerateDomainTrusts",
16113                 sizeof(struct netr_DsrEnumerateDomainTrusts),
16114                 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
16115                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
16116                 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
16117                 false,
16118         },
16119         {
16120                 "netr_DsrDeregisterDNSHostRecords",
16121                 sizeof(struct netr_DsrDeregisterDNSHostRecords),
16122                 (ndr_push_flags_fn_t) ndr_push_netr_DsrDeregisterDNSHostRecords,
16123                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrDeregisterDNSHostRecords,
16124                 (ndr_print_function_t) ndr_print_netr_DsrDeregisterDNSHostRecords,
16125                 false,
16126         },
16127         {
16128                 "netr_ServerTrustPasswordsGet",
16129                 sizeof(struct netr_ServerTrustPasswordsGet),
16130                 (ndr_push_flags_fn_t) ndr_push_netr_ServerTrustPasswordsGet,
16131                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerTrustPasswordsGet,
16132                 (ndr_print_function_t) ndr_print_netr_ServerTrustPasswordsGet,
16133                 false,
16134         },
16135         {
16136                 "netr_DsRGetForestTrustInformation",
16137                 sizeof(struct netr_DsRGetForestTrustInformation),
16138                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetForestTrustInformation,
16139                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetForestTrustInformation,
16140                 (ndr_print_function_t) ndr_print_netr_DsRGetForestTrustInformation,
16141                 false,
16142         },
16143         {
16144                 "netr_GetForestTrustInformation",
16145                 sizeof(struct netr_GetForestTrustInformation),
16146                 (ndr_push_flags_fn_t) ndr_push_netr_GetForestTrustInformation,
16147                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetForestTrustInformation,
16148                 (ndr_print_function_t) ndr_print_netr_GetForestTrustInformation,
16149                 false,
16150         },
16151         {
16152                 "netr_LogonSamLogonWithFlags",
16153                 sizeof(struct netr_LogonSamLogonWithFlags),
16154                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
16155                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
16156                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
16157                 false,
16158         },
16159         {
16160                 "netr_ServerGetTrustInfo",
16161                 sizeof(struct netr_ServerGetTrustInfo),
16162                 (ndr_push_flags_fn_t) ndr_push_netr_ServerGetTrustInfo,
16163                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerGetTrustInfo,
16164                 (ndr_print_function_t) ndr_print_netr_ServerGetTrustInfo,
16165                 false,
16166         },
16167         { NULL, 0, NULL, NULL, NULL, false }
16168 };
16169
16170 static const char * const netlogon_endpoint_strings[] = {
16171         "ncacn_np:[\\pipe\\netlogon]", 
16172         "ncacn_ip_tcp:", 
16173         "ncalrpc:", 
16174 };
16175
16176 static const struct ndr_interface_string_array netlogon_endpoints = {
16177         .count  = 3,
16178         .names  = netlogon_endpoint_strings
16179 };
16180
16181 static const char * const netlogon_authservice_strings[] = {
16182         "host", 
16183 };
16184
16185 static const struct ndr_interface_string_array netlogon_authservices = {
16186         .count  = 1,
16187         .names  = netlogon_authservice_strings
16188 };
16189
16190
16191 const struct ndr_interface_table ndr_table_netlogon = {
16192         .name           = "netlogon",
16193         .syntax_id      = {
16194                 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
16195                 NDR_NETLOGON_VERSION
16196         },
16197         .helpstring     = NDR_NETLOGON_HELPSTRING,
16198         .num_calls      = 47,
16199         .calls          = netlogon_calls,
16200         .endpoints      = &netlogon_endpoints,
16201         .authservices   = &netlogon_authservices
16202 };
16203