librpc: rerun make idl
[samba.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_NETLOGON_INFO_4(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_4 *r)
5758 {
5759         if (ndr_flags & NDR_SCALARS) {
5760                 NDR_CHECK(ndr_push_align(ndr, 4));
5761                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_dc_name));
5762                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain_name));
5763         }
5764         if (ndr_flags & NDR_BUFFERS) {
5765                 if (r->trusted_dc_name) {
5766                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5767                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5768                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5769                         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));
5770                 }
5771                 if (r->trusted_domain_name) {
5772                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_domain_name, CH_UTF16)));
5773                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5774                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_domain_name, CH_UTF16)));
5775                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->trusted_domain_name, ndr_charset_length(r->trusted_domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5776                 }
5777         }
5778         return NDR_ERR_SUCCESS;
5779 }
5780
5781 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_4(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_4 *r)
5782 {
5783         uint32_t _ptr_trusted_dc_name;
5784         TALLOC_CTX *_mem_save_trusted_dc_name_0;
5785         uint32_t _ptr_trusted_domain_name;
5786         TALLOC_CTX *_mem_save_trusted_domain_name_0;
5787         if (ndr_flags & NDR_SCALARS) {
5788                 NDR_CHECK(ndr_pull_align(ndr, 4));
5789                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_dc_name));
5790                 if (_ptr_trusted_dc_name) {
5791                         NDR_PULL_ALLOC(ndr, r->trusted_dc_name);
5792                 } else {
5793                         r->trusted_dc_name = NULL;
5794                 }
5795                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
5796                 if (_ptr_trusted_domain_name) {
5797                         NDR_PULL_ALLOC(ndr, r->trusted_domain_name);
5798                 } else {
5799                         r->trusted_domain_name = NULL;
5800                 }
5801         }
5802         if (ndr_flags & NDR_BUFFERS) {
5803                 if (r->trusted_dc_name) {
5804                         _mem_save_trusted_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5805                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0);
5806                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5807                         NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5808                         if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5809                                 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));
5810                         }
5811                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5812                         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));
5813                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0);
5814                 }
5815                 if (r->trusted_domain_name) {
5816                         _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5817                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain_name, 0);
5818                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_domain_name));
5819                         NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_domain_name));
5820                         if (ndr_get_array_length(ndr, &r->trusted_domain_name) > ndr_get_array_size(ndr, &r->trusted_domain_name)) {
5821                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->trusted_domain_name), ndr_get_array_length(ndr, &r->trusted_domain_name));
5822                         }
5823                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_domain_name), sizeof(uint16_t)));
5824                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->trusted_domain_name, ndr_get_array_length(ndr, &r->trusted_domain_name), sizeof(uint16_t), CH_UTF16));
5825                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
5826                 }
5827         }
5828         return NDR_ERR_SUCCESS;
5829 }
5830
5831 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_4(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_4 *r)
5832 {
5833         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_4");
5834         ndr->depth++;
5835         ndr_print_ptr(ndr, "trusted_dc_name", r->trusted_dc_name);
5836         ndr->depth++;
5837         if (r->trusted_dc_name) {
5838                 ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5839         }
5840         ndr->depth--;
5841         ndr_print_ptr(ndr, "trusted_domain_name", r->trusted_domain_name);
5842         ndr->depth++;
5843         if (r->trusted_domain_name) {
5844                 ndr_print_string(ndr, "trusted_domain_name", r->trusted_domain_name);
5845         }
5846         ndr->depth--;
5847         ndr->depth--;
5848 }
5849
5850 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)
5851 {
5852         if (ndr_flags & NDR_SCALARS) {
5853                 int level = ndr_push_get_switch_value(ndr, r);
5854                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5855                 switch (level) {
5856                         case 1: {
5857                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5858                         break; }
5859
5860                         case 2: {
5861                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5862                         break; }
5863
5864                         case 3: {
5865                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5866                         break; }
5867
5868                         case 4: {
5869                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
5870                         break; }
5871
5872                         default:
5873                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5874                 }
5875         }
5876         if (ndr_flags & NDR_BUFFERS) {
5877                 int level = ndr_push_get_switch_value(ndr, r);
5878                 switch (level) {
5879                         case 1:
5880                                 if (r->info1) {
5881                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5882                                 }
5883                         break;
5884
5885                         case 2:
5886                                 if (r->info2) {
5887                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5888                                 }
5889                         break;
5890
5891                         case 3:
5892                                 if (r->info3) {
5893                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5894                                 }
5895                         break;
5896
5897                         case 4:
5898                                 if (r->info4) {
5899                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5900                                 }
5901                         break;
5902
5903                         default:
5904                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5905                 }
5906         }
5907         return NDR_ERR_SUCCESS;
5908 }
5909
5910 static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_QUERY_INFORMATION *r)
5911 {
5912         int level;
5913         uint32_t _level;
5914         TALLOC_CTX *_mem_save_info1_0;
5915         TALLOC_CTX *_mem_save_info2_0;
5916         TALLOC_CTX *_mem_save_info3_0;
5917         TALLOC_CTX *_mem_save_info4_0;
5918         level = ndr_pull_get_switch_value(ndr, r);
5919         if (ndr_flags & NDR_SCALARS) {
5920                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5921                 if (_level != level) {
5922                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5923                 }
5924                 switch (level) {
5925                         case 1: {
5926                                 uint32_t _ptr_info1;
5927                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5928                                 if (_ptr_info1) {
5929                                         NDR_PULL_ALLOC(ndr, r->info1);
5930                                 } else {
5931                                         r->info1 = NULL;
5932                                 }
5933                         break; }
5934
5935                         case 2: {
5936                                 uint32_t _ptr_info2;
5937                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5938                                 if (_ptr_info2) {
5939                                         NDR_PULL_ALLOC(ndr, r->info2);
5940                                 } else {
5941                                         r->info2 = NULL;
5942                                 }
5943                         break; }
5944
5945                         case 3: {
5946                                 uint32_t _ptr_info3;
5947                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5948                                 if (_ptr_info3) {
5949                                         NDR_PULL_ALLOC(ndr, r->info3);
5950                                 } else {
5951                                         r->info3 = NULL;
5952                                 }
5953                         break; }
5954
5955                         case 4: {
5956                                 uint32_t _ptr_info4;
5957                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
5958                                 if (_ptr_info4) {
5959                                         NDR_PULL_ALLOC(ndr, r->info4);
5960                                 } else {
5961                                         r->info4 = NULL;
5962                                 }
5963                         break; }
5964
5965                         default:
5966                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5967                 }
5968         }
5969         if (ndr_flags & NDR_BUFFERS) {
5970                 switch (level) {
5971                         case 1:
5972                                 if (r->info1) {
5973                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5974                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5975                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5976                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5977                                 }
5978                         break;
5979
5980                         case 2:
5981                                 if (r->info2) {
5982                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5983                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5984                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5985                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5986                                 }
5987                         break;
5988
5989                         case 3:
5990                                 if (r->info3) {
5991                                         _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5992                                         NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5993                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5994                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5995                                 }
5996                         break;
5997
5998                         case 4:
5999                                 if (r->info4) {
6000                                         _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6001                                         NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6002                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6003                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
6004                                 }
6005                         break;
6006
6007                         default:
6008                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6009                 }
6010         }
6011         return NDR_ERR_SUCCESS;
6012 }
6013
6014 _PUBLIC_ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_QUERY_INFORMATION *r)
6015 {
6016         int level;
6017         level = ndr_print_get_switch_value(ndr, r);
6018         ndr_print_union(ndr, name, level, "netr_CONTROL_QUERY_INFORMATION");
6019         switch (level) {
6020                 case 1:
6021                         ndr_print_ptr(ndr, "info1", r->info1);
6022                         ndr->depth++;
6023                         if (r->info1) {
6024                                 ndr_print_netr_NETLOGON_INFO_1(ndr, "info1", r->info1);
6025                         }
6026                         ndr->depth--;
6027                 break;
6028
6029                 case 2:
6030                         ndr_print_ptr(ndr, "info2", r->info2);
6031                         ndr->depth++;
6032                         if (r->info2) {
6033                                 ndr_print_netr_NETLOGON_INFO_2(ndr, "info2", r->info2);
6034                         }
6035                         ndr->depth--;
6036                 break;
6037
6038                 case 3:
6039                         ndr_print_ptr(ndr, "info3", r->info3);
6040                         ndr->depth++;
6041                         if (r->info3) {
6042                                 ndr_print_netr_NETLOGON_INFO_3(ndr, "info3", r->info3);
6043                         }
6044                         ndr->depth--;
6045                 break;
6046
6047                 case 4:
6048                         ndr_print_ptr(ndr, "info4", r->info4);
6049                         ndr->depth++;
6050                         if (r->info4) {
6051                                 ndr_print_netr_NETLOGON_INFO_4(ndr, "info4", r->info4);
6052                         }
6053                         ndr->depth--;
6054                 break;
6055
6056                 default:
6057                         ndr_print_bad_level(ndr, name, level);
6058         }
6059 }
6060
6061 static enum ndr_err_code ndr_push_netr_LogonControlCode(struct ndr_push *ndr, int ndr_flags, enum netr_LogonControlCode r)
6062 {
6063         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6064         return NDR_ERR_SUCCESS;
6065 }
6066
6067 static enum ndr_err_code ndr_pull_netr_LogonControlCode(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonControlCode *r)
6068 {
6069         uint32_t v;
6070         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6071         *r = v;
6072         return NDR_ERR_SUCCESS;
6073 }
6074
6075 _PUBLIC_ void ndr_print_netr_LogonControlCode(struct ndr_print *ndr, const char *name, enum netr_LogonControlCode r)
6076 {
6077         const char *val = NULL;
6078
6079         switch (r) {
6080                 case NETLOGON_CONTROL_QUERY: val = "NETLOGON_CONTROL_QUERY"; break;
6081                 case NETLOGON_CONTROL_REPLICATE: val = "NETLOGON_CONTROL_REPLICATE"; break;
6082                 case NETLOGON_CONTROL_SYNCHRONIZE: val = "NETLOGON_CONTROL_SYNCHRONIZE"; break;
6083                 case NETLOGON_CONTROL_PDC_REPLICATE: val = "NETLOGON_CONTROL_PDC_REPLICATE"; break;
6084                 case NETLOGON_CONTROL_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break;
6085                 case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break;
6086                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
6087                 case NETLOGON_CONTROL_FIND_USER: val = "NETLOGON_CONTROL_FIND_USER"; break;
6088                 case NETLOGON_CONTROL_CHANGE_PASSWORD: val = "NETLOGON_CONTROL_CHANGE_PASSWORD"; break;
6089                 case NETLOGON_CONTROL_TC_VERIFY: val = "NETLOGON_CONTROL_TC_VERIFY"; break;
6090                 case NETLOGON_CONTROL_FORCE_DNS_REG: val = "NETLOGON_CONTROL_FORCE_DNS_REG"; break;
6091                 case NETLOGON_CONTROL_QUERY_DNS_REG: val = "NETLOGON_CONTROL_QUERY_DNS_REG"; break;
6092                 case NETLOGON_CONTROL_BACKUP_CHANGE_LOG: val = "NETLOGON_CONTROL_BACKUP_CHANGE_LOG"; break;
6093                 case NETLOGON_CONTROL_TRUNCATE_LOG: val = "NETLOGON_CONTROL_TRUNCATE_LOG"; break;
6094                 case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break;
6095                 case NETLOGON_CONTROL_BREAKPOINT: val = "NETLOGON_CONTROL_BREAKPOINT"; break;
6096         }
6097         ndr_print_enum(ndr, name, "ENUM", val, r);
6098 }
6099
6100 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)
6101 {
6102         if (ndr_flags & NDR_SCALARS) {
6103                 int level = ndr_push_get_switch_value(ndr, r);
6104                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6105                 switch (level) {
6106                         case NETLOGON_CONTROL_REDISCOVER: {
6107                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6108                         break; }
6109
6110                         case NETLOGON_CONTROL_TC_QUERY: {
6111                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6112                         break; }
6113
6114                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
6115                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6116                         break; }
6117
6118                         case NETLOGON_CONTROL_CHANGE_PASSWORD: {
6119                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6120                         break; }
6121
6122                         case NETLOGON_CONTROL_TC_VERIFY: {
6123                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
6124                         break; }
6125
6126                         case NETLOGON_CONTROL_FIND_USER: {
6127                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
6128                         break; }
6129
6130                         case NETLOGON_CONTROL_SET_DBFLAG: {
6131                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level));
6132                         break; }
6133
6134                         default:
6135                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6136                 }
6137         }
6138         if (ndr_flags & NDR_BUFFERS) {
6139                 int level = ndr_push_get_switch_value(ndr, r);
6140                 switch (level) {
6141                         case NETLOGON_CONTROL_REDISCOVER:
6142                                 if (r->domain) {
6143                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6144                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6145                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6146                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6147                                 }
6148                         break;
6149
6150                         case NETLOGON_CONTROL_TC_QUERY:
6151                                 if (r->domain) {
6152                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6153                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6154                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6155                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6156                                 }
6157                         break;
6158
6159                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6160                                 if (r->domain) {
6161                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6162                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6163                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6164                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6165                                 }
6166                         break;
6167
6168                         case NETLOGON_CONTROL_CHANGE_PASSWORD:
6169                                 if (r->domain) {
6170                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6171                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6172                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6173                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6174                                 }
6175                         break;
6176
6177                         case NETLOGON_CONTROL_TC_VERIFY:
6178                                 if (r->domain) {
6179                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6180                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6181                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6182                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6183                                 }
6184                         break;
6185
6186                         case NETLOGON_CONTROL_FIND_USER:
6187                                 if (r->user) {
6188                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
6189                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6190                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
6191                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6192                                 }
6193                         break;
6194
6195                         case NETLOGON_CONTROL_SET_DBFLAG:
6196                         break;
6197
6198                         default:
6199                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6200                 }
6201         }
6202         return NDR_ERR_SUCCESS;
6203 }
6204
6205 static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r)
6206 {
6207         int level;
6208         uint32_t _level;
6209         TALLOC_CTX *_mem_save_domain_0;
6210         TALLOC_CTX *_mem_save_user_0;
6211         level = ndr_pull_get_switch_value(ndr, r);
6212         if (ndr_flags & NDR_SCALARS) {
6213                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6214                 if (_level != level) {
6215                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6216                 }
6217                 switch (level) {
6218                         case NETLOGON_CONTROL_REDISCOVER: {
6219                                 uint32_t _ptr_domain;
6220                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6221                                 if (_ptr_domain) {
6222                                         NDR_PULL_ALLOC(ndr, r->domain);
6223                                 } else {
6224                                         r->domain = NULL;
6225                                 }
6226                         break; }
6227
6228                         case NETLOGON_CONTROL_TC_QUERY: {
6229                                 uint32_t _ptr_domain;
6230                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6231                                 if (_ptr_domain) {
6232                                         NDR_PULL_ALLOC(ndr, r->domain);
6233                                 } else {
6234                                         r->domain = NULL;
6235                                 }
6236                         break; }
6237
6238                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
6239                                 uint32_t _ptr_domain;
6240                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6241                                 if (_ptr_domain) {
6242                                         NDR_PULL_ALLOC(ndr, r->domain);
6243                                 } else {
6244                                         r->domain = NULL;
6245                                 }
6246                         break; }
6247
6248                         case NETLOGON_CONTROL_CHANGE_PASSWORD: {
6249                                 uint32_t _ptr_domain;
6250                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6251                                 if (_ptr_domain) {
6252                                         NDR_PULL_ALLOC(ndr, r->domain);
6253                                 } else {
6254                                         r->domain = NULL;
6255                                 }
6256                         break; }
6257
6258                         case NETLOGON_CONTROL_TC_VERIFY: {
6259                                 uint32_t _ptr_domain;
6260                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6261                                 if (_ptr_domain) {
6262                                         NDR_PULL_ALLOC(ndr, r->domain);
6263                                 } else {
6264                                         r->domain = NULL;
6265                                 }
6266                         break; }
6267
6268                         case NETLOGON_CONTROL_FIND_USER: {
6269                                 uint32_t _ptr_user;
6270                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
6271                                 if (_ptr_user) {
6272                                         NDR_PULL_ALLOC(ndr, r->user);
6273                                 } else {
6274                                         r->user = NULL;
6275                                 }
6276                         break; }
6277
6278                         case NETLOGON_CONTROL_SET_DBFLAG: {
6279                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level));
6280                         break; }
6281
6282                         default:
6283                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6284                 }
6285         }
6286         if (ndr_flags & NDR_BUFFERS) {
6287                 switch (level) {
6288                         case NETLOGON_CONTROL_REDISCOVER:
6289                                 if (r->domain) {
6290                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6291                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6292                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6293                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6294                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6295                                                 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));
6296                                         }
6297                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6298                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6299                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6300                                 }
6301                         break;
6302
6303                         case NETLOGON_CONTROL_TC_QUERY:
6304                                 if (r->domain) {
6305                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6306                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6307                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6308                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6309                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6310                                                 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));
6311                                         }
6312                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6313                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6314                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6315                                 }
6316                         break;
6317
6318                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6319                                 if (r->domain) {
6320                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6321                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6322                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6323                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6324                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6325                                                 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));
6326                                         }
6327                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6328                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6329                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6330                                 }
6331                         break;
6332
6333                         case NETLOGON_CONTROL_CHANGE_PASSWORD:
6334                                 if (r->domain) {
6335                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6336                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6337                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6338                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6339                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6340                                                 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));
6341                                         }
6342                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6343                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6344                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6345                                 }
6346                         break;
6347
6348                         case NETLOGON_CONTROL_TC_VERIFY:
6349                                 if (r->domain) {
6350                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6351                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6352                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6353                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6354                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6355                                                 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));
6356                                         }
6357                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6358                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6359                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6360                                 }
6361                         break;
6362
6363                         case NETLOGON_CONTROL_FIND_USER:
6364                                 if (r->user) {
6365                                         _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
6366                                         NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
6367                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
6368                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
6369                                         if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
6370                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user));
6371                                         }
6372                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
6373                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
6374                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
6375                                 }
6376                         break;
6377
6378                         case NETLOGON_CONTROL_SET_DBFLAG:
6379                         break;
6380
6381                         default:
6382                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6383                 }
6384         }
6385         return NDR_ERR_SUCCESS;
6386 }
6387
6388 _PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r)
6389 {
6390         int level;
6391         level = ndr_print_get_switch_value(ndr, r);
6392         ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION");
6393         switch (level) {
6394                 case NETLOGON_CONTROL_REDISCOVER:
6395                         ndr_print_ptr(ndr, "domain", r->domain);
6396                         ndr->depth++;
6397                         if (r->domain) {
6398                                 ndr_print_string(ndr, "domain", r->domain);
6399                         }
6400                         ndr->depth--;
6401                 break;
6402
6403                 case NETLOGON_CONTROL_TC_QUERY:
6404                         ndr_print_ptr(ndr, "domain", r->domain);
6405                         ndr->depth++;
6406                         if (r->domain) {
6407                                 ndr_print_string(ndr, "domain", r->domain);
6408                         }
6409                         ndr->depth--;
6410                 break;
6411
6412                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6413                         ndr_print_ptr(ndr, "domain", r->domain);
6414                         ndr->depth++;
6415                         if (r->domain) {
6416                                 ndr_print_string(ndr, "domain", r->domain);
6417                         }
6418                         ndr->depth--;
6419                 break;
6420
6421                 case NETLOGON_CONTROL_CHANGE_PASSWORD:
6422                         ndr_print_ptr(ndr, "domain", r->domain);
6423                         ndr->depth++;
6424                         if (r->domain) {
6425                                 ndr_print_string(ndr, "domain", r->domain);
6426                         }
6427                         ndr->depth--;
6428                 break;
6429
6430                 case NETLOGON_CONTROL_TC_VERIFY:
6431                         ndr_print_ptr(ndr, "domain", r->domain);
6432                         ndr->depth++;
6433                         if (r->domain) {
6434                                 ndr_print_string(ndr, "domain", r->domain);
6435                         }
6436                         ndr->depth--;
6437                 break;
6438
6439                 case NETLOGON_CONTROL_FIND_USER:
6440                         ndr_print_ptr(ndr, "user", r->user);
6441                         ndr->depth++;
6442                         if (r->user) {
6443                                 ndr_print_string(ndr, "user", r->user);
6444                         }
6445                         ndr->depth--;
6446                 break;
6447
6448                 case NETLOGON_CONTROL_SET_DBFLAG:
6449                         ndr_print_uint32(ndr, "debug_level", r->debug_level);
6450                 break;
6451
6452                 default:
6453                         ndr_print_bad_level(ndr, name, level);
6454         }
6455 }
6456
6457 static enum ndr_err_code ndr_push_netr_NegotiateFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6458 {
6459         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6460         return NDR_ERR_SUCCESS;
6461 }
6462
6463 static enum ndr_err_code ndr_pull_netr_NegotiateFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6464 {
6465         uint32_t v;
6466         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6467         *r = v;
6468         return NDR_ERR_SUCCESS;
6469 }
6470
6471 _PUBLIC_ void ndr_print_netr_NegotiateFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6472 {
6473         ndr_print_uint32(ndr, name, r);
6474         ndr->depth++;
6475         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT, r);
6476         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL, r);
6477         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR, r);
6478         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT, r);
6479         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC, r);
6480         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL, r);
6481         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS, r);
6482         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO, r);
6483         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL, r);
6484         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC, r);
6485         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH, r);
6486         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC, r);
6487         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL, r);
6488         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL, r);
6489         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_STRONG_KEYS", NETLOGON_NEG_STRONG_KEYS, r);
6490         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS, r);
6491         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS, r);
6492         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2, r);
6493         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO, r);
6494         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS, r);
6495         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION, r);
6496         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH, r);
6497         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SUPPORTS_AES_SHA2", NETLOGON_NEG_SUPPORTS_AES_SHA2, r);
6498         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS, r);
6499         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC", NETLOGON_NEG_AUTHENTICATED_RPC, r);
6500         ndr->depth--;
6501 }
6502
6503 static enum ndr_err_code ndr_push_netr_ChangeLogFlags(struct ndr_push *ndr, int ndr_flags, uint16_t r)
6504 {
6505         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
6506         return NDR_ERR_SUCCESS;
6507 }
6508
6509 static enum ndr_err_code ndr_pull_netr_ChangeLogFlags(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
6510 {
6511         uint16_t v;
6512         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
6513         *r = v;
6514         return NDR_ERR_SUCCESS;
6515 }
6516
6517 _PUBLIC_ void ndr_print_netr_ChangeLogFlags(struct ndr_print *ndr, const char *name, uint16_t r)
6518 {
6519         ndr_print_uint16(ndr, name, r);
6520         ndr->depth++;
6521         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED", NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED, r);
6522         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_CHANGED_PASSWORD", NETR_CHANGELOG_CHANGED_PASSWORD, r);
6523         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_SID_INCLUDED", NETR_CHANGELOG_SID_INCLUDED, r);
6524         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_NAME_INCLUDED", NETR_CHANGELOG_NAME_INCLUDED, r);
6525         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_FIRST_PROMOTION_OBJ", NETR_CHANGELOG_FIRST_PROMOTION_OBJ, r);
6526         ndr->depth--;
6527 }
6528
6529 static enum ndr_err_code ndr_push_netr_ChangeLogObject(struct ndr_push *ndr, int ndr_flags, const union netr_ChangeLogObject *r)
6530 {
6531         if (ndr_flags & NDR_SCALARS) {
6532                 int level = ndr_push_get_switch_value(ndr, r);
6533                 switch (level) {
6534                         case NETR_CHANGELOG_SID_INCLUDED: {
6535                                 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->object_sid));
6536                         break; }
6537
6538                         case NETR_CHANGELOG_NAME_INCLUDED: {
6539                                 {
6540                                         uint32_t _flags_save_string = ndr->flags;
6541                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6542                                         NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->object_name));
6543                                         ndr->flags = _flags_save_string;
6544                                 }
6545                         break; }
6546
6547                         default: {
6548                         break; }
6549
6550                 }
6551         }
6552         if (ndr_flags & NDR_BUFFERS) {
6553                 int level = ndr_push_get_switch_value(ndr, r);
6554                 switch (level) {
6555                         case NETR_CHANGELOG_SID_INCLUDED:
6556                         break;
6557
6558                         case NETR_CHANGELOG_NAME_INCLUDED:
6559                         break;
6560
6561                         default:
6562                         break;
6563
6564                 }
6565         }
6566         return NDR_ERR_SUCCESS;
6567 }
6568
6569 static enum ndr_err_code ndr_pull_netr_ChangeLogObject(struct ndr_pull *ndr, int ndr_flags, union netr_ChangeLogObject *r)
6570 {
6571         int level;
6572         level = ndr_pull_get_switch_value(ndr, r);
6573         if (ndr_flags & NDR_SCALARS) {
6574                 switch (level) {
6575                         case NETR_CHANGELOG_SID_INCLUDED: {
6576                                 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->object_sid));
6577                         break; }
6578
6579                         case NETR_CHANGELOG_NAME_INCLUDED: {
6580                                 {
6581                                         uint32_t _flags_save_string = ndr->flags;
6582                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6583                                         NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->object_name));
6584                                         ndr->flags = _flags_save_string;
6585                                 }
6586                         break; }
6587
6588                         default: {
6589                         break; }
6590
6591                 }
6592         }
6593         if (ndr_flags & NDR_BUFFERS) {
6594                 switch (level) {
6595                         case NETR_CHANGELOG_SID_INCLUDED:
6596                         break;
6597
6598                         case NETR_CHANGELOG_NAME_INCLUDED:
6599                         break;
6600
6601                         default:
6602                         break;
6603
6604                 }
6605         }
6606         return NDR_ERR_SUCCESS;
6607 }
6608
6609 _PUBLIC_ void ndr_print_netr_ChangeLogObject(struct ndr_print *ndr, const char *name, const union netr_ChangeLogObject *r)
6610 {
6611         int level;
6612         level = ndr_print_get_switch_value(ndr, r);
6613         ndr_print_union(ndr, name, level, "netr_ChangeLogObject");
6614         switch (level) {
6615                 case NETR_CHANGELOG_SID_INCLUDED:
6616                         ndr_print_dom_sid(ndr, "object_sid", &r->object_sid);
6617                 break;
6618
6619                 case NETR_CHANGELOG_NAME_INCLUDED:
6620                         ndr_print_string(ndr, "object_name", r->object_name);
6621                 break;
6622
6623                 default:
6624                 break;
6625
6626         }
6627 }
6628
6629 _PUBLIC_ enum ndr_err_code ndr_push_netr_ChangeLogEntry(struct ndr_push *ndr, int ndr_flags, const struct netr_ChangeLogEntry *r)
6630 {
6631         if (ndr_flags & NDR_SCALARS) {
6632                 NDR_CHECK(ndr_push_align(ndr, 4));
6633                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number1));
6634                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number2));
6635                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_rid));
6636                 NDR_CHECK(ndr_push_netr_ChangeLogFlags(ndr, NDR_SCALARS, r->flags));
6637                 NDR_CHECK(ndr_push_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, r->db_index));
6638                 NDR_CHECK(ndr_push_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, r->delta_type));
6639                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
6640                 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_SCALARS, &r->object));
6641         }
6642         if (ndr_flags & NDR_BUFFERS) {
6643                 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_BUFFERS, &r->object));
6644         }
6645         return NDR_ERR_SUCCESS;
6646 }
6647
6648 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ChangeLogEntry(struct ndr_pull *ndr, int ndr_flags, struct netr_ChangeLogEntry *r)
6649 {
6650         if (ndr_flags & NDR_SCALARS) {
6651                 NDR_CHECK(ndr_pull_align(ndr, 4));
6652                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number1));
6653                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number2));
6654                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_rid));
6655                 NDR_CHECK(ndr_pull_netr_ChangeLogFlags(ndr, NDR_SCALARS, &r->flags));
6656                 NDR_CHECK(ndr_pull_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, &r->db_index));
6657                 NDR_CHECK(ndr_pull_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, &r->delta_type));
6658                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
6659                 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_SCALARS, &r->object));
6660         }
6661         if (ndr_flags & NDR_BUFFERS) {
6662                 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_BUFFERS, &r->object));
6663         }
6664         return NDR_ERR_SUCCESS;
6665 }
6666
6667 _PUBLIC_ void ndr_print_netr_ChangeLogEntry(struct ndr_print *ndr, const char *name, const struct netr_ChangeLogEntry *r)
6668 {
6669         ndr_print_struct(ndr, name, "netr_ChangeLogEntry");
6670         ndr->depth++;
6671         ndr_print_uint32(ndr, "serial_number1", r->serial_number1);
6672         ndr_print_uint32(ndr, "serial_number2", r->serial_number2);
6673         ndr_print_uint32(ndr, "object_rid", r->object_rid);
6674         ndr_print_netr_ChangeLogFlags(ndr, "flags", r->flags);
6675         ndr_print_netr_SamDatabaseID8Bit(ndr, "db_index", r->db_index);
6676         ndr_print_netr_DeltaEnum8Bit(ndr, "delta_type", r->delta_type);
6677         ndr_print_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED));
6678         ndr_print_netr_ChangeLogObject(ndr, "object", &r->object);
6679         ndr->depth--;
6680 }
6681
6682 _PUBLIC_ size_t ndr_size_netr_ChangeLogEntry(const struct netr_ChangeLogEntry *r, struct smb_iconv_convenience *ic, int flags)
6683 {
6684         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_netr_ChangeLogEntry, ic);
6685 }
6686
6687 static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
6688 {
6689         if (ndr_flags & NDR_SCALARS) {
6690                 NDR_CHECK(ndr_push_align(ndr, 4));
6691                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6692                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6693         }
6694         if (ndr_flags & NDR_BUFFERS) {
6695                 if (r->data) {
6696                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6697                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
6698                 }
6699         }
6700         return NDR_ERR_SUCCESS;
6701 }
6702
6703 static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
6704 {
6705         uint32_t _ptr_data;
6706         TALLOC_CTX *_mem_save_data_0;
6707         if (ndr_flags & NDR_SCALARS) {
6708                 NDR_CHECK(ndr_pull_align(ndr, 4));
6709                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
6710                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6711                 if (_ptr_data) {
6712                         NDR_PULL_ALLOC(ndr, r->data);
6713                 } else {
6714                         r->data = NULL;
6715                 }
6716         }
6717         if (ndr_flags & NDR_BUFFERS) {
6718                 if (r->data) {
6719                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6720                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6721                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6722                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6723                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
6724                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6725                 }
6726                 if (r->data) {
6727                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
6728                 }
6729         }
6730         return NDR_ERR_SUCCESS;
6731 }
6732
6733 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
6734 {
6735         ndr_print_struct(ndr, name, "netr_Blob");
6736         ndr->depth++;
6737         ndr_print_uint32(ndr, "length", r->length);
6738         ndr_print_ptr(ndr, "data", r->data);
6739         ndr->depth++;
6740         if (r->data) {
6741                 ndr_print_array_uint8(ndr, "data", r->data, r->length);
6742         }
6743         ndr->depth--;
6744         ndr->depth--;
6745 }
6746
6747 static enum ndr_err_code ndr_push_netr_DsRGetDCName_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6748 {
6749         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6750         return NDR_ERR_SUCCESS;
6751 }
6752
6753 static enum ndr_err_code ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6754 {
6755         uint32_t v;
6756         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6757         *r = v;
6758         return NDR_ERR_SUCCESS;
6759 }
6760
6761 _PUBLIC_ void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char *name, uint32_t r)
6762 {
6763         ndr_print_uint32(ndr, name, r);
6764         ndr->depth++;
6765         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY, r);
6766         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED, r);
6767         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED, r);
6768         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED, r);
6769         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED, r);
6770         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY, r);
6771         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED, r);
6772         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED, r);
6773         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED, r);
6774         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED, r);
6775         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED, r);
6776         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF, r);
6777         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED, r);
6778         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME, r);
6779         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME, r);
6780         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE, r);
6781         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED, r);
6782         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME, r);
6783         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME, r);
6784         ndr->depth--;
6785 }
6786
6787 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType r)
6788 {
6789         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6790         return NDR_ERR_SUCCESS;
6791 }
6792
6793 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType *r)
6794 {
6795         uint32_t v;
6796         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6797         *r = v;
6798         return NDR_ERR_SUCCESS;
6799 }
6800
6801 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const char *name, enum netr_DsRGetDCNameInfo_AddressType r)
6802 {
6803         const char *val = NULL;
6804
6805         switch (r) {
6806                 case DS_ADDRESS_TYPE_INET: val = "DS_ADDRESS_TYPE_INET"; break;
6807                 case DS_ADDRESS_TYPE_NETBIOS: val = "DS_ADDRESS_TYPE_NETBIOS"; break;
6808         }
6809         ndr_print_enum(ndr, name, "ENUM", val, r);
6810 }
6811
6812 static enum ndr_err_code ndr_push_netr_DsR_DcFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6813 {
6814         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6815         return NDR_ERR_SUCCESS;
6816 }
6817
6818 static enum ndr_err_code ndr_pull_netr_DsR_DcFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6819 {
6820         uint32_t v;
6821         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6822         *r = v;
6823         return NDR_ERR_SUCCESS;
6824 }
6825
6826 _PUBLIC_ void ndr_print_netr_DsR_DcFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6827 {
6828         ndr_print_uint32(ndr, name, r);
6829         ndr->depth++;
6830         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC, r);
6831         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC, r);
6832         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP, r);
6833         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS, r);
6834         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC, r);
6835         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV, r);
6836         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST, r);
6837         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE, r);
6838         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV, r);
6839         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC, r);
6840         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6, r);
6841         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6, r);
6842         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER, r);
6843         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN, r);
6844         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST, r);
6845         ndr->depth--;
6846 }
6847
6848 _PUBLIC_ enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
6849 {
6850         if (ndr_flags & NDR_SCALARS) {
6851                 NDR_CHECK(ndr_push_align(ndr, 4));
6852                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
6853                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
6854                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, r->dc_address_type));
6855                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6856                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6857                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
6858                 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr, NDR_SCALARS, r->dc_flags));
6859                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
6860                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
6861         }
6862         if (ndr_flags & NDR_BUFFERS) {
6863                 if (r->dc_unc) {
6864                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6865                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6866                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6867                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6868                 }
6869                 if (r->dc_address) {
6870                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6871                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6872                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6873                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6874                 }
6875                 if (r->domain_name) {
6876                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6877                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6878                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6879                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6880                 }
6881                 if (r->forest_name) {
6882                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6883                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6884                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6885                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6886                 }
6887                 if (r->dc_site_name) {
6888                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6889                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6890                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6891                         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));
6892                 }
6893                 if (r->client_site_name) {
6894                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6895                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6896                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6897                         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));
6898                 }
6899         }
6900         return NDR_ERR_SUCCESS;
6901 }
6902
6903 _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
6904 {
6905         uint32_t _ptr_dc_unc;
6906         TALLOC_CTX *_mem_save_dc_unc_0;
6907         uint32_t _ptr_dc_address;
6908         TALLOC_CTX *_mem_save_dc_address_0;
6909         uint32_t _ptr_domain_name;
6910         TALLOC_CTX *_mem_save_domain_name_0;
6911         uint32_t _ptr_forest_name;
6912         TALLOC_CTX *_mem_save_forest_name_0;
6913         uint32_t _ptr_dc_site_name;
6914         TALLOC_CTX *_mem_save_dc_site_name_0;
6915         uint32_t _ptr_client_site_name;
6916         TALLOC_CTX *_mem_save_client_site_name_0;
6917         if (ndr_flags & NDR_SCALARS) {
6918                 NDR_CHECK(ndr_pull_align(ndr, 4));
6919                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6920                 if (_ptr_dc_unc) {
6921                         NDR_PULL_ALLOC(ndr, r->dc_unc);
6922                 } else {
6923                         r->dc_unc = NULL;
6924                 }
6925                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6926                 if (_ptr_dc_address) {
6927                         NDR_PULL_ALLOC(ndr, r->dc_address);
6928                 } else {
6929                         r->dc_address = NULL;
6930                 }
6931                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, &r->dc_address_type));
6932                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6933                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6934                 if (_ptr_domain_name) {
6935                         NDR_PULL_ALLOC(ndr, r->domain_name);
6936                 } else {
6937                         r->domain_name = NULL;
6938                 }
6939                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
6940                 if (_ptr_forest_name) {
6941                         NDR_PULL_ALLOC(ndr, r->forest_name);
6942                 } else {
6943                         r->forest_name = NULL;
6944                 }
6945                 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr, NDR_SCALARS, &r->dc_flags));
6946                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
6947                 if (_ptr_dc_site_name) {
6948                         NDR_PULL_ALLOC(ndr, r->dc_site_name);
6949                 } else {
6950                         r->dc_site_name = NULL;
6951                 }
6952                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
6953                 if (_ptr_client_site_name) {
6954                         NDR_PULL_ALLOC(ndr, r->client_site_name);
6955                 } else {
6956                         r->client_site_name = NULL;
6957                 }
6958         }
6959         if (ndr_flags & NDR_BUFFERS) {
6960                 if (r->dc_unc) {
6961                         _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6962                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
6963                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
6964                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
6965                         if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
6966                                 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));
6967                         }
6968                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
6969                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
6970                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
6971                 }
6972                 if (r->dc_address) {
6973                         _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
6974                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
6975                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
6976                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
6977                         if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
6978                                 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));
6979                         }
6980                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
6981                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
6982                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
6983                 }
6984                 if (r->domain_name) {
6985                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6986                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6987                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6988                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6989                         if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
6990                                 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));
6991                         }
6992                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
6993                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
6994                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6995                 }
6996                 if (r->forest_name) {
6997                         _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6998                         NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
6999                         NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
7000                         NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
7001                         if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
7002                                 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));
7003                         }
7004                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
7005                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
7006                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
7007                 }
7008                 if (r->dc_site_name) {
7009                         _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7010                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
7011                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
7012                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
7013                         if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
7014                                 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));
7015                         }
7016                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
7017                         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));
7018                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
7019                 }
7020                 if (r->client_site_name) {
7021                         _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7022                         NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
7023                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
7024                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
7025                         if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
7026                                 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));
7027                         }
7028                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
7029                         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));
7030                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
7031                 }
7032         }
7033         return NDR_ERR_SUCCESS;
7034 }
7035
7036 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
7037 {
7038         ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
7039         ndr->depth++;
7040         ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
7041         ndr->depth++;
7042         if (r->dc_unc) {
7043                 ndr_print_string(ndr, "dc_unc", r->dc_unc);
7044         }
7045         ndr->depth--;
7046         ndr_print_ptr(ndr, "dc_address", r->dc_address);
7047         ndr->depth++;
7048         if (r->dc_address) {
7049                 ndr_print_string(ndr, "dc_address", r->dc_address);
7050         }
7051         ndr->depth--;
7052         ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr, "dc_address_type", r->dc_address_type);
7053         ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
7054         ndr_print_ptr(ndr, "domain_name", r->domain_name);
7055         ndr->depth++;
7056         if (r->domain_name) {
7057                 ndr_print_string(ndr, "domain_name", r->domain_name);
7058         }
7059         ndr->depth--;
7060         ndr_print_ptr(ndr, "forest_name", r->forest_name);
7061         ndr->depth++;
7062         if (r->forest_name) {
7063                 ndr_print_string(ndr, "forest_name", r->forest_name);
7064         }
7065         ndr->depth--;
7066         ndr_print_netr_DsR_DcFlags(ndr, "dc_flags", r->dc_flags);
7067         ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
7068         ndr->depth++;
7069         if (r->dc_site_name) {
7070                 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
7071         }
7072         ndr->depth--;
7073         ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
7074         ndr->depth++;
7075         if (r->client_site_name) {
7076                 ndr_print_string(ndr, "client_site_name", r->client_site_name);
7077         }
7078         ndr->depth--;
7079         ndr->depth--;
7080 }
7081
7082 static enum ndr_err_code ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7083 {
7084         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7085         return NDR_ERR_SUCCESS;
7086 }
7087
7088 static enum ndr_err_code ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7089 {
7090         uint32_t v;
7091         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7092         *r = v;
7093         return NDR_ERR_SUCCESS;
7094 }
7095
7096 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7097 {
7098         ndr_print_uint32(ndr, name, r);
7099         ndr->depth++;
7100         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
7101         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
7102         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
7103         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
7104         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
7105         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
7106         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_MIT_KRB5", NETR_TRUST_FLAG_MIT_KRB5, r);
7107         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_AES", NETR_TRUST_FLAG_AES, r);
7108         ndr->depth--;
7109 }
7110
7111 static enum ndr_err_code ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r)
7112 {
7113         uint32_t cntr_unknown7_0;
7114         if (ndr_flags & NDR_SCALARS) {
7115                 NDR_CHECK(ndr_push_align(ndr, 4));
7116                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob));
7117                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain));
7118                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site));
7119                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1));
7120                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2));
7121                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3));
7122                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4));
7123                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->blob2));
7124                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product));
7125                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
7126                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
7127                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
7128                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0]));
7129                 }
7130         }
7131         if (ndr_flags & NDR_BUFFERS) {
7132                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
7133                 if (r->workstation_domain) {
7134                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
7135                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7136                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
7137                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7138                 }
7139                 if (r->workstation_site) {
7140                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
7141                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7142                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
7143                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7144                 }
7145                 if (r->unknown1) {
7146                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
7147                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7148                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
7149                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7150                 }
7151                 if (r->unknown2) {
7152                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
7153                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7154                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
7155                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7156                 }
7157                 if (r->unknown3) {
7158                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
7159                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7160                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
7161                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7162                 }
7163                 if (r->unknown4) {
7164                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
7165                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7166                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
7167                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7168                 }
7169                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
7170                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product));
7171                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
7172                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
7173         }
7174         return NDR_ERR_SUCCESS;
7175 }
7176
7177 static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r)
7178 {
7179         uint32_t _ptr_workstation_domain;
7180         TALLOC_CTX *_mem_save_workstation_domain_0;
7181         uint32_t _ptr_workstation_site;
7182         TALLOC_CTX *_mem_save_workstation_site_0;
7183         uint32_t _ptr_unknown1;
7184         TALLOC_CTX *_mem_save_unknown1_0;
7185         uint32_t _ptr_unknown2;
7186         TALLOC_CTX *_mem_save_unknown2_0;
7187         uint32_t _ptr_unknown3;
7188         TALLOC_CTX *_mem_save_unknown3_0;
7189         uint32_t _ptr_unknown4;
7190         TALLOC_CTX *_mem_save_unknown4_0;
7191         uint32_t cntr_unknown7_0;
7192         if (ndr_flags & NDR_SCALARS) {
7193                 NDR_CHECK(ndr_pull_align(ndr, 4));
7194                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob));
7195                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain));
7196                 if (_ptr_workstation_domain) {
7197                         NDR_PULL_ALLOC(ndr, r->workstation_domain);
7198                 } else {
7199                         r->workstation_domain = NULL;
7200                 }
7201                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site));
7202                 if (_ptr_workstation_site) {
7203                         NDR_PULL_ALLOC(ndr, r->workstation_site);
7204                 } else {
7205                         r->workstation_site = NULL;
7206                 }
7207                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1));
7208                 if (_ptr_unknown1) {
7209                         NDR_PULL_ALLOC(ndr, r->unknown1);
7210                 } else {
7211                         r->unknown1 = NULL;
7212                 }
7213                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2));
7214                 if (_ptr_unknown2) {
7215                         NDR_PULL_ALLOC(ndr, r->unknown2);
7216                 } else {
7217                         r->unknown2 = NULL;
7218                 }
7219                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3));
7220                 if (_ptr_unknown3) {
7221                         NDR_PULL_ALLOC(ndr, r->unknown3);
7222                 } else {
7223                         r->unknown3 = NULL;
7224                 }
7225                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
7226                 if (_ptr_unknown4) {
7227                         NDR_PULL_ALLOC(ndr, r->unknown4);
7228                 } else {
7229                         r->unknown4 = NULL;
7230                 }
7231                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->blob2));
7232                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product));
7233                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
7234                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
7235                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
7236                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0]));
7237                 }
7238         }
7239         if (ndr_flags & NDR_BUFFERS) {
7240                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
7241                 if (r->workstation_domain) {
7242                         _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
7243                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0);
7244                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain));
7245                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain));
7246                         if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) {
7247                                 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));
7248                         }
7249                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t)));
7250                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16));
7251                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0);
7252                 }
7253                 if (r->workstation_site) {
7254                         _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
7255                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0);
7256                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site));
7257                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site));
7258                         if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) {
7259                                 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));
7260                         }
7261                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t)));
7262                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16));
7263                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0);
7264                 }
7265                 if (r->unknown1) {
7266                         _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7267                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0);
7268                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1));
7269                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1));
7270                         if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) {
7271                                 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));
7272                         }
7273                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t)));
7274                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16));
7275                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0);
7276                 }
7277                 if (r->unknown2) {
7278                         _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7279                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0);
7280                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2));
7281                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2));
7282                         if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) {
7283                                 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));
7284                         }
7285                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t)));
7286                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16));
7287                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0);
7288                 }
7289                 if (r->unknown3) {
7290                         _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7291                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0);
7292                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3));
7293                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3));
7294                         if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) {
7295                                 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));
7296                         }
7297                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t)));
7298                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16));
7299                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0);
7300                 }
7301                 if (r->unknown4) {
7302                         _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7303                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0);
7304                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4));
7305                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4));
7306                         if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) {
7307                                 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));
7308                         }
7309                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t)));
7310                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16));
7311                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0);
7312                 }
7313                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
7314                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product));
7315                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
7316                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
7317         }
7318         return NDR_ERR_SUCCESS;
7319 }
7320
7321 _PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r)
7322 {
7323         uint32_t cntr_unknown7_0;
7324         ndr_print_struct(ndr, name, "netr_DomainQuery1");
7325         ndr->depth++;
7326         ndr_print_netr_Blob(ndr, "blob", &r->blob);
7327         ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain);
7328         ndr->depth++;
7329         if (r->workstation_domain) {
7330                 ndr_print_string(ndr, "workstation_domain", r->workstation_domain);
7331         }
7332         ndr->depth--;
7333         ndr_print_ptr(ndr, "workstation_site", r->workstation_site);
7334         ndr->depth++;
7335         if (r->workstation_site) {
7336                 ndr_print_string(ndr, "workstation_site", r->workstation_site);
7337         }
7338         ndr->depth--;
7339         ndr_print_ptr(ndr, "unknown1", r->unknown1);
7340         ndr->depth++;
7341         if (r->unknown1) {
7342                 ndr_print_string(ndr, "unknown1", r->unknown1);
7343         }
7344         ndr->depth--;
7345         ndr_print_ptr(ndr, "unknown2", r->unknown2);
7346         ndr->depth++;
7347         if (r->unknown2) {
7348                 ndr_print_string(ndr, "unknown2", r->unknown2);
7349         }
7350         ndr->depth--;
7351         ndr_print_ptr(ndr, "unknown3", r->unknown3);
7352         ndr->depth++;
7353         if (r->unknown3) {
7354                 ndr_print_string(ndr, "unknown3", r->unknown3);
7355         }
7356         ndr->depth--;
7357         ndr_print_ptr(ndr, "unknown4", r->unknown4);
7358         ndr->depth++;
7359         if (r->unknown4) {
7360                 ndr_print_string(ndr, "unknown4", r->unknown4);
7361         }
7362         ndr->depth--;
7363         ndr_print_lsa_BinaryString(ndr, "blob2", &r->blob2);
7364         ndr_print_lsa_String(ndr, "product", &r->product);
7365         ndr_print_lsa_String(ndr, "unknown5", &r->unknown5);
7366         ndr_print_lsa_String(ndr, "unknown6", &r->unknown6);
7367         ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", (int)4);
7368         ndr->depth++;
7369         for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) {
7370                 char *idx_0=NULL;
7371                 if (asprintf(&idx_0, "[%d]", cntr_unknown7_0) != -1) {
7372                         ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]);
7373                         free(idx_0);
7374                 }
7375         }
7376         ndr->depth--;
7377         ndr->depth--;
7378 }
7379
7380 static enum ndr_err_code ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r)
7381 {
7382         if (ndr_flags & NDR_SCALARS) {
7383                 int level = ndr_push_get_switch_value(ndr, r);
7384                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7385                 switch (level) {
7386                         case 1: {
7387                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
7388                         break; }
7389
7390                         case 2: {
7391                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
7392                         break; }
7393
7394                         default:
7395                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7396                 }
7397         }
7398         if (ndr_flags & NDR_BUFFERS) {
7399                 int level = ndr_push_get_switch_value(ndr, r);
7400                 switch (level) {
7401                         case 1:
7402                                 if (r->query1) {
7403                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7404                                 }
7405                         break;
7406
7407                         case 2:
7408                                 if (r->query1) {
7409                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7410                                 }
7411                         break;
7412
7413                         default:
7414                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7415                 }
7416         }
7417         return NDR_ERR_SUCCESS;
7418 }
7419
7420 static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r)
7421 {
7422         int level;
7423         uint32_t _level;
7424         TALLOC_CTX *_mem_save_query1_0;
7425         level = ndr_pull_get_switch_value(ndr, r);
7426         if (ndr_flags & NDR_SCALARS) {
7427                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7428                 if (_level != level) {
7429                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7430                 }
7431                 switch (level) {
7432                         case 1: {
7433                                 uint32_t _ptr_query1;
7434                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
7435                                 if (_ptr_query1) {
7436                                         NDR_PULL_ALLOC(ndr, r->query1);
7437                                 } else {
7438                                         r->query1 = NULL;
7439                                 }
7440                         break; }
7441
7442                         case 2: {
7443                                 uint32_t _ptr_query1;
7444                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
7445                                 if (_ptr_query1) {
7446                                         NDR_PULL_ALLOC(ndr, r->query1);
7447                                 } else {
7448                                         r->query1 = NULL;
7449                                 }
7450                         break; }
7451
7452                         default:
7453                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7454                 }
7455         }
7456         if (ndr_flags & NDR_BUFFERS) {
7457                 switch (level) {
7458                         case 1:
7459                                 if (r->query1) {
7460                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7461                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
7462                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7463                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
7464                                 }
7465                         break;
7466
7467                         case 2:
7468                                 if (r->query1) {
7469                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7470                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
7471                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7472                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
7473                                 }
7474                         break;
7475
7476                         default:
7477                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7478                 }
7479         }
7480         return NDR_ERR_SUCCESS;
7481 }
7482
7483 _PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r)
7484 {
7485         int level;
7486         level = ndr_print_get_switch_value(ndr, r);
7487         ndr_print_union(ndr, name, level, "netr_DomainQuery");
7488         switch (level) {
7489                 case 1:
7490                         ndr_print_ptr(ndr, "query1", r->query1);
7491                         ndr->depth++;
7492                         if (r->query1) {
7493                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
7494                         }
7495                         ndr->depth--;
7496                 break;
7497
7498                 case 2:
7499                         ndr_print_ptr(ndr, "query1", r->query1);
7500                         ndr->depth++;
7501                         if (r->query1) {
7502                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
7503                         }
7504                         ndr->depth--;
7505                 break;
7506
7507                 default:
7508                         ndr_print_bad_level(ndr, name, level);
7509         }
7510 }
7511
7512 static enum ndr_err_code ndr_push_netr_trust_extension(struct ndr_push *ndr, int ndr_flags, const struct netr_trust_extension *r)
7513 {
7514         if (ndr_flags & NDR_SCALARS) {
7515                 NDR_CHECK(ndr_push_align(ndr, 4));
7516                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 8));
7517                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7518                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 8));
7519                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->flags));
7520                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7521                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trust_type));
7522                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trust_attributes));
7523         }
7524         if (ndr_flags & NDR_BUFFERS) {
7525         }
7526         return NDR_ERR_SUCCESS;
7527 }
7528
7529 static enum ndr_err_code ndr_pull_netr_trust_extension(struct ndr_pull *ndr, int ndr_flags, struct netr_trust_extension *r)
7530 {
7531         if (ndr_flags & NDR_SCALARS) {
7532                 NDR_CHECK(ndr_pull_align(ndr, 4));
7533                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7534                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
7535                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7536                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->flags));
7537                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7538                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trust_type));
7539                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trust_attributes));
7540         }
7541         if (ndr_flags & NDR_BUFFERS) {
7542         }
7543         return NDR_ERR_SUCCESS;
7544 }
7545
7546 _PUBLIC_ void ndr_print_netr_trust_extension(struct ndr_print *ndr, const char *name, const struct netr_trust_extension *r)
7547 {
7548         ndr_print_struct(ndr, name, "netr_trust_extension");
7549         ndr->depth++;
7550         ndr_print_uint32(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?8:r->length);
7551         ndr_print_uint32(ndr, "dummy", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->dummy);
7552         ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?8:r->size);
7553         ndr_print_netr_TrustFlags(ndr, "flags", r->flags);
7554         ndr_print_uint32(ndr, "parent_index", r->parent_index);
7555         ndr_print_uint32(ndr, "trust_type", r->trust_type);
7556         ndr_print_uint32(ndr, "trust_attributes", r->trust_attributes);
7557         ndr->depth--;
7558 }
7559
7560 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)
7561 {
7562         if (ndr_flags & NDR_SCALARS) {
7563                 NDR_CHECK(ndr_push_align(ndr, 4));
7564                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
7565                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
7566                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
7567         }
7568         if (ndr_flags & NDR_BUFFERS) {
7569                 if (r->info) {
7570                         NDR_CHECK(ndr_push_netr_trust_extension(ndr, NDR_SCALARS, r->info));
7571                 }
7572         }
7573         return NDR_ERR_SUCCESS;
7574 }
7575
7576 static enum ndr_err_code ndr_pull_netr_trust_extension_container(struct ndr_pull *ndr, int ndr_flags, struct netr_trust_extension_container *r)
7577 {
7578         uint32_t _ptr_info;
7579         TALLOC_CTX *_mem_save_info_0;
7580         if (ndr_flags & NDR_SCALARS) {
7581                 NDR_CHECK(ndr_pull_align(ndr, 4));
7582                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
7583                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
7584                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
7585                 if (_ptr_info) {
7586                         NDR_PULL_ALLOC(ndr, r->info);
7587                 } else {
7588                         r->info = NULL;
7589                 }
7590         }
7591         if (ndr_flags & NDR_BUFFERS) {
7592                 if (r->info) {
7593                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7594                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
7595                         NDR_CHECK(ndr_pull_netr_trust_extension(ndr, NDR_SCALARS, r->info));
7596                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
7597                 }
7598         }
7599         return NDR_ERR_SUCCESS;
7600 }
7601
7602 _PUBLIC_ void ndr_print_netr_trust_extension_container(struct ndr_print *ndr, const char *name, const struct netr_trust_extension_container *r)
7603 {
7604         ndr_print_struct(ndr, name, "netr_trust_extension_container");
7605         ndr->depth++;
7606         ndr_print_uint16(ndr, "length", r->length);
7607         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
7608         ndr_print_ptr(ndr, "info", r->info);
7609         ndr->depth++;
7610         if (r->info) {
7611                 ndr_print_netr_trust_extension(ndr, "info", r->info);
7612         }
7613         ndr->depth--;
7614         ndr->depth--;
7615 }
7616
7617 static enum ndr_err_code ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r)
7618 {
7619         uint32_t cntr_dummystring_0;
7620         uint32_t cntr_dummy_0;
7621         if (ndr_flags & NDR_SCALARS) {
7622                 NDR_CHECK(ndr_push_align(ndr, 4));
7623                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
7624                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
7625                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
7626                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
7627                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
7628                 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr, NDR_SCALARS, &r->trust_extension));
7629                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7630                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0]));
7631                 }
7632                 for (cntr_dummy_0 = 0; cntr_dummy_0 < 4; cntr_dummy_0++) {
7633                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy[cntr_dummy_0]));
7634                 }
7635         }
7636         if (ndr_flags & NDR_BUFFERS) {
7637                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
7638                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
7639                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
7640                 if (r->sid) {
7641                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7642                 }
7643                 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr, NDR_BUFFERS, &r->trust_extension));
7644                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7645                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0]));
7646                 }
7647         }
7648         return NDR_ERR_SUCCESS;
7649 }
7650
7651 static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r)
7652 {
7653         uint32_t _ptr_sid;
7654         TALLOC_CTX *_mem_save_sid_0;
7655         uint32_t cntr_dummystring_0;
7656         uint32_t cntr_dummy_0;
7657         if (ndr_flags & NDR_SCALARS) {
7658                 NDR_CHECK(ndr_pull_align(ndr, 4));
7659                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
7660                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
7661                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
7662                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
7663                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
7664                 if (_ptr_sid) {
7665                         NDR_PULL_ALLOC(ndr, r->sid);
7666                 } else {
7667                         r->sid = NULL;
7668                 }
7669                 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr, NDR_SCALARS, &r->trust_extension));
7670                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7671                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0]));
7672                 }
7673                 for (cntr_dummy_0 = 0; cntr_dummy_0 < 4; cntr_dummy_0++) {
7674                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy[cntr_dummy_0]));
7675                 }
7676         }
7677         if (ndr_flags & NDR_BUFFERS) {
7678                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
7679                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
7680                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
7681                 if (r->sid) {
7682                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7683                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
7684                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7685                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
7686                 }
7687                 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr, NDR_BUFFERS, &r->trust_extension));
7688                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7689                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0]));
7690                 }
7691         }
7692         return NDR_ERR_SUCCESS;
7693 }
7694
7695 _PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r)
7696 {
7697         uint32_t cntr_dummystring_0;
7698         uint32_t cntr_dummy_0;
7699         ndr_print_struct(ndr, name, "netr_DomainTrustInfo");
7700         ndr->depth++;
7701         ndr_print_lsa_String(ndr, "domainname", &r->domainname);
7702         ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname);
7703         ndr_print_lsa_String(ndr, "forest", &r->forest);
7704         ndr_print_GUID(ndr, "guid", &r->guid);
7705         ndr_print_ptr(ndr, "sid", r->sid);
7706         ndr->depth++;
7707         if (r->sid) {
7708                 ndr_print_dom_sid2(ndr, "sid", r->sid);
7709         }
7710         ndr->depth--;
7711         ndr_print_netr_trust_extension_container(ndr, "trust_extension", &r->trust_extension);
7712         ndr->print(ndr, "%s: ARRAY(%d)", "dummystring", (int)3);
7713         ndr->depth++;
7714         for (cntr_dummystring_0=0;cntr_dummystring_0<3;cntr_dummystring_0++) {
7715                 char *idx_0=NULL;
7716                 if (asprintf(&idx_0, "[%d]", cntr_dummystring_0) != -1) {
7717                         ndr_print_lsa_String(ndr, "dummystring", &r->dummystring[cntr_dummystring_0]);
7718                         free(idx_0);
7719                 }
7720         }
7721         ndr->depth--;
7722         ndr->print(ndr, "%s: ARRAY(%d)", "dummy", (int)4);
7723         ndr->depth++;
7724         for (cntr_dummy_0=0;cntr_dummy_0<4;cntr_dummy_0++) {
7725                 char *idx_0=NULL;
7726                 if (asprintf(&idx_0, "[%d]", cntr_dummy_0) != -1) {
7727                         ndr_print_uint32(ndr, "dummy", r->dummy[cntr_dummy_0]);
7728                         free(idx_0);
7729                 }
7730         }
7731         ndr->depth--;
7732         ndr->depth--;
7733 }
7734
7735 static enum ndr_err_code ndr_push_netr_LsaPolicyInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_LsaPolicyInfo *r)
7736 {
7737         if (ndr_flags & NDR_SCALARS) {
7738                 NDR_CHECK(ndr_push_align(ndr, 4));
7739                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->policy_size));
7740                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
7741         }
7742         if (ndr_flags & NDR_BUFFERS) {
7743                 if (r->policy) {
7744                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->policy_size));
7745                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->policy, r->policy_size));
7746                 }
7747         }
7748         return NDR_ERR_SUCCESS;
7749 }
7750
7751 static enum ndr_err_code ndr_pull_netr_LsaPolicyInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_LsaPolicyInfo *r)
7752 {
7753         uint32_t _ptr_policy;
7754         TALLOC_CTX *_mem_save_policy_0;
7755         if (ndr_flags & NDR_SCALARS) {
7756                 NDR_CHECK(ndr_pull_align(ndr, 4));
7757                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->policy_size));
7758                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
7759                 if (_ptr_policy) {
7760                         NDR_PULL_ALLOC(ndr, r->policy);
7761                 } else {
7762                         r->policy = NULL;
7763                 }
7764         }
7765         if (ndr_flags & NDR_BUFFERS) {
7766                 if (r->policy) {
7767                         _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
7768                         NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
7769                         NDR_CHECK(ndr_pull_array_size(ndr, &r->policy));
7770                         NDR_PULL_ALLOC_N(ndr, r->policy, ndr_get_array_size(ndr, &r->policy));
7771                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->policy, ndr_get_array_size(ndr, &r->policy)));
7772                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
7773                 }
7774                 if (r->policy) {
7775                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->policy, r->policy_size));
7776                 }
7777         }
7778         return NDR_ERR_SUCCESS;
7779 }
7780
7781 _PUBLIC_ void ndr_print_netr_LsaPolicyInfo(struct ndr_print *ndr, const char *name, const struct netr_LsaPolicyInfo *r)
7782 {
7783         ndr_print_struct(ndr, name, "netr_LsaPolicyInfo");
7784         ndr->depth++;
7785         ndr_print_uint32(ndr, "policy_size", r->policy_size);
7786         ndr_print_ptr(ndr, "policy", r->policy);
7787         ndr->depth++;
7788         if (r->policy) {
7789                 ndr_print_array_uint8(ndr, "policy", r->policy, r->policy_size);
7790         }
7791         ndr->depth--;
7792         ndr->depth--;
7793 }
7794
7795 _PUBLIC_ enum ndr_err_code ndr_push_netr_WorkstationFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7796 {
7797         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7798         return NDR_ERR_SUCCESS;
7799 }
7800
7801 _PUBLIC_ enum ndr_err_code ndr_pull_netr_WorkstationFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7802 {
7803         uint32_t v;
7804         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7805         *r = v;
7806         return NDR_ERR_SUCCESS;
7807 }
7808
7809 _PUBLIC_ void ndr_print_netr_WorkstationFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7810 {
7811         ndr_print_uint32(ndr, name, r);
7812         ndr->depth++;
7813         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS", NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS, r);
7814         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_SPN_UPDATE", NETR_WS_FLAG_HANDLES_SPN_UPDATE, r);
7815         ndr->depth--;
7816 }
7817
7818 static enum ndr_err_code ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r)
7819 {
7820         uint32_t cntr_trusts_1;
7821         uint32_t cntr_dummystring_0;
7822         uint32_t cntr_dummy_0;
7823         if (ndr_flags & NDR_SCALARS) {
7824                 NDR_CHECK(ndr_push_align(ndr, 4));
7825                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7826                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
7827                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts));
7828                 NDR_CHECK(ndr_push_netr_LsaPolicyInfo(ndr, NDR_SCALARS, &r->lsa_policy));
7829                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dns_hostname));
7830                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7831                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0]));
7832                 }
7833                 NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr, NDR_SCALARS, r->workstation_flags));
7834                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->supported_enc_types));
7835                 for (cntr_dummy_0 = 0; cntr_dummy_0 < 2; cntr_dummy_0++) {
7836                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy[cntr_dummy_0]));
7837                 }
7838         }
7839         if (ndr_flags & NDR_BUFFERS) {
7840                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7841                 if (r->trusts) {
7842                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
7843                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7844                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7845                         }
7846                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7847                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7848                         }
7849                 }
7850                 NDR_CHECK(ndr_push_netr_LsaPolicyInfo(ndr, NDR_BUFFERS, &r->lsa_policy));
7851                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dns_hostname));
7852                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7853                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0]));
7854                 }
7855         }
7856         return NDR_ERR_SUCCESS;
7857 }
7858
7859 static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r)
7860 {
7861         uint32_t _ptr_trusts;
7862         uint32_t cntr_trusts_1;
7863         TALLOC_CTX *_mem_save_trusts_0;
7864         TALLOC_CTX *_mem_save_trusts_1;
7865         uint32_t cntr_dummystring_0;
7866         uint32_t cntr_dummy_0;
7867         if (ndr_flags & NDR_SCALARS) {
7868                 NDR_CHECK(ndr_pull_align(ndr, 4));
7869                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7870                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts));
7871                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts));
7872                 if (_ptr_trusts) {
7873                         NDR_PULL_ALLOC(ndr, r->trusts);
7874                 } else {
7875                         r->trusts = NULL;
7876                 }
7877                 NDR_CHECK(ndr_pull_netr_LsaPolicyInfo(ndr, NDR_SCALARS, &r->lsa_policy));
7878                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dns_hostname));
7879                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7880                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0]));
7881                 }
7882                 NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr, NDR_SCALARS, &r->workstation_flags));
7883                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->supported_enc_types));
7884                 for (cntr_dummy_0 = 0; cntr_dummy_0 < 2; cntr_dummy_0++) {
7885                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy[cntr_dummy_0]));
7886                 }
7887         }
7888         if (ndr_flags & NDR_BUFFERS) {
7889                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7890                 if (r->trusts) {
7891                         _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
7892                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7893                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts));
7894                         NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts));
7895                         _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
7896                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7897                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7898                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7899                         }
7900                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7901                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7902                         }
7903                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
7904                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0);
7905                 }
7906                 NDR_CHECK(ndr_pull_netr_LsaPolicyInfo(ndr, NDR_BUFFERS, &r->lsa_policy));
7907                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dns_hostname));
7908                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7909                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0]));
7910                 }
7911                 if (r->trusts) {
7912                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts));
7913                 }
7914         }
7915         return NDR_ERR_SUCCESS;
7916 }
7917
7918 _PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r)
7919 {
7920         uint32_t cntr_trusts_1;
7921         uint32_t cntr_dummystring_0;
7922         uint32_t cntr_dummy_0;
7923         ndr_print_struct(ndr, name, "netr_DomainInfo1");
7924         ndr->depth++;
7925         ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo);
7926         ndr_print_uint32(ndr, "num_trusts", r->num_trusts);
7927         ndr_print_ptr(ndr, "trusts", r->trusts);
7928         ndr->depth++;
7929         if (r->trusts) {
7930                 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", (int)r->num_trusts);
7931                 ndr->depth++;
7932                 for (cntr_trusts_1=0;cntr_trusts_1<r->num_trusts;cntr_trusts_1++) {
7933                         char *idx_1=NULL;
7934                         if (asprintf(&idx_1, "[%d]", cntr_trusts_1) != -1) {
7935                                 ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]);
7936                                 free(idx_1);
7937                         }
7938                 }
7939                 ndr->depth--;
7940         }
7941         ndr->depth--;
7942         ndr_print_netr_LsaPolicyInfo(ndr, "lsa_policy", &r->lsa_policy);
7943         ndr_print_lsa_String(ndr, "dns_hostname", &r->dns_hostname);
7944         ndr->print(ndr, "%s: ARRAY(%d)", "dummystring", (int)3);
7945         ndr->depth++;
7946         for (cntr_dummystring_0=0;cntr_dummystring_0<3;cntr_dummystring_0++) {
7947                 char *idx_0=NULL;
7948                 if (asprintf(&idx_0, "[%d]", cntr_dummystring_0) != -1) {
7949                         ndr_print_lsa_String(ndr, "dummystring", &r->dummystring[cntr_dummystring_0]);
7950                         free(idx_0);
7951                 }
7952         }
7953         ndr->depth--;
7954         ndr_print_netr_WorkstationFlags(ndr, "workstation_flags", r->workstation_flags);
7955         ndr_print_uint32(ndr, "supported_enc_types", r->supported_enc_types);
7956         ndr->print(ndr, "%s: ARRAY(%d)", "dummy", (int)2);
7957         ndr->depth++;
7958         for (cntr_dummy_0=0;cntr_dummy_0<2;cntr_dummy_0++) {
7959                 char *idx_0=NULL;
7960                 if (asprintf(&idx_0, "[%d]", cntr_dummy_0) != -1) {
7961                         ndr_print_uint32(ndr, "dummy", r->dummy[cntr_dummy_0]);
7962                         free(idx_0);
7963                 }
7964         }
7965         ndr->depth--;
7966         ndr->depth--;
7967 }
7968
7969 static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
7970 {
7971         if (ndr_flags & NDR_SCALARS) {
7972                 int level = ndr_push_get_switch_value(ndr, r);
7973                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7974                 switch (level) {
7975                         case 1: {
7976                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7977                         break; }
7978
7979                         case 2: {
7980                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
7981                         break; }
7982
7983                         default:
7984                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7985                 }
7986         }
7987         if (ndr_flags & NDR_BUFFERS) {
7988                 int level = ndr_push_get_switch_value(ndr, r);
7989                 switch (level) {
7990                         case 1:
7991                                 if (r->info1) {
7992                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7993                                 }
7994                         break;
7995
7996                         case 2:
7997                                 if (r->info2) {
7998                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7999                                 }
8000                         break;
8001
8002                         default:
8003                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8004                 }
8005         }
8006         return NDR_ERR_SUCCESS;
8007 }
8008
8009 static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
8010 {
8011         int level;
8012         uint32_t _level;
8013         TALLOC_CTX *_mem_save_info1_0;
8014         TALLOC_CTX *_mem_save_info2_0;
8015         level = ndr_pull_get_switch_value(ndr, r);
8016         if (ndr_flags & NDR_SCALARS) {
8017                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
8018                 if (_level != level) {
8019                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
8020                 }
8021                 switch (level) {
8022                         case 1: {
8023                                 uint32_t _ptr_info1;
8024                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
8025                                 if (_ptr_info1) {
8026                                         NDR_PULL_ALLOC(ndr, r->info1);
8027                                 } else {
8028                                         r->info1 = NULL;
8029                                 }
8030                         break; }
8031
8032                         case 2: {
8033                                 uint32_t _ptr_info2;
8034                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
8035                                 if (_ptr_info2) {
8036                                         NDR_PULL_ALLOC(ndr, r->info2);
8037                                 } else {
8038                                         r->info2 = NULL;
8039                                 }
8040                         break; }
8041
8042                         default:
8043                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8044                 }
8045         }
8046         if (ndr_flags & NDR_BUFFERS) {
8047                 switch (level) {
8048                         case 1:
8049                                 if (r->info1) {
8050                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
8051                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
8052                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
8053                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
8054                                 }
8055                         break;
8056
8057                         case 2:
8058                                 if (r->info2) {
8059                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
8060                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
8061                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
8062                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
8063                                 }
8064                         break;
8065
8066                         default:
8067                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
8068                 }
8069         }
8070         return NDR_ERR_SUCCESS;
8071 }
8072
8073 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
8074 {
8075         int level;
8076         level = ndr_print_get_switch_value(ndr, r);
8077         ndr_print_union(ndr, name, level, "netr_DomainInfo");
8078         switch (level) {
8079                 case 1:
8080                         ndr_print_ptr(ndr, "info1", r->info1);
8081                         ndr->depth++;
8082                         if (r->info1) {
8083                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
8084                         }
8085                         ndr->depth--;
8086                 break;
8087
8088                 case 2:
8089                         ndr_print_ptr(ndr, "info2", r->info2);
8090                         ndr->depth++;
8091                         if (r->info2) {
8092                                 ndr_print_netr_DomainInfo1(ndr, "info2", r->info2);
8093                         }
8094                         ndr->depth--;
8095                 break;
8096
8097                 default:
8098                         ndr_print_bad_level(ndr, name, level);
8099         }
8100 }
8101
8102 static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
8103 {
8104         {
8105                 uint32_t _flags_save_STRUCT = ndr->flags;
8106                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
8107                 if (ndr_flags & NDR_SCALARS) {
8108                         NDR_CHECK(ndr_push_align(ndr, 4));
8109                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
8110                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
8111                 }
8112                 if (ndr_flags & NDR_BUFFERS) {
8113                 }
8114                 ndr->flags = _flags_save_STRUCT;
8115         }
8116         return NDR_ERR_SUCCESS;
8117 }
8118
8119 static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
8120 {
8121         {
8122                 uint32_t _flags_save_STRUCT = ndr->flags;
8123                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
8124                 if (ndr_flags & NDR_SCALARS) {
8125                         NDR_CHECK(ndr_pull_align(ndr, 4));
8126                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
8127                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
8128                 }
8129                 if (ndr_flags & NDR_BUFFERS) {
8130                 }
8131                 ndr->flags = _flags_save_STRUCT;
8132         }
8133         return NDR_ERR_SUCCESS;
8134 }
8135
8136 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
8137 {
8138         ndr_print_struct(ndr, name, "netr_CryptPassword");
8139         {
8140                 uint32_t _flags_save_STRUCT = ndr->flags;
8141                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
8142                 ndr->depth++;
8143                 ndr_print_array_uint8(ndr, "data", r->data, 512);
8144                 ndr_print_uint32(ndr, "length", r->length);
8145                 ndr->depth--;
8146                 ndr->flags = _flags_save_STRUCT;
8147         }
8148 }
8149
8150 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesWCtr *r)
8151 {
8152         uint32_t cntr_sitename_1;
8153         if (ndr_flags & NDR_SCALARS) {
8154                 NDR_CHECK(ndr_push_align(ndr, 4));
8155                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8156                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
8157         }
8158         if (ndr_flags & NDR_BUFFERS) {
8159                 if (r->sitename) {
8160                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8161                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8162                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8163                         }
8164                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8165                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8166                         }
8167                 }
8168         }
8169         return NDR_ERR_SUCCESS;
8170 }
8171
8172 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r)
8173 {
8174         uint32_t _ptr_sitename;
8175         uint32_t cntr_sitename_1;
8176         TALLOC_CTX *_mem_save_sitename_0;
8177         TALLOC_CTX *_mem_save_sitename_1;
8178         if (ndr_flags & NDR_SCALARS) {
8179                 NDR_CHECK(ndr_pull_align(ndr, 4));
8180                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8181                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
8182                 if (_ptr_sitename) {
8183                         NDR_PULL_ALLOC(ndr, r->sitename);
8184                 } else {
8185                         r->sitename = NULL;
8186                 }
8187         }
8188         if (ndr_flags & NDR_BUFFERS) {
8189                 if (r->sitename) {
8190                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
8191                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8192                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
8193                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
8194                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
8195                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8196                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8197                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8198                         }
8199                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8200                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8201                         }
8202                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
8203                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
8204                 }
8205                 if (r->sitename) {
8206                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
8207                 }
8208         }
8209         return NDR_ERR_SUCCESS;
8210 }
8211
8212 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r)
8213 {
8214         uint32_t cntr_sitename_1;
8215         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesWCtr");
8216         ndr->depth++;
8217         ndr_print_uint32(ndr, "count", r->count);
8218         ndr_print_ptr(ndr, "sitename", r->sitename);
8219         ndr->depth++;
8220         if (r->sitename) {
8221                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
8222                 ndr->depth++;
8223                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
8224                         char *idx_1=NULL;
8225                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
8226                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
8227                                 free(idx_1);
8228                         }
8229                 }
8230                 ndr->depth--;
8231         }
8232         ndr->depth--;
8233         ndr->depth--;
8234 }
8235
8236 static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddress *r)
8237 {
8238         if (ndr_flags & NDR_SCALARS) {
8239                 NDR_CHECK(ndr_push_align(ndr, 4));
8240                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
8241                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
8242         }
8243         if (ndr_flags & NDR_BUFFERS) {
8244                 if (r->buffer) {
8245                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
8246                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->size));
8247                 }
8248         }
8249         return NDR_ERR_SUCCESS;
8250 }
8251
8252 static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r)
8253 {
8254         uint32_t _ptr_buffer;
8255         TALLOC_CTX *_mem_save_buffer_0;
8256         if (ndr_flags & NDR_SCALARS) {
8257                 NDR_CHECK(ndr_pull_align(ndr, 4));
8258                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
8259                 if (_ptr_buffer) {
8260                         NDR_PULL_ALLOC(ndr, r->buffer);
8261                 } else {
8262                         r->buffer = NULL;
8263                 }
8264                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
8265         }
8266         if (ndr_flags & NDR_BUFFERS) {
8267                 if (r->buffer) {
8268                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
8269                         NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
8270                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
8271                         NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
8272                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
8273                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
8274                 }
8275                 if (r->buffer) {
8276                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->size));
8277                 }
8278         }
8279         return NDR_ERR_SUCCESS;
8280 }
8281
8282 _PUBLIC_ void ndr_print_netr_DsRAddress(struct ndr_print *ndr, const char *name, const struct netr_DsRAddress *r)
8283 {
8284         ndr_print_struct(ndr, name, "netr_DsRAddress");
8285         ndr->depth++;
8286         ndr_print_ptr(ndr, "buffer", r->buffer);
8287         ndr->depth++;
8288         if (r->buffer) {
8289                 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->size);
8290         }
8291         ndr->depth--;
8292         ndr_print_uint32(ndr, "size", r->size);
8293         ndr->depth--;
8294 }
8295
8296 static enum ndr_err_code ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
8297 {
8298         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8299         return NDR_ERR_SUCCESS;
8300 }
8301
8302 static enum ndr_err_code ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
8303 {
8304         uint32_t v;
8305         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8306         *r = v;
8307         return NDR_ERR_SUCCESS;
8308 }
8309
8310 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
8311 {
8312         const char *val = NULL;
8313
8314         switch (r) {
8315                 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
8316                 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
8317                 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
8318                 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
8319         }
8320         ndr_print_enum(ndr, name, "ENUM", val, r);
8321 }
8322
8323 static enum ndr_err_code ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
8324 {
8325         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8326         return NDR_ERR_SUCCESS;
8327 }
8328
8329 static enum ndr_err_code ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
8330 {
8331         uint32_t v;
8332         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8333         *r = v;
8334         return NDR_ERR_SUCCESS;
8335 }
8336
8337 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
8338 {
8339         ndr_print_uint32(ndr, name, r);
8340         ndr->depth++;
8341         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
8342         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
8343         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
8344         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
8345         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
8346         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
8347         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
8348         ndr->depth--;
8349 }
8350
8351 static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
8352 {
8353         if (ndr_flags & NDR_SCALARS) {
8354                 NDR_CHECK(ndr_push_align(ndr, 4));
8355                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
8356                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
8357                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
8358                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
8359                 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
8360                 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
8361                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
8362                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
8363         }
8364         if (ndr_flags & NDR_BUFFERS) {
8365                 if (r->netbios_name) {
8366                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
8367                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8368                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
8369                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8370                 }
8371                 if (r->dns_name) {
8372                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
8373                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8374                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
8375                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8376                 }
8377                 if (r->sid) {
8378                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
8379                 }
8380         }
8381         return NDR_ERR_SUCCESS;
8382 }
8383
8384 static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
8385 {
8386         uint32_t _ptr_netbios_name;
8387         TALLOC_CTX *_mem_save_netbios_name_0;
8388         uint32_t _ptr_dns_name;
8389         TALLOC_CTX *_mem_save_dns_name_0;
8390         uint32_t _ptr_sid;
8391         TALLOC_CTX *_mem_save_sid_0;
8392         if (ndr_flags & NDR_SCALARS) {
8393                 NDR_CHECK(ndr_pull_align(ndr, 4));
8394                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
8395                 if (_ptr_netbios_name) {
8396                         NDR_PULL_ALLOC(ndr, r->netbios_name);
8397                 } else {
8398                         r->netbios_name = NULL;
8399                 }
8400                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
8401                 if (_ptr_dns_name) {
8402                         NDR_PULL_ALLOC(ndr, r->dns_name);
8403                 } else {
8404                         r->dns_name = NULL;
8405                 }
8406                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
8407                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
8408                 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
8409                 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
8410                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
8411                 if (_ptr_sid) {
8412                         NDR_PULL_ALLOC(ndr, r->sid);
8413                 } else {
8414                         r->sid = NULL;
8415                 }
8416                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
8417         }
8418         if (ndr_flags & NDR_BUFFERS) {
8419                 if (r->netbios_name) {
8420                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8421                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
8422                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
8423                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
8424                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
8425                                 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));
8426                         }
8427                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
8428                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
8429                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
8430                 }
8431                 if (r->dns_name) {
8432                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8433                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
8434                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
8435                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
8436                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
8437                                 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));
8438                         }
8439                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
8440                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
8441                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
8442                 }
8443                 if (r->sid) {
8444                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
8445                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
8446                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
8447                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
8448                 }
8449         }
8450         return NDR_ERR_SUCCESS;
8451 }
8452
8453 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
8454 {
8455         ndr_print_struct(ndr, name, "netr_DomainTrust");
8456         ndr->depth++;
8457         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
8458         ndr->depth++;
8459         if (r->netbios_name) {
8460                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
8461         }
8462         ndr->depth--;
8463         ndr_print_ptr(ndr, "dns_name", r->dns_name);
8464         ndr->depth++;
8465         if (r->dns_name) {
8466                 ndr_print_string(ndr, "dns_name", r->dns_name);
8467         }
8468         ndr->depth--;
8469         ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
8470         ndr_print_uint32(ndr, "parent_index", r->parent_index);
8471         ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
8472         ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
8473         ndr_print_ptr(ndr, "sid", r->sid);
8474         ndr->depth++;
8475         if (r->sid) {
8476                 ndr_print_dom_sid2(ndr, "sid", r->sid);
8477         }
8478         ndr->depth--;
8479         ndr_print_GUID(ndr, "guid", &r->guid);
8480         ndr->depth--;
8481 }
8482
8483 static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustList *r)
8484 {
8485         uint32_t cntr_array_1;
8486         if (ndr_flags & NDR_SCALARS) {
8487                 NDR_CHECK(ndr_push_align(ndr, 4));
8488                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8489                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
8490         }
8491         if (ndr_flags & NDR_BUFFERS) {
8492                 if (r->array) {
8493                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8494                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8495                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8496                         }
8497                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8498                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8499                         }
8500                 }
8501         }
8502         return NDR_ERR_SUCCESS;
8503 }
8504
8505 static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r)
8506 {
8507         uint32_t _ptr_array;
8508         uint32_t cntr_array_1;
8509         TALLOC_CTX *_mem_save_array_0;
8510         TALLOC_CTX *_mem_save_array_1;
8511         if (ndr_flags & NDR_SCALARS) {
8512                 NDR_CHECK(ndr_pull_align(ndr, 4));
8513                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8514                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
8515                 if (_ptr_array) {
8516                         NDR_PULL_ALLOC(ndr, r->array);
8517                 } else {
8518                         r->array = NULL;
8519                 }
8520         }
8521         if (ndr_flags & NDR_BUFFERS) {
8522                 if (r->array) {
8523                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
8524                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8525                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
8526                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
8527                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
8528                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8529                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8530                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8531                         }
8532                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8533                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8534                         }
8535                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
8536                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
8537                 }
8538                 if (r->array) {
8539                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
8540                 }
8541         }
8542         return NDR_ERR_SUCCESS;
8543 }
8544
8545 _PUBLIC_ void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r)
8546 {
8547         uint32_t cntr_array_1;
8548         ndr_print_struct(ndr, name, "netr_DomainTrustList");
8549         ndr->depth++;
8550         ndr_print_uint32(ndr, "count", r->count);
8551         ndr_print_ptr(ndr, "array", r->array);
8552         ndr->depth++;
8553         if (r->array) {
8554                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
8555                 ndr->depth++;
8556                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
8557                         char *idx_1=NULL;
8558                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
8559                                 ndr_print_netr_DomainTrust(ndr, "array", &r->array[cntr_array_1]);
8560                                 free(idx_1);
8561                         }
8562                 }
8563                 ndr->depth--;
8564         }
8565         ndr->depth--;
8566         ndr->depth--;
8567 }
8568
8569 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesExWCtr *r)
8570 {
8571         uint32_t cntr_sitename_1;
8572         uint32_t cntr_subnetname_1;
8573         if (ndr_flags & NDR_SCALARS) {
8574                 NDR_CHECK(ndr_push_align(ndr, 4));
8575                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8576                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
8577                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->subnetname));
8578         }
8579         if (ndr_flags & NDR_BUFFERS) {
8580                 if (r->sitename) {
8581                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8582                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8583                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8584                         }
8585                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8586                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8587                         }
8588                 }
8589                 if (r->subnetname) {
8590                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8591                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8592                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
8593                         }
8594                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8595                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
8596                         }
8597                 }
8598         }
8599         return NDR_ERR_SUCCESS;
8600 }
8601
8602 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r)
8603 {
8604         uint32_t _ptr_sitename;
8605         uint32_t cntr_sitename_1;
8606         TALLOC_CTX *_mem_save_sitename_0;
8607         TALLOC_CTX *_mem_save_sitename_1;
8608         uint32_t _ptr_subnetname;
8609         uint32_t cntr_subnetname_1;
8610         TALLOC_CTX *_mem_save_subnetname_0;
8611         TALLOC_CTX *_mem_save_subnetname_1;
8612         if (ndr_flags & NDR_SCALARS) {
8613                 NDR_CHECK(ndr_pull_align(ndr, 4));
8614                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8615                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
8616                 if (_ptr_sitename) {
8617                         NDR_PULL_ALLOC(ndr, r->sitename);
8618                 } else {
8619                         r->sitename = NULL;
8620                 }
8621                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_subnetname));
8622                 if (_ptr_subnetname) {
8623                         NDR_PULL_ALLOC(ndr, r->subnetname);
8624                 } else {
8625                         r->subnetname = NULL;
8626                 }
8627         }
8628         if (ndr_flags & NDR_BUFFERS) {
8629                 if (r->sitename) {
8630                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
8631                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8632                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
8633                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
8634                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
8635                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8636                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8637                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8638                         }
8639                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8640                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8641                         }
8642                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
8643                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
8644                 }
8645                 if (r->subnetname) {
8646                         _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr);
8647                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
8648                         NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname));
8649                         NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname));
8650                         _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr);
8651                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
8652                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8653                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
8654                         }
8655                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8656                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
8657                         }
8658                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0);
8659                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_0, 0);
8660                 }
8661                 if (r->sitename) {
8662                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
8663                 }
8664                 if (r->subnetname) {
8665                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->subnetname, r->count));
8666                 }
8667         }
8668         return NDR_ERR_SUCCESS;
8669 }
8670
8671 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r)
8672 {
8673         uint32_t cntr_sitename_1;
8674         uint32_t cntr_subnetname_1;
8675         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExWCtr");
8676         ndr->depth++;
8677         ndr_print_uint32(ndr, "count", r->count);
8678         ndr_print_ptr(ndr, "sitename", r->sitename);
8679         ndr->depth++;
8680         if (r->sitename) {
8681                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
8682                 ndr->depth++;
8683                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
8684                         char *idx_1=NULL;
8685                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
8686                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
8687                                 free(idx_1);
8688                         }
8689                 }
8690                 ndr->depth--;
8691         }
8692         ndr->depth--;
8693         ndr_print_ptr(ndr, "subnetname", r->subnetname);
8694         ndr->depth++;
8695         if (r->subnetname) {
8696                 ndr->print(ndr, "%s: ARRAY(%d)", "subnetname", (int)r->count);
8697                 ndr->depth++;
8698                 for (cntr_subnetname_1=0;cntr_subnetname_1<r->count;cntr_subnetname_1++) {
8699                         char *idx_1=NULL;
8700                         if (asprintf(&idx_1, "[%d]", cntr_subnetname_1) != -1) {
8701                                 ndr_print_lsa_String(ndr, "subnetname", &r->subnetname[cntr_subnetname_1]);
8702                                 free(idx_1);
8703                         }
8704                 }
8705                 ndr->depth--;
8706         }
8707         ndr->depth--;
8708         ndr->depth--;
8709 }
8710
8711 static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags, const struct DcSitesCtr *r)
8712 {
8713         uint32_t cntr_sites_1;
8714         if (ndr_flags & NDR_SCALARS) {
8715                 NDR_CHECK(ndr_push_align(ndr, 4));
8716                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
8717                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sites));
8718         }
8719         if (ndr_flags & NDR_BUFFERS) {
8720                 if (r->sites) {
8721                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
8722                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8723                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
8724                         }
8725                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8726                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
8727                         }
8728                 }
8729         }
8730         return NDR_ERR_SUCCESS;
8731 }
8732
8733 static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r)
8734 {
8735         uint32_t _ptr_sites;
8736         uint32_t cntr_sites_1;
8737         TALLOC_CTX *_mem_save_sites_0;
8738         TALLOC_CTX *_mem_save_sites_1;
8739         if (ndr_flags & NDR_SCALARS) {
8740                 NDR_CHECK(ndr_pull_align(ndr, 4));
8741                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sites));
8742                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sites));
8743                 if (_ptr_sites) {
8744                         NDR_PULL_ALLOC(ndr, r->sites);
8745                 } else {
8746                         r->sites = NULL;
8747                 }
8748         }
8749         if (ndr_flags & NDR_BUFFERS) {
8750                 if (r->sites) {
8751                         _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr);
8752                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
8753                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sites));
8754                         NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites));
8755                         _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr);
8756                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
8757                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8758                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
8759                         }
8760                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8761                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
8762                         }
8763                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0);
8764                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_0, 0);
8765                 }
8766                 if (r->sites) {
8767                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sites, r->num_sites));
8768                 }
8769         }
8770         return NDR_ERR_SUCCESS;
8771 }
8772
8773 _PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r)
8774 {
8775         uint32_t cntr_sites_1;
8776         ndr_print_struct(ndr, name, "DcSitesCtr");
8777         ndr->depth++;
8778         ndr_print_uint32(ndr, "num_sites", r->num_sites);
8779         ndr_print_ptr(ndr, "sites", r->sites);
8780         ndr->depth++;
8781         if (r->sites) {
8782                 ndr->print(ndr, "%s: ARRAY(%d)", "sites", (int)r->num_sites);
8783                 ndr->depth++;
8784                 for (cntr_sites_1=0;cntr_sites_1<r->num_sites;cntr_sites_1++) {
8785                         char *idx_1=NULL;
8786                         if (asprintf(&idx_1, "[%d]", cntr_sites_1) != -1) {
8787                                 ndr_print_lsa_String(ndr, "sites", &r->sites[cntr_sites_1]);
8788                                 free(idx_1);
8789                         }
8790                 }
8791                 ndr->depth--;
8792         }
8793         ndr->depth--;
8794         ndr->depth--;
8795 }
8796
8797 static enum ndr_err_code ndr_push_netr_TrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_TrustInfo *r)
8798 {
8799         uint32_t cntr_data_1;
8800         uint32_t cntr_entries_1;
8801         if (ndr_flags & NDR_SCALARS) {
8802                 NDR_CHECK(ndr_push_align(ndr, 4));
8803                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8804                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
8805                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entry_count));
8806                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
8807         }
8808         if (ndr_flags & NDR_BUFFERS) {
8809                 if (r->data) {
8810                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8811                         for (cntr_data_1 = 0; cntr_data_1 < r->count; cntr_data_1++) {
8812                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data[cntr_data_1]));
8813                         }
8814                 }
8815                 if (r->entries) {
8816                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8817                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
8818                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
8819                         }
8820                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
8821                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
8822                         }
8823                 }
8824         }
8825         return NDR_ERR_SUCCESS;
8826 }
8827
8828 static enum ndr_err_code ndr_pull_netr_TrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_TrustInfo *r)
8829 {
8830         uint32_t _ptr_data;
8831         uint32_t cntr_data_1;
8832         TALLOC_CTX *_mem_save_data_0;
8833         TALLOC_CTX *_mem_save_data_1;
8834         uint32_t _ptr_entries;
8835         uint32_t cntr_entries_1;
8836         TALLOC_CTX *_mem_save_entries_0;
8837         TALLOC_CTX *_mem_save_entries_1;
8838         if (ndr_flags & NDR_SCALARS) {
8839                 NDR_CHECK(ndr_pull_align(ndr, 4));
8840                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8841                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
8842                 if (_ptr_data) {
8843                         NDR_PULL_ALLOC(ndr, r->data);
8844                 } else {
8845                         r->data = NULL;
8846                 }
8847                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->entry_count));
8848                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
8849                 if (_ptr_entries) {
8850                         NDR_PULL_ALLOC(ndr, r->entries);
8851                 } else {
8852                         r->entries = NULL;
8853                 }
8854         }
8855         if (ndr_flags & NDR_BUFFERS) {
8856                 if (r->data) {
8857                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
8858                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
8859                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
8860                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
8861                         _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
8862                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
8863                         for (cntr_data_1 = 0; cntr_data_1 < r->count; cntr_data_1++) {
8864                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
8865                         }
8866                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
8867                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
8868                 }
8869                 if (r->entries) {
8870                         _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
8871                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
8872                         NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
8873                         NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
8874                         _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
8875                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
8876                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
8877                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
8878                         }
8879                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
8880                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
8881                         }
8882                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
8883                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
8884                 }
8885                 if (r->data) {
8886                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->count));
8887                 }
8888                 if (r->entries) {
8889                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
8890                 }
8891         }
8892         return NDR_ERR_SUCCESS;
8893 }
8894
8895 _PUBLIC_ void ndr_print_netr_TrustInfo(struct ndr_print *ndr, const char *name, const struct netr_TrustInfo *r)
8896 {
8897         uint32_t cntr_data_1;
8898         uint32_t cntr_entries_1;
8899         ndr_print_struct(ndr, name, "netr_TrustInfo");
8900         ndr->depth++;
8901         ndr_print_uint32(ndr, "count", r->count);
8902         ndr_print_ptr(ndr, "data", r->data);
8903         ndr->depth++;
8904         if (r->data) {
8905                 ndr->print(ndr, "%s: ARRAY(%d)", "data", (int)r->count);
8906                 ndr->depth++;
8907                 for (cntr_data_1=0;cntr_data_1<r->count;cntr_data_1++) {
8908                         char *idx_1=NULL;
8909                         if (asprintf(&idx_1, "[%d]", cntr_data_1) != -1) {
8910                                 ndr_print_uint32(ndr, "data", r->data[cntr_data_1]);
8911                                 free(idx_1);
8912                         }
8913                 }
8914                 ndr->depth--;
8915         }
8916         ndr->depth--;
8917         ndr_print_uint32(ndr, "entry_count", r->entry_count);
8918         ndr_print_ptr(ndr, "entries", r->entries);
8919         ndr->depth++;
8920         if (r->entries) {
8921                 ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
8922                 ndr->depth++;
8923                 for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
8924                         char *idx_1=NULL;
8925                         if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
8926                                 ndr_print_lsa_String(ndr, "entries", &r->entries[cntr_entries_1]);
8927                                 free(idx_1);
8928                         }
8929                 }
8930                 ndr->depth--;
8931         }
8932         ndr->depth--;
8933         ndr->depth--;
8934 }
8935
8936 static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
8937 {
8938         if (flags & NDR_IN) {
8939                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8940                 if (r->in.server_name) {
8941                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8942                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8943                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8944                         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));
8945                 }
8946                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8947                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8948                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8949                 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));
8950                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8951                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8952                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8953                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8954         }
8955         if (flags & NDR_OUT) {
8956                 if (r->out.info == NULL) {
8957                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8958                 }
8959                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
8960                 if (*r->out.info) {
8961                         NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
8962                 }
8963                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8964         }
8965         return NDR_ERR_SUCCESS;
8966 }
8967
8968 static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
8969 {
8970         uint32_t _ptr_server_name;
8971         uint32_t _ptr_info;
8972         TALLOC_CTX *_mem_save_server_name_0;
8973         TALLOC_CTX *_mem_save_info_0;
8974         TALLOC_CTX *_mem_save_info_1;
8975         if (flags & NDR_IN) {
8976                 ZERO_STRUCT(r->out);
8977
8978                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8979                 if (_ptr_server_name) {
8980                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8981                 } else {
8982                         r->in.server_name = NULL;
8983                 }
8984                 if (r->in.server_name) {
8985                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8986                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8987                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8988                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8989                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8990                                 return 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));
8991                         }
8992                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8993                         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));
8994                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8995                 }
8996                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8997                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8998                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8999                         return 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));
9000                 }
9001                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9002                 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));
9003                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
9004                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
9005                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
9006                         return 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));
9007                 }
9008                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
9009                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
9010                 NDR_PULL_ALLOC(ndr, r->out.info);
9011                 ZERO_STRUCTP(r->out.info);
9012         }
9013         if (flags & NDR_OUT) {
9014                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9015                         NDR_PULL_ALLOC(ndr, r->out.info);
9016                 }
9017                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9018                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9019                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
9020                 if (_ptr_info) {
9021                         NDR_PULL_ALLOC(ndr, *r->out.info);
9022                 } else {
9023                         *r->out.info = NULL;
9024                 }
9025                 if (*r->out.info) {
9026                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
9027                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
9028                         NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
9029                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
9030                 }
9031                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9032                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9033         }
9034         return NDR_ERR_SUCCESS;
9035 }
9036
9037 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
9038 {
9039         ndr_print_struct(ndr, name, "netr_LogonUasLogon");
9040         ndr->depth++;
9041         if (flags & NDR_SET_VALUES) {
9042                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9043         }
9044         if (flags & NDR_IN) {
9045                 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
9046                 ndr->depth++;
9047                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9048                 ndr->depth++;
9049                 if (r->in.server_name) {
9050                         ndr_print_string(ndr, "server_name", r->in.server_name);
9051                 }
9052                 ndr->depth--;
9053                 ndr_print_string(ndr, "account_name", r->in.account_name);
9054                 ndr_print_string(ndr, "workstation", r->in.workstation);
9055                 ndr->depth--;
9056         }
9057         if (flags & NDR_OUT) {
9058                 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
9059                 ndr->depth++;
9060                 ndr_print_ptr(ndr, "info", r->out.info);
9061                 ndr->depth++;
9062                 ndr_print_ptr(ndr, "info", *r->out.info);
9063                 ndr->depth++;
9064                 if (*r->out.info) {
9065                         ndr_print_netr_UasInfo(ndr, "info", *r->out.info);
9066                 }
9067                 ndr->depth--;
9068                 ndr->depth--;
9069                 ndr_print_WERROR(ndr, "result", r->out.result);
9070                 ndr->depth--;
9071         }
9072         ndr->depth--;
9073 }
9074
9075 static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
9076 {
9077         if (flags & NDR_IN) {
9078                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9079                 if (r->in.server_name) {
9080                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9081                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9082                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9083                         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));
9084                 }
9085                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9086                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9087                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9088                 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));
9089                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
9090                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9091                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
9092                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9093         }
9094         if (flags & NDR_OUT) {
9095                 if (r->out.info == NULL) {
9096                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9097                 }
9098                 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
9099                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9100         }
9101         return NDR_ERR_SUCCESS;
9102 }
9103
9104 static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
9105 {
9106         uint32_t _ptr_server_name;
9107         TALLOC_CTX *_mem_save_server_name_0;
9108         TALLOC_CTX *_mem_save_info_0;
9109         if (flags & NDR_IN) {
9110                 ZERO_STRUCT(r->out);
9111
9112                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9113                 if (_ptr_server_name) {
9114                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9115                 } else {
9116                         r->in.server_name = NULL;
9117                 }
9118                 if (r->in.server_name) {
9119                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9120                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9121                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9122                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9123                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9124                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
9125                         }
9126                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9127                         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));
9128                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9129                 }
9130                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9131                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9132                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
9133                         return 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));
9134                 }
9135                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9136                 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));
9137                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
9138                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
9139                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
9140                         return 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));
9141                 }
9142                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
9143                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
9144                 NDR_PULL_ALLOC(ndr, r->out.info);
9145                 ZERO_STRUCTP(r->out.info);
9146         }
9147         if (flags & NDR_OUT) {
9148                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9149                         NDR_PULL_ALLOC(ndr, r->out.info);
9150                 }
9151                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9152                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9153                 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
9154                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9155                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9156         }
9157         return NDR_ERR_SUCCESS;
9158 }
9159
9160 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
9161 {
9162         ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
9163         ndr->depth++;
9164         if (flags & NDR_SET_VALUES) {
9165                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9166         }
9167         if (flags & NDR_IN) {
9168                 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
9169                 ndr->depth++;
9170                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9171                 ndr->depth++;
9172                 if (r->in.server_name) {
9173                         ndr_print_string(ndr, "server_name", r->in.server_name);
9174                 }
9175                 ndr->depth--;
9176                 ndr_print_string(ndr, "account_name", r->in.account_name);
9177                 ndr_print_string(ndr, "workstation", r->in.workstation);
9178                 ndr->depth--;
9179         }
9180         if (flags & NDR_OUT) {
9181                 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
9182                 ndr->depth++;
9183                 ndr_print_ptr(ndr, "info", r->out.info);
9184                 ndr->depth++;
9185                 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
9186                 ndr->depth--;
9187                 ndr_print_WERROR(ndr, "result", r->out.result);
9188                 ndr->depth--;
9189         }
9190         ndr->depth--;
9191 }
9192
9193 static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
9194 {
9195         if (flags & NDR_IN) {
9196                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9197                 if (r->in.server_name) {
9198                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9199                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9200                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9201                         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));
9202                 }
9203                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
9204                 if (r->in.computer_name) {
9205                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9206                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9207                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9208                         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));
9209                 }
9210                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
9211                 if (r->in.credential) {
9212                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9213                 }
9214                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
9215                 if (r->in.return_authenticator) {
9216                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9217                 }
9218                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
9219                 if (r->in.logon == NULL) {
9220                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9221                 }
9222                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
9223                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
9224                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
9225         }
9226         if (flags & NDR_OUT) {
9227                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
9228                 if (r->out.return_authenticator) {
9229                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9230                 }
9231                 if (r->out.validation == NULL) {
9232                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9233                 }
9234                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
9235                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
9236                 if (r->out.authoritative == NULL) {
9237                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9238                 }
9239                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
9240                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9241         }
9242         return NDR_ERR_SUCCESS;
9243 }
9244
9245 static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
9246 {
9247         uint32_t _ptr_server_name;
9248         uint32_t _ptr_computer_name;
9249         uint32_t _ptr_credential;
9250         uint32_t _ptr_return_authenticator;
9251         TALLOC_CTX *_mem_save_server_name_0;
9252         TALLOC_CTX *_mem_save_computer_name_0;
9253         TALLOC_CTX *_mem_save_credential_0;
9254         TALLOC_CTX *_mem_save_return_authenticator_0;
9255         TALLOC_CTX *_mem_save_logon_0;
9256         TALLOC_CTX *_mem_save_validation_0;
9257         TALLOC_CTX *_mem_save_authoritative_0;
9258         if (flags & NDR_IN) {
9259                 ZERO_STRUCT(r->out);
9260
9261                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9262                 if (_ptr_server_name) {
9263                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9264                 } else {
9265                         r->in.server_name = NULL;
9266                 }
9267                 if (r->in.server_name) {
9268                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9269                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9270                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9271                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9272                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9273                                 return 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));
9274                         }
9275                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9276                         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));
9277                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9278                 }
9279                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
9280                 if (_ptr_computer_name) {
9281                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
9282                 } else {
9283                         r->in.computer_name = NULL;
9284                 }
9285                 if (r->in.computer_name) {
9286                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9287                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
9288                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9289                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9290                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9291                                 return 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));
9292                         }
9293                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9294                         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));
9295                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
9296                 }
9297                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
9298                 if (_ptr_credential) {
9299                         NDR_PULL_ALLOC(ndr, r->in.credential);
9300                 } else {
9301                         r->in.credential = NULL;
9302                 }
9303                 if (r->in.credential) {
9304                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9305                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
9306                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9307                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
9308                 }
9309                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9310                 if (_ptr_return_authenticator) {
9311                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9312                 } else {
9313                         r->in.return_authenticator = NULL;
9314                 }
9315                 if (r->in.return_authenticator) {
9316                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9317                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
9318                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9319                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9320                 }
9321                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
9322                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9323                         NDR_PULL_ALLOC(ndr, r->in.logon);
9324                 }
9325                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
9326                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
9327                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
9328                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
9329                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
9330                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
9331                 NDR_PULL_ALLOC(ndr, r->out.validation);
9332                 ZERO_STRUCTP(r->out.validation);
9333                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
9334                 ZERO_STRUCTP(r->out.authoritative);
9335         }
9336         if (flags & NDR_OUT) {
9337                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9338                 if (_ptr_return_authenticator) {
9339                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9340                 } else {
9341                         r->out.return_authenticator = NULL;
9342                 }
9343                 if (r->out.return_authenticator) {
9344                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9345                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
9346                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9347                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9348                 }
9349                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9350                         NDR_PULL_ALLOC(ndr, r->out.validation);
9351                 }
9352                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
9353                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
9354                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
9355                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
9356                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
9357                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9358                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
9359                 }
9360                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
9361                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
9362                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
9363                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
9364                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9365         }
9366         return NDR_ERR_SUCCESS;
9367 }
9368
9369 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
9370 {
9371         ndr_print_struct(ndr, name, "netr_LogonSamLogon");
9372         ndr->depth++;
9373         if (flags & NDR_SET_VALUES) {
9374                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9375         }
9376         if (flags & NDR_IN) {
9377                 ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
9378                 ndr->depth++;
9379                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9380                 ndr->depth++;
9381                 if (r->in.server_name) {
9382                         ndr_print_string(ndr, "server_name", r->in.server_name);
9383                 }
9384                 ndr->depth--;
9385                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
9386                 ndr->depth++;
9387                 if (r->in.computer_name) {
9388                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
9389                 }
9390                 ndr->depth--;
9391                 ndr_print_ptr(ndr, "credential", r->in.credential);
9392                 ndr->depth++;
9393                 if (r->in.credential) {
9394                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9395                 }
9396                 ndr->depth--;
9397                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9398                 ndr->depth++;
9399                 if (r->in.return_authenticator) {
9400                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9401                 }
9402                 ndr->depth--;
9403                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
9404                 ndr_print_ptr(ndr, "logon", r->in.logon);
9405                 ndr->depth++;
9406                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
9407                 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
9408                 ndr->depth--;
9409                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
9410                 ndr->depth--;
9411         }
9412         if (flags & NDR_OUT) {
9413                 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
9414                 ndr->depth++;
9415                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9416                 ndr->depth++;
9417                 if (r->out.return_authenticator) {
9418                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9419                 }
9420                 ndr->depth--;
9421                 ndr_print_ptr(ndr, "validation", r->out.validation);
9422                 ndr->depth++;
9423                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
9424                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
9425                 ndr->depth--;
9426                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
9427                 ndr->depth++;
9428                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
9429                 ndr->depth--;
9430                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9431                 ndr->depth--;
9432         }
9433         ndr->depth--;
9434 }
9435
9436 static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
9437 {
9438         if (flags & NDR_IN) {
9439                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9440                 if (r->in.server_name) {
9441                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9442                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9443                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9444                         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));
9445                 }
9446                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
9447                 if (r->in.computer_name) {
9448                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9449                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9450                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9451                         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));
9452                 }
9453                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
9454                 if (r->in.credential) {
9455                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9456                 }
9457                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
9458                 if (r->in.return_authenticator) {
9459                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9460                 }
9461                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
9462                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
9463                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
9464         }
9465         if (flags & NDR_OUT) {
9466                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
9467                 if (r->out.return_authenticator) {
9468                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9469                 }
9470                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9471         }
9472         return NDR_ERR_SUCCESS;
9473 }
9474
9475 static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
9476 {
9477         uint32_t _ptr_server_name;
9478         uint32_t _ptr_computer_name;
9479         uint32_t _ptr_credential;
9480         uint32_t _ptr_return_authenticator;
9481         TALLOC_CTX *_mem_save_server_name_0;
9482         TALLOC_CTX *_mem_save_computer_name_0;
9483         TALLOC_CTX *_mem_save_credential_0;
9484         TALLOC_CTX *_mem_save_return_authenticator_0;
9485         if (flags & NDR_IN) {
9486                 ZERO_STRUCT(r->out);
9487
9488                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9489                 if (_ptr_server_name) {
9490                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9491                 } else {
9492                         r->in.server_name = NULL;
9493                 }
9494                 if (r->in.server_name) {
9495                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9496                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9497                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9498                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9499                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9500                                 return 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));
9501                         }
9502                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9503                         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));
9504                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9505                 }
9506                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
9507                 if (_ptr_computer_name) {
9508                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
9509                 } else {
9510                         r->in.computer_name = NULL;
9511                 }
9512                 if (r->in.computer_name) {
9513                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9514                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
9515                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9516                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9517                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9518                                 return 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));
9519                         }
9520                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9521                         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));
9522                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
9523                 }
9524                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
9525                 if (_ptr_credential) {
9526                         NDR_PULL_ALLOC(ndr, r->in.credential);
9527                 } else {
9528                         r->in.credential = NULL;
9529                 }
9530                 if (r->in.credential) {
9531                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9532                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
9533                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9534                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
9535                 }
9536                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9537                 if (_ptr_return_authenticator) {
9538                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9539                 } else {
9540                         r->in.return_authenticator = NULL;
9541                 }
9542                 if (r->in.return_authenticator) {
9543                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9544                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
9545                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9546                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9547                 }
9548                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
9549                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
9550                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
9551         }
9552         if (flags & NDR_OUT) {
9553                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9554                 if (_ptr_return_authenticator) {
9555                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9556                 } else {
9557                         r->out.return_authenticator = NULL;
9558                 }
9559                 if (r->out.return_authenticator) {
9560                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9561                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
9562                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9563                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9564                 }
9565                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9566         }
9567         return NDR_ERR_SUCCESS;
9568 }
9569
9570 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
9571 {
9572         ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
9573         ndr->depth++;
9574         if (flags & NDR_SET_VALUES) {
9575                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9576         }
9577         if (flags & NDR_IN) {
9578                 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
9579                 ndr->depth++;
9580                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9581                 ndr->depth++;
9582                 if (r->in.server_name) {
9583                         ndr_print_string(ndr, "server_name", r->in.server_name);
9584                 }
9585                 ndr->depth--;
9586                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
9587                 ndr->depth++;
9588                 if (r->in.computer_name) {
9589                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
9590                 }
9591                 ndr->depth--;
9592                 ndr_print_ptr(ndr, "credential", r->in.credential);
9593                 ndr->depth++;
9594                 if (r->in.credential) {
9595                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9596                 }
9597                 ndr->depth--;
9598                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9599                 ndr->depth++;
9600                 if (r->in.return_authenticator) {
9601                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9602                 }
9603                 ndr->depth--;
9604                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
9605                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
9606                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
9607                 ndr->depth--;
9608         }
9609         if (flags & NDR_OUT) {
9610                 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
9611                 ndr->depth++;
9612                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9613                 ndr->depth++;
9614                 if (r->out.return_authenticator) {
9615                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9616                 }
9617                 ndr->depth--;
9618                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9619                 ndr->depth--;
9620         }
9621         ndr->depth--;
9622 }
9623
9624 _PUBLIC_ enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
9625 {
9626         if (flags & NDR_IN) {
9627                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9628                 if (r->in.server_name) {
9629                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9630                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9631                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9632                         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));
9633                 }
9634                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9635                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9636                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9637                 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));
9638                 if (r->in.credentials == NULL) {
9639                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9640                 }
9641                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9642         }
9643         if (flags & NDR_OUT) {
9644                 if (r->out.return_credentials == NULL) {
9645                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9646                 }
9647                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9648                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9649         }
9650         return NDR_ERR_SUCCESS;
9651 }
9652
9653 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
9654 {
9655         uint32_t _ptr_server_name;
9656         TALLOC_CTX *_mem_save_server_name_0;
9657         TALLOC_CTX *_mem_save_credentials_0;
9658         TALLOC_CTX *_mem_save_return_credentials_0;
9659         if (flags & NDR_IN) {
9660                 ZERO_STRUCT(r->out);
9661
9662                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9663                 if (_ptr_server_name) {
9664                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9665                 } else {
9666                         r->in.server_name = NULL;
9667                 }
9668                 if (r->in.server_name) {
9669                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9670                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9671                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9672                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9673                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9674                                 return 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));
9675                         }
9676                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9677                         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));
9678                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9679                 }
9680                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9681                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9682                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9683                         return 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));
9684                 }
9685                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9686                 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));
9687                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9688                         NDR_PULL_ALLOC(ndr, r->in.credentials);
9689                 }
9690                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9691                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
9692                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9693                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9694                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9695                 ZERO_STRUCTP(r->out.return_credentials);
9696         }
9697         if (flags & NDR_OUT) {
9698                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9699                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9700                 }
9701                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9702                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
9703                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9704                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9705                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9706         }
9707         return NDR_ERR_SUCCESS;
9708 }
9709
9710 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
9711 {
9712         ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
9713         ndr->depth++;
9714         if (flags & NDR_SET_VALUES) {
9715                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9716         }
9717         if (flags & NDR_IN) {
9718                 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
9719                 ndr->depth++;
9720                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9721                 ndr->depth++;
9722                 if (r->in.server_name) {
9723                         ndr_print_string(ndr, "server_name", r->in.server_name);
9724                 }
9725                 ndr->depth--;
9726                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9727                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
9728                 ndr->depth++;
9729                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
9730                 ndr->depth--;
9731                 ndr->depth--;
9732         }
9733         if (flags & NDR_OUT) {
9734                 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
9735                 ndr->depth++;
9736                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
9737                 ndr->depth++;
9738                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
9739                 ndr->depth--;
9740                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9741                 ndr->depth--;
9742         }
9743         ndr->depth--;
9744 }
9745
9746 static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
9747 {
9748         if (flags & NDR_IN) {
9749                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9750                 if (r->in.server_name) {
9751                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9752                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9753                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9754                         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));
9755                 }
9756                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9757                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9758                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9759                 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));
9760                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
9761                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9762                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9763                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9764                 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));
9765                 if (r->in.credentials == NULL) {
9766                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9767                 }
9768                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9769         }
9770         if (flags & NDR_OUT) {
9771                 if (r->out.return_credentials == NULL) {
9772                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9773                 }
9774                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9775                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9776         }
9777         return NDR_ERR_SUCCESS;
9778 }
9779
9780 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
9781 {
9782         uint32_t _ptr_server_name;
9783         TALLOC_CTX *_mem_save_server_name_0;
9784         TALLOC_CTX *_mem_save_credentials_0;
9785         TALLOC_CTX *_mem_save_return_credentials_0;
9786         if (flags & NDR_IN) {
9787                 ZERO_STRUCT(r->out);
9788
9789                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9790                 if (_ptr_server_name) {
9791                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9792                 } else {
9793                         r->in.server_name = NULL;
9794                 }
9795                 if (r->in.server_name) {
9796                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9797                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9798                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9799                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9800                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9801                                 return 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));
9802                         }
9803                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9804                         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));
9805                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9806                 }
9807                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9808                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9809                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
9810                         return 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));
9811                 }
9812                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9813                 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));
9814                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
9815                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9816                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9817                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9818                         return 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));
9819                 }
9820                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9821                 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));
9822                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9823                         NDR_PULL_ALLOC(ndr, r->in.credentials);
9824                 }
9825                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9826                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
9827                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9828                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9829                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9830                 ZERO_STRUCTP(r->out.return_credentials);
9831         }
9832         if (flags & NDR_OUT) {
9833                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9834                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9835                 }
9836                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9837                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
9838                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9839                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9840                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9841         }
9842         return NDR_ERR_SUCCESS;
9843 }
9844
9845 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
9846 {
9847         ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
9848         ndr->depth++;
9849         if (flags & NDR_SET_VALUES) {
9850                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9851         }
9852         if (flags & NDR_IN) {
9853                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
9854                 ndr->depth++;
9855                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9856                 ndr->depth++;
9857                 if (r->in.server_name) {
9858                         ndr_print_string(ndr, "server_name", r->in.server_name);
9859                 }
9860                 ndr->depth--;
9861                 ndr_print_string(ndr, "account_name", r->in.account_name);
9862                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
9863                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9864                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
9865                 ndr->depth++;
9866                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
9867                 ndr->depth--;
9868                 ndr->depth--;
9869         }
9870         if (flags & NDR_OUT) {
9871                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
9872                 ndr->depth++;
9873                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
9874                 ndr->depth++;
9875                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
9876                 ndr->depth--;
9877                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9878                 ndr->depth--;
9879         }
9880         ndr->depth--;
9881 }
9882
9883 static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
9884 {
9885         if (flags & NDR_IN) {
9886                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9887                 if (r->in.server_name) {
9888                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9889                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9890                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9891                         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));
9892                 }
9893                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9894                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9895                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9896                 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));
9897                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
9898                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9899                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9900                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9901                 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));
9902                 if (r->in.credential == NULL) {
9903                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9904                 }
9905                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9906                 if (r->in.new_password == NULL) {
9907                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9908                 }
9909                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
9910         }
9911         if (flags & NDR_OUT) {
9912                 if (r->out.return_authenticator == NULL) {
9913                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9914                 }
9915                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9916                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9917         }
9918         return NDR_ERR_SUCCESS;
9919 }
9920
9921 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
9922 {
9923         uint32_t _ptr_server_name;
9924         TALLOC_CTX *_mem_save_server_name_0;
9925         TALLOC_CTX *_mem_save_credential_0;
9926         TALLOC_CTX *_mem_save_return_authenticator_0;
9927         TALLOC_CTX *_mem_save_new_password_0;
9928         if (flags & NDR_IN) {
9929                 ZERO_STRUCT(r->out);
9930
9931                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9932                 if (_ptr_server_name) {
9933                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9934                 } else {
9935                         r->in.server_name = NULL;
9936                 }
9937                 if (r->in.server_name) {
9938                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9939                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9940                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9941                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9942                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9943                                 return 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));
9944                         }
9945                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9946                         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));
9947                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9948                 }
9949                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9950                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9951                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
9952                         return 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));
9953                 }
9954                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9955                 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));
9956                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
9957                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9958                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9959                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9960                         return 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));
9961                 }
9962                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9963                 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));
9964                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9965                         NDR_PULL_ALLOC(ndr, r->in.credential);
9966                 }
9967                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9968                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
9969                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9970                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
9971                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9972                         NDR_PULL_ALLOC(ndr, r->in.new_password);
9973                 }
9974                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
9975                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
9976                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
9977                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
9978                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9979                 ZERO_STRUCTP(r->out.return_authenticator);
9980         }
9981         if (flags & NDR_OUT) {
9982                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9983                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9984                 }
9985                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9986                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9987                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9988                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9989                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9990         }
9991         return NDR_ERR_SUCCESS;
9992 }
9993
9994 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
9995 {
9996         ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
9997         ndr->depth++;
9998         if (flags & NDR_SET_VALUES) {
9999                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10000         }
10001         if (flags & NDR_IN) {
10002                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
10003                 ndr->depth++;
10004                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10005                 ndr->depth++;
10006                 if (r->in.server_name) {
10007                         ndr_print_string(ndr, "server_name", r->in.server_name);
10008                 }
10009                 ndr->depth--;
10010                 ndr_print_string(ndr, "account_name", r->in.account_name);
10011                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10012                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10013                 ndr_print_ptr(ndr, "credential", r->in.credential);
10014                 ndr->depth++;
10015                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10016                 ndr->depth--;
10017                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
10018                 ndr->depth++;
10019                 ndr_print_samr_Password(ndr, "new_password", r->in.new_password);
10020                 ndr->depth--;
10021                 ndr->depth--;
10022         }
10023         if (flags & NDR_OUT) {
10024                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
10025                 ndr->depth++;
10026                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10027                 ndr->depth++;
10028                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10029                 ndr->depth--;
10030                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10031                 ndr->depth--;
10032         }
10033         ndr->depth--;
10034 }
10035
10036 static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
10037 {
10038         if (flags & NDR_IN) {
10039                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10040                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10041                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10042                 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));
10043                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10044                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10045                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10046                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10047                 if (r->in.credential == NULL) {
10048                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10049                 }
10050                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10051                 if (r->in.return_authenticator == NULL) {
10052                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10053                 }
10054                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10055                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10056                 if (r->in.sequence_num == NULL) {
10057                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10058                 }
10059                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
10060                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10061         }
10062         if (flags & NDR_OUT) {
10063                 if (r->out.return_authenticator == NULL) {
10064                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10065                 }
10066                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10067                 if (r->out.sequence_num == NULL) {
10068                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10069                 }
10070                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
10071                 if (r->out.delta_enum_array == NULL) {
10072                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10073                 }
10074                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10075                 if (*r->out.delta_enum_array) {
10076                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10077                 }
10078                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10079         }
10080         return NDR_ERR_SUCCESS;
10081 }
10082
10083 static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
10084 {
10085         uint32_t _ptr_delta_enum_array;
10086         TALLOC_CTX *_mem_save_credential_0;
10087         TALLOC_CTX *_mem_save_return_authenticator_0;
10088         TALLOC_CTX *_mem_save_sequence_num_0;
10089         TALLOC_CTX *_mem_save_delta_enum_array_0;
10090         TALLOC_CTX *_mem_save_delta_enum_array_1;
10091         if (flags & NDR_IN) {
10092                 ZERO_STRUCT(r->out);
10093
10094                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10095                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10096                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10097                         return 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));
10098                 }
10099                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10100                 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));
10101                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10102                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10103                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10104                         return 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));
10105                 }
10106                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10107                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10108                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10109                         NDR_PULL_ALLOC(ndr, r->in.credential);
10110                 }
10111                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10112                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10113                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10114                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10115                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10116                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10117                 }
10118                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10119                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10120                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10121                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10122                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10123                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10124                         NDR_PULL_ALLOC(ndr, r->in.sequence_num);
10125                 }
10126                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
10127                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
10128                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
10129                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
10130                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10131                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10132                 *r->out.return_authenticator = *r->in.return_authenticator;
10133                 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
10134                 *r->out.sequence_num = *r->in.sequence_num;
10135                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10136                 ZERO_STRUCTP(r->out.delta_enum_array);
10137         }
10138         if (flags & NDR_OUT) {
10139                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10140                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10141                 }
10142                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10143                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10144                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10145                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10146                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10147                         NDR_PULL_ALLOC(ndr, r->out.sequence_num);
10148                 }
10149                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
10150                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
10151                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
10152                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
10153                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10154                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10155                 }
10156                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10157                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10158                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10159                 if (_ptr_delta_enum_array) {
10160                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
10161                 } else {
10162                         *r->out.delta_enum_array = NULL;
10163                 }
10164                 if (*r->out.delta_enum_array) {
10165                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
10166                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
10167                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10168                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
10169                 }
10170                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10171                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10172         }
10173         return NDR_ERR_SUCCESS;
10174 }
10175
10176 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
10177 {
10178         ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
10179         ndr->depth++;
10180         if (flags & NDR_SET_VALUES) {
10181                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10182         }
10183         if (flags & NDR_IN) {
10184                 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
10185                 ndr->depth++;
10186                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10187                 ndr_print_string(ndr, "computername", r->in.computername);
10188                 ndr_print_ptr(ndr, "credential", r->in.credential);
10189                 ndr->depth++;
10190                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10191                 ndr->depth--;
10192                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10193                 ndr->depth++;
10194                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10195                 ndr->depth--;
10196                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10197                 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
10198                 ndr->depth++;
10199                 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
10200                 ndr->depth--;
10201                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10202                 ndr->depth--;
10203         }
10204         if (flags & NDR_OUT) {
10205                 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
10206                 ndr->depth++;
10207                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10208                 ndr->depth++;
10209                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10210                 ndr->depth--;
10211                 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
10212                 ndr->depth++;
10213                 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
10214                 ndr->depth--;
10215                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10216                 ndr->depth++;
10217                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10218                 ndr->depth++;
10219                 if (*r->out.delta_enum_array) {
10220                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10221                 }
10222                 ndr->depth--;
10223                 ndr->depth--;
10224                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10225                 ndr->depth--;
10226         }
10227         ndr->depth--;
10228 }
10229
10230 static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
10231 {
10232         if (flags & NDR_IN) {
10233                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10234                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10235                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10236                 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));
10237                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10238                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10239                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10240                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10241                 if (r->in.credential == NULL) {
10242                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10243                 }
10244                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10245                 if (r->in.return_authenticator == NULL) {
10246                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10247                 }
10248                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10249                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10250                 if (r->in.sync_context == NULL) {
10251                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10252                 }
10253                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
10254                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10255         }
10256         if (flags & NDR_OUT) {
10257                 if (r->out.return_authenticator == NULL) {
10258                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10259                 }
10260                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10261                 if (r->out.sync_context == NULL) {
10262                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10263                 }
10264                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
10265                 if (r->out.delta_enum_array == NULL) {
10266                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10267                 }
10268                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10269                 if (*r->out.delta_enum_array) {
10270                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10271                 }
10272                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10273         }
10274         return NDR_ERR_SUCCESS;
10275 }
10276
10277 static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
10278 {
10279         uint32_t _ptr_delta_enum_array;
10280         TALLOC_CTX *_mem_save_credential_0;
10281         TALLOC_CTX *_mem_save_return_authenticator_0;
10282         TALLOC_CTX *_mem_save_sync_context_0;
10283         TALLOC_CTX *_mem_save_delta_enum_array_0;
10284         TALLOC_CTX *_mem_save_delta_enum_array_1;
10285         if (flags & NDR_IN) {
10286                 ZERO_STRUCT(r->out);
10287
10288                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10289                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10290                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10291                         return 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));
10292                 }
10293                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10294                 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));
10295                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10296                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10297                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10298                         return 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));
10299                 }
10300                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10301                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10302                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10303                         NDR_PULL_ALLOC(ndr, r->in.credential);
10304                 }
10305                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10306                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10307                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10308                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10309                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10310                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10311                 }
10312                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10313                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10314                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10315                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10316                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10317                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10318                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
10319                 }
10320                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10321                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
10322                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
10323                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10324                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10325                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10326                 *r->out.return_authenticator = *r->in.return_authenticator;
10327                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10328                 *r->out.sync_context = *r->in.sync_context;
10329                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10330                 ZERO_STRUCTP(r->out.delta_enum_array);
10331         }
10332         if (flags & NDR_OUT) {
10333                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10334                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10335                 }
10336                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10337                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10338                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10339                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10340                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10341                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
10342                 }
10343                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10344                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
10345                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
10346                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10347                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10348                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10349                 }
10350                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10351                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10352                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10353                 if (_ptr_delta_enum_array) {
10354                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
10355                 } else {
10356                         *r->out.delta_enum_array = NULL;
10357                 }
10358                 if (*r->out.delta_enum_array) {
10359                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
10360                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
10361                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10362                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
10363                 }
10364                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10365                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10366         }
10367         return NDR_ERR_SUCCESS;
10368 }
10369
10370 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
10371 {
10372         ndr_print_struct(ndr, name, "netr_DatabaseSync");
10373         ndr->depth++;
10374         if (flags & NDR_SET_VALUES) {
10375                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10376         }
10377         if (flags & NDR_IN) {
10378                 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
10379                 ndr->depth++;
10380                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10381                 ndr_print_string(ndr, "computername", r->in.computername);
10382                 ndr_print_ptr(ndr, "credential", r->in.credential);
10383                 ndr->depth++;
10384                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10385                 ndr->depth--;
10386                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10387                 ndr->depth++;
10388                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10389                 ndr->depth--;
10390                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10391                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
10392                 ndr->depth++;
10393                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
10394                 ndr->depth--;
10395                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10396                 ndr->depth--;
10397         }
10398         if (flags & NDR_OUT) {
10399                 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
10400                 ndr->depth++;
10401                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10402                 ndr->depth++;
10403                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10404                 ndr->depth--;
10405                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
10406                 ndr->depth++;
10407                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
10408                 ndr->depth--;
10409                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10410                 ndr->depth++;
10411                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10412                 ndr->depth++;
10413                 if (*r->out.delta_enum_array) {
10414                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10415                 }
10416                 ndr->depth--;
10417                 ndr->depth--;
10418                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10419                 ndr->depth--;
10420         }
10421         ndr->depth--;
10422 }
10423
10424 static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
10425 {
10426         if (flags & NDR_IN) {
10427                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10428                 if (r->in.logon_server) {
10429                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10430                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10431                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10432                         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));
10433                 }
10434                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10435                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10436                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10437                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10438                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10439                 if (r->in.return_authenticator == NULL) {
10440                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10441                 }
10442                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10443                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
10444                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
10445                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10446                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
10447         }
10448         if (flags & NDR_OUT) {
10449                 if (r->out.return_authenticator == NULL) {
10450                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10451                 }
10452                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10453                 if (r->out.buffer == NULL) {
10454                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10455                 }
10456                 {
10457                         struct ndr_push *_ndr_buffer;
10458                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10459                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10460                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
10461                 }
10462                 if (r->out.count_returned == NULL) {
10463                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10464                 }
10465                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
10466                 if (r->out.total_entries == NULL) {
10467                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10468                 }
10469                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
10470                 if (r->out.recordid == NULL) {
10471                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10472                 }
10473                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10474                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10475         }
10476         return NDR_ERR_SUCCESS;
10477 }
10478
10479 static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
10480 {
10481         uint32_t _ptr_logon_server;
10482         TALLOC_CTX *_mem_save_logon_server_0;
10483         TALLOC_CTX *_mem_save_return_authenticator_0;
10484         TALLOC_CTX *_mem_save_buffer_0;
10485         TALLOC_CTX *_mem_save_count_returned_0;
10486         TALLOC_CTX *_mem_save_total_entries_0;
10487         TALLOC_CTX *_mem_save_recordid_0;
10488         if (flags & NDR_IN) {
10489                 ZERO_STRUCT(r->out);
10490
10491                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10492                 if (_ptr_logon_server) {
10493                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10494                 } else {
10495                         r->in.logon_server = NULL;
10496                 }
10497                 if (r->in.logon_server) {
10498                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10499                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10500                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10501                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10502                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10503                                 return 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));
10504                         }
10505                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10506                         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));
10507                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10508                 }
10509                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10510                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10511                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10512                         return 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));
10513                 }
10514                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10515                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10516                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10517                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10518                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10519                 }
10520                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10521                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10522                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10523                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10524                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
10525                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
10526                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10527                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
10528                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10529                 *r->out.return_authenticator = *r->in.return_authenticator;
10530                 NDR_PULL_ALLOC(ndr, r->out.buffer);
10531                 ZERO_STRUCTP(r->out.buffer);
10532                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
10533                 ZERO_STRUCTP(r->out.count_returned);
10534                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
10535                 ZERO_STRUCTP(r->out.total_entries);
10536                 NDR_PULL_ALLOC(ndr, r->out.recordid);
10537                 ZERO_STRUCTP(r->out.recordid);
10538         }
10539         if (flags & NDR_OUT) {
10540                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10541                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10542                 }
10543                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10544                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10545                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10546                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10547                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10548                         NDR_PULL_ALLOC(ndr, r->out.buffer);
10549                 }
10550                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
10551                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
10552                 {
10553                         struct ndr_pull *_ndr_buffer;
10554                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10555                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10556                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
10557                 }
10558                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
10559                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10560                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
10561                 }
10562                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
10563                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
10564                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
10565                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
10566                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10567                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
10568                 }
10569                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
10570                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
10571                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
10572                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
10573                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10574                         NDR_PULL_ALLOC(ndr, r->out.recordid);
10575                 }
10576                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10577                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
10578                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10579                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
10580                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10581         }
10582         return NDR_ERR_SUCCESS;
10583 }
10584
10585 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
10586 {
10587         ndr_print_struct(ndr, name, "netr_AccountDeltas");
10588         ndr->depth++;
10589         if (flags & NDR_SET_VALUES) {
10590                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10591         }
10592         if (flags & NDR_IN) {
10593                 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
10594                 ndr->depth++;
10595                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10596                 ndr->depth++;
10597                 if (r->in.logon_server) {
10598                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10599                 }
10600                 ndr->depth--;
10601                 ndr_print_string(ndr, "computername", r->in.computername);
10602                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10603                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10604                 ndr->depth++;
10605                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10606                 ndr->depth--;
10607                 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
10608                 ndr_print_uint32(ndr, "count", r->in.count);
10609                 ndr_print_uint32(ndr, "level", r->in.level);
10610                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
10611                 ndr->depth--;
10612         }
10613         if (flags & NDR_OUT) {
10614                 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
10615                 ndr->depth++;
10616                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10617                 ndr->depth++;
10618                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10619                 ndr->depth--;
10620                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
10621                 ndr->depth++;
10622                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
10623                 ndr->depth--;
10624                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
10625                 ndr->depth++;
10626                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
10627                 ndr->depth--;
10628                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
10629                 ndr->depth++;
10630                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
10631                 ndr->depth--;
10632                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
10633                 ndr->depth++;
10634                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
10635                 ndr->depth--;
10636                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10637                 ndr->depth--;
10638         }
10639         ndr->depth--;
10640 }
10641
10642 static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
10643 {
10644         if (flags & NDR_IN) {
10645                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10646                 if (r->in.logon_server) {
10647                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10648                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10649                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10650                         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));
10651                 }
10652                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10653                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10654                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10655                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10656                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10657                 if (r->in.return_authenticator == NULL) {
10658                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10659                 }
10660                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10661                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
10662                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10663                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
10664                 if (r->in.recordid == NULL) {
10665                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10666                 }
10667                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
10668         }
10669         if (flags & NDR_OUT) {
10670                 if (r->out.return_authenticator == NULL) {
10671                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10672                 }
10673                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10674                 if (r->out.buffer == NULL) {
10675                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10676                 }
10677                 {
10678                         struct ndr_push *_ndr_buffer;
10679                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10680                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10681                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
10682                 }
10683                 if (r->out.count_returned == NULL) {
10684                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10685                 }
10686                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
10687                 if (r->out.total_entries == NULL) {
10688                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10689                 }
10690                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
10691                 if (r->out.next_reference == NULL) {
10692                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10693                 }
10694                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
10695                 if (r->out.recordid == NULL) {
10696                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10697                 }
10698                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10699                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10700         }
10701         return NDR_ERR_SUCCESS;
10702 }
10703
10704 static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
10705 {
10706         uint32_t _ptr_logon_server;
10707         TALLOC_CTX *_mem_save_logon_server_0;
10708         TALLOC_CTX *_mem_save_return_authenticator_0;
10709         TALLOC_CTX *_mem_save_buffer_0;
10710         TALLOC_CTX *_mem_save_count_returned_0;
10711         TALLOC_CTX *_mem_save_total_entries_0;
10712         TALLOC_CTX *_mem_save_next_reference_0;
10713         TALLOC_CTX *_mem_save_recordid_0;
10714         if (flags & NDR_IN) {
10715                 ZERO_STRUCT(r->out);
10716
10717                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10718                 if (_ptr_logon_server) {
10719                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10720                 } else {
10721                         r->in.logon_server = NULL;
10722                 }
10723                 if (r->in.logon_server) {
10724                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10725                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10726                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10727                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10728                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10729                                 return 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));
10730                         }
10731                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10732                         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));
10733                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10734                 }
10735                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10736                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10737                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10738                         return 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));
10739                 }
10740                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10741                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10742                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10743                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10744                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10745                 }
10746                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10747                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10748                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10749                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10750                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
10751                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10752                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
10753                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10754                         NDR_PULL_ALLOC(ndr, r->in.recordid);
10755                 }
10756                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10757                 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
10758                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
10759                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
10760                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10761                 *r->out.return_authenticator = *r->in.return_authenticator;
10762                 NDR_PULL_ALLOC(ndr, r->out.buffer);
10763                 ZERO_STRUCTP(r->out.buffer);
10764                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
10765                 ZERO_STRUCTP(r->out.count_returned);
10766                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
10767                 ZERO_STRUCTP(r->out.total_entries);
10768                 NDR_PULL_ALLOC(ndr, r->out.next_reference);
10769                 ZERO_STRUCTP(r->out.next_reference);
10770                 NDR_PULL_ALLOC(ndr, r->out.recordid);
10771                 *r->out.recordid = *r->in.recordid;
10772         }
10773         if (flags & NDR_OUT) {
10774                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10775                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10776                 }
10777                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10778                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10779                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10780                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10781                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10782                         NDR_PULL_ALLOC(ndr, r->out.buffer);
10783                 }
10784                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
10785                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
10786                 {
10787                         struct ndr_pull *_ndr_buffer;
10788                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10789                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10790                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
10791                 }
10792                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
10793                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10794                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
10795                 }
10796                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
10797                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
10798                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
10799                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
10800                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10801                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
10802                 }
10803                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
10804                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
10805                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
10806                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
10807                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10808                         NDR_PULL_ALLOC(ndr, r->out.next_reference);
10809                 }
10810                 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
10811                 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
10812                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
10813                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
10814                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10815                         NDR_PULL_ALLOC(ndr, r->out.recordid);
10816                 }
10817                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10818                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
10819                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10820                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
10821                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10822         }
10823         return NDR_ERR_SUCCESS;
10824 }
10825
10826 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
10827 {
10828         ndr_print_struct(ndr, name, "netr_AccountSync");
10829         ndr->depth++;
10830         if (flags & NDR_SET_VALUES) {
10831                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10832         }
10833         if (flags & NDR_IN) {
10834                 ndr_print_struct(ndr, "in", "netr_AccountSync");
10835                 ndr->depth++;
10836                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10837                 ndr->depth++;
10838                 if (r->in.logon_server) {
10839                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10840                 }
10841                 ndr->depth--;
10842                 ndr_print_string(ndr, "computername", r->in.computername);
10843                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10844                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10845                 ndr->depth++;
10846                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10847                 ndr->depth--;
10848                 ndr_print_uint32(ndr, "reference", r->in.reference);
10849                 ndr_print_uint32(ndr, "level", r->in.level);
10850                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
10851                 ndr_print_ptr(ndr, "recordid", r->in.recordid);
10852                 ndr->depth++;
10853                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
10854                 ndr->depth--;
10855                 ndr->depth--;
10856         }
10857         if (flags & NDR_OUT) {
10858                 ndr_print_struct(ndr, "out", "netr_AccountSync");
10859                 ndr->depth++;
10860                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10861                 ndr->depth++;
10862                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10863                 ndr->depth--;
10864                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
10865                 ndr->depth++;
10866                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
10867                 ndr->depth--;
10868                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
10869                 ndr->depth++;
10870                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
10871                 ndr->depth--;
10872                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
10873                 ndr->depth++;
10874                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
10875                 ndr->depth--;
10876                 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
10877                 ndr->depth++;
10878                 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
10879                 ndr->depth--;
10880                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
10881                 ndr->depth++;
10882                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
10883                 ndr->depth--;
10884                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10885                 ndr->depth--;
10886         }
10887         ndr->depth--;
10888 }
10889
10890 static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
10891 {
10892         if (flags & NDR_IN) {
10893                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10894                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10895                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10896                 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));
10897                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
10898                 if (r->in.domainname) {
10899                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10900                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10901                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10902                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10903                 }
10904         }
10905         if (flags & NDR_OUT) {
10906                 if (r->out.dcname == NULL) {
10907                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10908                 }
10909                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
10910                 if (*r->out.dcname) {
10911                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10912                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10913                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10914                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10915                 }
10916                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10917         }
10918         return NDR_ERR_SUCCESS;
10919 }
10920
10921 static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
10922 {
10923         uint32_t _ptr_domainname;
10924         uint32_t _ptr_dcname;
10925         TALLOC_CTX *_mem_save_domainname_0;
10926         TALLOC_CTX *_mem_save_dcname_0;
10927         TALLOC_CTX *_mem_save_dcname_1;
10928         if (flags & NDR_IN) {
10929                 ZERO_STRUCT(r->out);
10930
10931                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10932                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10933                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10934                         return 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));
10935                 }
10936                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10937                 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));
10938                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
10939                 if (_ptr_domainname) {
10940                         NDR_PULL_ALLOC(ndr, r->in.domainname);
10941                 } else {
10942                         r->in.domainname = NULL;
10943                 }
10944                 if (r->in.domainname) {
10945                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10946                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
10947                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
10948                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
10949                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
10950                                 return 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));
10951                         }
10952                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
10953                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
10954                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
10955                 }
10956                 NDR_PULL_ALLOC(ndr, r->out.dcname);
10957                 ZERO_STRUCTP(r->out.dcname);
10958         }
10959         if (flags & NDR_OUT) {
10960                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10961                         NDR_PULL_ALLOC(ndr, r->out.dcname);
10962                 }
10963                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10964                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
10965                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
10966                 if (_ptr_dcname) {
10967                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
10968                 } else {
10969                         *r->out.dcname = NULL;
10970                 }
10971                 if (*r->out.dcname) {
10972                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
10973                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
10974                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
10975                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
10976                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
10977                                 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));
10978                         }
10979                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
10980                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
10981                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
10982                 }
10983                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
10984                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10985         }
10986         return NDR_ERR_SUCCESS;
10987 }
10988
10989 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
10990 {
10991         ndr_print_struct(ndr, name, "netr_GetDcName");
10992         ndr->depth++;
10993         if (flags & NDR_SET_VALUES) {
10994                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10995         }
10996         if (flags & NDR_IN) {
10997                 ndr_print_struct(ndr, "in", "netr_GetDcName");
10998                 ndr->depth++;
10999                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11000                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
11001                 ndr->depth++;
11002                 if (r->in.domainname) {
11003                         ndr_print_string(ndr, "domainname", r->in.domainname);
11004                 }
11005                 ndr->depth--;
11006                 ndr->depth--;
11007         }
11008         if (flags & NDR_OUT) {
11009                 ndr_print_struct(ndr, "out", "netr_GetDcName");
11010                 ndr->depth++;
11011                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
11012                 ndr->depth++;
11013                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
11014                 ndr->depth++;
11015                 if (*r->out.dcname) {
11016                         ndr_print_string(ndr, "dcname", *r->out.dcname);
11017                 }
11018                 ndr->depth--;
11019                 ndr->depth--;
11020                 ndr_print_WERROR(ndr, "result", r->out.result);
11021                 ndr->depth--;
11022         }
11023         ndr->depth--;
11024 }
11025
11026 static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
11027 {
11028         if (flags & NDR_IN) {
11029                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11030                 if (r->in.logon_server) {
11031                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11032                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11033                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11034                         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));
11035                 }
11036                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
11037                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11038         }
11039         if (flags & NDR_OUT) {
11040                 if (r->out.info == NULL) {
11041                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11042                 }
11043                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
11044                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11045                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11046         }
11047         return NDR_ERR_SUCCESS;
11048 }
11049
11050 static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
11051 {
11052         uint32_t _ptr_logon_server;
11053         TALLOC_CTX *_mem_save_logon_server_0;
11054         TALLOC_CTX *_mem_save_info_0;
11055         if (flags & NDR_IN) {
11056                 ZERO_STRUCT(r->out);
11057
11058                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11059                 if (_ptr_logon_server) {
11060                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
11061                 } else {
11062                         r->in.logon_server = NULL;
11063                 }
11064                 if (r->in.logon_server) {
11065                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11066                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11067                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11068                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11069                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11070                                 return 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));
11071                         }
11072                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11073                         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));
11074                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11075                 }
11076                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
11077                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11078                 NDR_PULL_ALLOC(ndr, r->out.info);
11079                 ZERO_STRUCTP(r->out.info);
11080         }
11081         if (flags & NDR_OUT) {
11082                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11083                         NDR_PULL_ALLOC(ndr, r->out.info);
11084                 }
11085                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11086                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11087                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
11088                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11089                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11090                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11091         }
11092         return NDR_ERR_SUCCESS;
11093 }
11094
11095 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
11096 {
11097         ndr_print_struct(ndr, name, "netr_LogonControl");
11098         ndr->depth++;
11099         if (flags & NDR_SET_VALUES) {
11100                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11101         }
11102         if (flags & NDR_IN) {
11103                 ndr_print_struct(ndr, "in", "netr_LogonControl");
11104                 ndr->depth++;
11105                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11106                 ndr->depth++;
11107                 if (r->in.logon_server) {
11108                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11109                 }
11110                 ndr->depth--;
11111                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
11112                 ndr_print_uint32(ndr, "level", r->in.level);
11113                 ndr->depth--;
11114         }
11115         if (flags & NDR_OUT) {
11116                 ndr_print_struct(ndr, "out", "netr_LogonControl");
11117                 ndr->depth++;
11118                 ndr_print_ptr(ndr, "info", r->out.info);
11119                 ndr->depth++;
11120                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
11121                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "info", r->out.info);
11122                 ndr->depth--;
11123                 ndr_print_WERROR(ndr, "result", r->out.result);
11124                 ndr->depth--;
11125         }
11126         ndr->depth--;
11127 }
11128
11129 static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
11130 {
11131         if (flags & NDR_IN) {
11132                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11133                 if (r->in.logon_server) {
11134                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11135                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11136                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11137                         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));
11138                 }
11139                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
11140                 if (r->in.domainname) {
11141                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
11142                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11143                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
11144                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11145                 }
11146         }
11147         if (flags & NDR_OUT) {
11148                 if (r->out.dcname == NULL) {
11149                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11150                 }
11151                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
11152                 if (*r->out.dcname) {
11153                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
11154                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11155                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
11156                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11157                 }
11158                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11159         }
11160         return NDR_ERR_SUCCESS;
11161 }
11162
11163 static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
11164 {
11165         uint32_t _ptr_logon_server;
11166         uint32_t _ptr_domainname;
11167         uint32_t _ptr_dcname;
11168         TALLOC_CTX *_mem_save_logon_server_0;
11169         TALLOC_CTX *_mem_save_domainname_0;
11170         TALLOC_CTX *_mem_save_dcname_0;
11171         TALLOC_CTX *_mem_save_dcname_1;
11172         if (flags & NDR_IN) {
11173                 ZERO_STRUCT(r->out);
11174
11175                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11176                 if (_ptr_logon_server) {
11177                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
11178                 } else {
11179                         r->in.logon_server = NULL;
11180                 }
11181                 if (r->in.logon_server) {
11182                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11183                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11184                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11185                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11186                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11187                                 return 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));
11188                         }
11189                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11190                         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));
11191                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11192                 }
11193                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
11194                 if (_ptr_domainname) {
11195                         NDR_PULL_ALLOC(ndr, r->in.domainname);
11196                 } else {
11197                         r->in.domainname = NULL;
11198                 }
11199                 if (r->in.domainname) {
11200                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11201                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
11202                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
11203                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
11204                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
11205                                 return 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));
11206                         }
11207                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
11208                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
11209                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
11210                 }
11211                 NDR_PULL_ALLOC(ndr, r->out.dcname);
11212                 ZERO_STRUCTP(r->out.dcname);
11213         }
11214         if (flags & NDR_OUT) {
11215                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11216                         NDR_PULL_ALLOC(ndr, r->out.dcname);
11217                 }
11218                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11219                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
11220                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
11221                 if (_ptr_dcname) {
11222                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
11223                 } else {
11224                         *r->out.dcname = NULL;
11225                 }
11226                 if (*r->out.dcname) {
11227                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
11228                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
11229                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
11230                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
11231                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
11232                                 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));
11233                         }
11234                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
11235                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
11236                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
11237                 }
11238                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
11239                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11240         }
11241         return NDR_ERR_SUCCESS;
11242 }
11243
11244 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
11245 {
11246         ndr_print_struct(ndr, name, "netr_GetAnyDCName");
11247         ndr->depth++;
11248         if (flags & NDR_SET_VALUES) {
11249                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11250         }
11251         if (flags & NDR_IN) {
11252                 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
11253                 ndr->depth++;
11254                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11255                 ndr->depth++;
11256                 if (r->in.logon_server) {
11257                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11258                 }
11259                 ndr->depth--;
11260                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
11261                 ndr->depth++;
11262                 if (r->in.domainname) {
11263                         ndr_print_string(ndr, "domainname", r->in.domainname);
11264                 }
11265                 ndr->depth--;
11266                 ndr->depth--;
11267         }
11268         if (flags & NDR_OUT) {
11269                 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
11270                 ndr->depth++;
11271                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
11272                 ndr->depth++;
11273                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
11274                 ndr->depth++;
11275                 if (*r->out.dcname) {
11276                         ndr_print_string(ndr, "dcname", *r->out.dcname);
11277                 }
11278                 ndr->depth--;
11279                 ndr->depth--;
11280                 ndr_print_WERROR(ndr, "result", r->out.result);
11281                 ndr->depth--;
11282         }
11283         ndr->depth--;
11284 }
11285
11286 static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
11287 {
11288         if (flags & NDR_IN) {
11289                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11290                 if (r->in.logon_server) {
11291                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11292                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11293                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11294                         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));
11295                 }
11296                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
11297                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11298                 if (r->in.data == NULL) {
11299                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11300                 }
11301                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
11302                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
11303         }
11304         if (flags & NDR_OUT) {
11305                 if (r->out.query == NULL) {
11306                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11307                 }
11308                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
11309                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11310                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11311         }
11312         return NDR_ERR_SUCCESS;
11313 }
11314
11315 static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
11316 {
11317         uint32_t _ptr_logon_server;
11318         TALLOC_CTX *_mem_save_logon_server_0;
11319         TALLOC_CTX *_mem_save_data_0;
11320         TALLOC_CTX *_mem_save_query_0;
11321         if (flags & NDR_IN) {
11322                 ZERO_STRUCT(r->out);
11323
11324                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11325                 if (_ptr_logon_server) {
11326                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
11327                 } else {
11328                         r->in.logon_server = NULL;
11329                 }
11330                 if (r->in.logon_server) {
11331                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11332                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11333                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11334                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11335                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11336                                 return 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));
11337                         }
11338                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11339                         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));
11340                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11341                 }
11342                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
11343                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11344                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11345                         NDR_PULL_ALLOC(ndr, r->in.data);
11346                 }
11347                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
11348                 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
11349                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
11350                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
11351                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
11352                 NDR_PULL_ALLOC(ndr, r->out.query);
11353                 ZERO_STRUCTP(r->out.query);
11354         }
11355         if (flags & NDR_OUT) {
11356                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11357                         NDR_PULL_ALLOC(ndr, r->out.query);
11358                 }
11359                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
11360                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
11361                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
11362                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11363                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
11364                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11365         }
11366         return NDR_ERR_SUCCESS;
11367 }
11368
11369 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
11370 {
11371         ndr_print_struct(ndr, name, "netr_LogonControl2");
11372         ndr->depth++;
11373         if (flags & NDR_SET_VALUES) {
11374                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11375         }
11376         if (flags & NDR_IN) {
11377                 ndr_print_struct(ndr, "in", "netr_LogonControl2");
11378                 ndr->depth++;
11379                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11380                 ndr->depth++;
11381                 if (r->in.logon_server) {
11382                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11383                 }
11384                 ndr->depth--;
11385                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
11386                 ndr_print_uint32(ndr, "level", r->in.level);
11387                 ndr_print_ptr(ndr, "data", r->in.data);
11388                 ndr->depth++;
11389                 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
11390                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
11391                 ndr->depth--;
11392                 ndr->depth--;
11393         }
11394         if (flags & NDR_OUT) {
11395                 ndr_print_struct(ndr, "out", "netr_LogonControl2");
11396                 ndr->depth++;
11397                 ndr_print_ptr(ndr, "query", r->out.query);
11398                 ndr->depth++;
11399                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
11400                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
11401                 ndr->depth--;
11402                 ndr_print_WERROR(ndr, "result", r->out.result);
11403                 ndr->depth--;
11404         }
11405         ndr->depth--;
11406 }
11407
11408 static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
11409 {
11410         if (flags & NDR_IN) {
11411                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11412                 if (r->in.server_name) {
11413                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11414                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11415                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11416                         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));
11417                 }
11418                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11419                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11420                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11421                 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));
11422                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11423                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11424                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11425                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11426                 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));
11427                 if (r->in.credentials == NULL) {
11428                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11429                 }
11430                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11431                 if (r->in.negotiate_flags == NULL) {
11432                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11433                 }
11434                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
11435         }
11436         if (flags & NDR_OUT) {
11437                 if (r->out.return_credentials == NULL) {
11438                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11439                 }
11440                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
11441                 if (r->out.negotiate_flags == NULL) {
11442                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11443                 }
11444                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
11445                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11446         }
11447         return NDR_ERR_SUCCESS;
11448 }
11449
11450 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
11451 {
11452         uint32_t _ptr_server_name;
11453         TALLOC_CTX *_mem_save_server_name_0;
11454         TALLOC_CTX *_mem_save_credentials_0;
11455         TALLOC_CTX *_mem_save_return_credentials_0;
11456         TALLOC_CTX *_mem_save_negotiate_flags_0;
11457         if (flags & NDR_IN) {
11458                 ZERO_STRUCT(r->out);
11459
11460                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11461                 if (_ptr_server_name) {
11462                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11463                 } else {
11464                         r->in.server_name = NULL;
11465                 }
11466                 if (r->in.server_name) {
11467                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11468                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11469                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11470                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11471                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11472                                 return 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));
11473                         }
11474                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11475                         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));
11476                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11477                 }
11478                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11479                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11480                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11481                         return 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));
11482                 }
11483                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11484                 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));
11485                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11486                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11487                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11488                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11489                         return 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));
11490                 }
11491                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11492                 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));
11493                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11494                         NDR_PULL_ALLOC(ndr, r->in.credentials);
11495                 }
11496                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11497                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
11498                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11499                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11500                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11501                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
11502                 }
11503                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11504                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11505                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
11506                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11507                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
11508                 ZERO_STRUCTP(r->out.return_credentials);
11509                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11510                 *r->out.negotiate_flags = *r->in.negotiate_flags;
11511         }
11512         if (flags & NDR_OUT) {
11513                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11514                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
11515                 }
11516                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11517                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
11518                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
11519                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11520                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11521                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11522                 }
11523                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11524                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11525                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
11526                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11527                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11528         }
11529         return NDR_ERR_SUCCESS;
11530 }
11531
11532 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
11533 {
11534         ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
11535         ndr->depth++;
11536         if (flags & NDR_SET_VALUES) {
11537                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11538         }
11539         if (flags & NDR_IN) {
11540                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
11541                 ndr->depth++;
11542                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11543                 ndr->depth++;
11544                 if (r->in.server_name) {
11545                         ndr_print_string(ndr, "server_name", r->in.server_name);
11546                 }
11547                 ndr->depth--;
11548                 ndr_print_string(ndr, "account_name", r->in.account_name);
11549                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
11550                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11551                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
11552                 ndr->depth++;
11553                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
11554                 ndr->depth--;
11555                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
11556                 ndr->depth++;
11557                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
11558                 ndr->depth--;
11559                 ndr->depth--;
11560         }
11561         if (flags & NDR_OUT) {
11562                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
11563                 ndr->depth++;
11564                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
11565                 ndr->depth++;
11566                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
11567                 ndr->depth--;
11568                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
11569                 ndr->depth++;
11570                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
11571                 ndr->depth--;
11572                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11573                 ndr->depth--;
11574         }
11575         ndr->depth--;
11576 }
11577
11578 static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
11579 {
11580         if (flags & NDR_IN) {
11581                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11582                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11583                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11584                 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));
11585                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11586                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11587                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11588                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11589                 if (r->in.credential == NULL) {
11590                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11591                 }
11592                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11593                 if (r->in.return_authenticator == NULL) {
11594                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11595                 }
11596                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11597                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
11598                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.restart_state));
11599                 if (r->in.sync_context == NULL) {
11600                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11601                 }
11602                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
11603                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
11604         }
11605         if (flags & NDR_OUT) {
11606                 if (r->out.return_authenticator == NULL) {
11607                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11608                 }
11609                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11610                 if (r->out.sync_context == NULL) {
11611                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11612                 }
11613                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
11614                 if (r->out.delta_enum_array == NULL) {
11615                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11616                 }
11617                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
11618                 if (*r->out.delta_enum_array) {
11619                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
11620                 }
11621                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11622         }
11623         return NDR_ERR_SUCCESS;
11624 }
11625
11626 static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
11627 {
11628         uint32_t _ptr_delta_enum_array;
11629         TALLOC_CTX *_mem_save_credential_0;
11630         TALLOC_CTX *_mem_save_return_authenticator_0;
11631         TALLOC_CTX *_mem_save_sync_context_0;
11632         TALLOC_CTX *_mem_save_delta_enum_array_0;
11633         TALLOC_CTX *_mem_save_delta_enum_array_1;
11634         if (flags & NDR_IN) {
11635                 ZERO_STRUCT(r->out);
11636
11637                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11638                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11639                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11640                         return 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));
11641                 }
11642                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11643                 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));
11644                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
11645                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
11646                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
11647                         return 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));
11648                 }
11649                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
11650                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
11651                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11652                         NDR_PULL_ALLOC(ndr, r->in.credential);
11653                 }
11654                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
11655                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
11656                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11657                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
11658                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11659                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
11660                 }
11661                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11662                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11663                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11664                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11665                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
11666                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.restart_state));
11667                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11668                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
11669                 }
11670                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
11671                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
11672                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
11673                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
11674                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
11675                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11676                 *r->out.return_authenticator = *r->in.return_authenticator;
11677                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
11678                 *r->out.sync_context = *r->in.sync_context;
11679                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11680                 ZERO_STRUCTP(r->out.delta_enum_array);
11681         }
11682         if (flags & NDR_OUT) {
11683                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11684                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11685                 }
11686                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11687                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11688                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11689                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11690                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11691                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
11692                 }
11693                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
11694                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
11695                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
11696                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
11697                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11698                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11699                 }
11700                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11701                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
11702                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
11703                 if (_ptr_delta_enum_array) {
11704                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
11705                 } else {
11706                         *r->out.delta_enum_array = NULL;
11707                 }
11708                 if (*r->out.delta_enum_array) {
11709                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
11710                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
11711                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
11712                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
11713                 }
11714                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
11715                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11716         }
11717         return NDR_ERR_SUCCESS;
11718 }
11719
11720 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
11721 {
11722         ndr_print_struct(ndr, name, "netr_DatabaseSync2");
11723         ndr->depth++;
11724         if (flags & NDR_SET_VALUES) {
11725                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11726         }
11727         if (flags & NDR_IN) {
11728                 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
11729                 ndr->depth++;
11730                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11731                 ndr_print_string(ndr, "computername", r->in.computername);
11732                 ndr_print_ptr(ndr, "credential", r->in.credential);
11733                 ndr->depth++;
11734                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
11735                 ndr->depth--;
11736                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
11737                 ndr->depth++;
11738                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
11739                 ndr->depth--;
11740                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
11741                 ndr_print_uint16(ndr, "restart_state", r->in.restart_state);
11742                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
11743                 ndr->depth++;
11744                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
11745                 ndr->depth--;
11746                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
11747                 ndr->depth--;
11748         }
11749         if (flags & NDR_OUT) {
11750                 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
11751                 ndr->depth++;
11752                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
11753                 ndr->depth++;
11754                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
11755                 ndr->depth--;
11756                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
11757                 ndr->depth++;
11758                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
11759                 ndr->depth--;
11760                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
11761                 ndr->depth++;
11762                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
11763                 ndr->depth++;
11764                 if (*r->out.delta_enum_array) {
11765                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
11766                 }
11767                 ndr->depth--;
11768                 ndr->depth--;
11769                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11770                 ndr->depth--;
11771         }
11772         ndr->depth--;
11773 }
11774
11775 static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
11776 {
11777         if (flags & NDR_IN) {
11778                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11779                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11780                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11781                 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));
11782                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11783                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11784                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11785                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11786                 if (r->in.credential == NULL) {
11787                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11788                 }
11789                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11790                 if (r->in.return_authenticator == NULL) {
11791                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11792                 }
11793                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11794                 {
11795                         struct ndr_push *_ndr_change_log_entry;
11796                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_change_log_entry, 4, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags)));
11797                         NDR_CHECK(ndr_push_netr_ChangeLogEntry(_ndr_change_log_entry, NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
11798                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_change_log_entry, 4, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags)));
11799                 }
11800                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags)));
11801         }
11802         if (flags & NDR_OUT) {
11803                 if (r->out.return_authenticator == NULL) {
11804                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11805                 }
11806                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11807                 if (r->out.delta_enum_array == NULL) {
11808                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11809                 }
11810                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
11811                 if (*r->out.delta_enum_array) {
11812                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
11813                 }
11814                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11815         }
11816         return NDR_ERR_SUCCESS;
11817 }
11818
11819 static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
11820 {
11821         uint32_t _ptr_delta_enum_array;
11822         TALLOC_CTX *_mem_save_credential_0;
11823         TALLOC_CTX *_mem_save_return_authenticator_0;
11824         TALLOC_CTX *_mem_save_delta_enum_array_0;
11825         TALLOC_CTX *_mem_save_delta_enum_array_1;
11826         if (flags & NDR_IN) {
11827                 ZERO_STRUCT(r->out);
11828
11829                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11830                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11831                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11832                         return 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));
11833                 }
11834                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11835                 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));
11836                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
11837                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
11838                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
11839                         return 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));
11840                 }
11841                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
11842                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
11843                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11844                         NDR_PULL_ALLOC(ndr, r->in.credential);
11845                 }
11846                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
11847                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
11848                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11849                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
11850                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11851                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
11852                 }
11853                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11854                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11855                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11856                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11857                 {
11858                         struct ndr_pull *_ndr_change_log_entry;
11859                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_change_log_entry, 4, r->in.change_log_entry_size));
11860                         NDR_CHECK(ndr_pull_netr_ChangeLogEntry(_ndr_change_log_entry, NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
11861                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_change_log_entry, 4, r->in.change_log_entry_size));
11862                 }
11863                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
11864                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11865                 *r->out.return_authenticator = *r->in.return_authenticator;
11866                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11867                 ZERO_STRUCTP(r->out.delta_enum_array);
11868         }
11869         if (flags & NDR_OUT) {
11870                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11871                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11872                 }
11873                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11874                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11875                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11876                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11877                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11878                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11879                 }
11880                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11881                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
11882                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
11883                 if (_ptr_delta_enum_array) {
11884                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
11885                 } else {
11886                         *r->out.delta_enum_array = NULL;
11887                 }
11888                 if (*r->out.delta_enum_array) {
11889                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
11890                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
11891                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
11892                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
11893                 }
11894                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
11895                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11896         }
11897         return NDR_ERR_SUCCESS;
11898 }
11899
11900 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
11901 {
11902         ndr_print_struct(ndr, name, "netr_DatabaseRedo");
11903         ndr->depth++;
11904         if (flags & NDR_SET_VALUES) {
11905                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11906         }
11907         if (flags & NDR_IN) {
11908                 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
11909                 ndr->depth++;
11910                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11911                 ndr_print_string(ndr, "computername", r->in.computername);
11912                 ndr_print_ptr(ndr, "credential", r->in.credential);
11913                 ndr->depth++;
11914                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
11915                 ndr->depth--;
11916                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
11917                 ndr->depth++;
11918                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
11919                 ndr->depth--;
11920                 ndr_print_netr_ChangeLogEntry(ndr, "change_log_entry", &r->in.change_log_entry);
11921                 ndr_print_uint32(ndr, "change_log_entry_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->iconv_convenience, ndr->flags):r->in.change_log_entry_size);
11922                 ndr->depth--;
11923         }
11924         if (flags & NDR_OUT) {
11925                 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
11926                 ndr->depth++;
11927                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
11928                 ndr->depth++;
11929                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
11930                 ndr->depth--;
11931                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
11932                 ndr->depth++;
11933                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
11934                 ndr->depth++;
11935                 if (*r->out.delta_enum_array) {
11936                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
11937                 }
11938                 ndr->depth--;
11939                 ndr->depth--;
11940                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11941                 ndr->depth--;
11942         }
11943         ndr->depth--;
11944 }
11945
11946 static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
11947 {
11948         if (flags & NDR_IN) {
11949                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11950                 if (r->in.logon_server) {
11951                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11952                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11953                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11954                         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));
11955                 }
11956                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
11957                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11958                 if (r->in.data == NULL) {
11959                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11960                 }
11961                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
11962                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
11963         }
11964         if (flags & NDR_OUT) {
11965                 if (r->out.query == NULL) {
11966                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11967                 }
11968                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
11969                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11970                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11971         }
11972         return NDR_ERR_SUCCESS;
11973 }
11974
11975 static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
11976 {
11977         uint32_t _ptr_logon_server;
11978         TALLOC_CTX *_mem_save_logon_server_0;
11979         TALLOC_CTX *_mem_save_data_0;
11980         TALLOC_CTX *_mem_save_query_0;
11981         if (flags & NDR_IN) {
11982                 ZERO_STRUCT(r->out);
11983
11984                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11985                 if (_ptr_logon_server) {
11986                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
11987                 } else {
11988                         r->in.logon_server = NULL;
11989                 }
11990                 if (r->in.logon_server) {
11991                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11992                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11993                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11994                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11995                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11996                                 return 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));
11997                         }
11998                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11999                         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));
12000                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
12001                 }
12002                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
12003                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12004                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12005                         NDR_PULL_ALLOC(ndr, r->in.data);
12006                 }
12007                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
12008                 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
12009                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
12010                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
12011                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
12012                 NDR_PULL_ALLOC(ndr, r->out.query);
12013                 ZERO_STRUCTP(r->out.query);
12014         }
12015         if (flags & NDR_OUT) {
12016                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12017                         NDR_PULL_ALLOC(ndr, r->out.query);
12018                 }
12019                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
12020                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
12021                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
12022                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
12023                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
12024                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12025         }
12026         return NDR_ERR_SUCCESS;
12027 }
12028
12029 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
12030 {
12031         ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
12032         ndr->depth++;
12033         if (flags & NDR_SET_VALUES) {
12034                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12035         }
12036         if (flags & NDR_IN) {
12037                 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
12038                 ndr->depth++;
12039                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
12040                 ndr->depth++;
12041                 if (r->in.logon_server) {
12042                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
12043                 }
12044                 ndr->depth--;
12045                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
12046                 ndr_print_uint32(ndr, "level", r->in.level);
12047                 ndr_print_ptr(ndr, "data", r->in.data);
12048                 ndr->depth++;
12049                 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
12050                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
12051                 ndr->depth--;
12052                 ndr->depth--;
12053         }
12054         if (flags & NDR_OUT) {
12055                 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
12056                 ndr->depth++;
12057                 ndr_print_ptr(ndr, "query", r->out.query);
12058                 ndr->depth++;
12059                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
12060                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
12061                 ndr->depth--;
12062                 ndr_print_WERROR(ndr, "result", r->out.result);
12063                 ndr->depth--;
12064         }
12065         ndr->depth--;
12066 }
12067
12068 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
12069 {
12070         if (flags & NDR_IN) {
12071                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12072                 if (r->in.server_name) {
12073                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12074                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12075                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12076                         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));
12077                 }
12078         }
12079         if (flags & NDR_OUT) {
12080                 if (r->out.trusted_domains_blob == NULL) {
12081                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12082                 }
12083                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
12084                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12085         }
12086         return NDR_ERR_SUCCESS;
12087 }
12088
12089 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r)
12090 {
12091         uint32_t _ptr_server_name;
12092         TALLOC_CTX *_mem_save_server_name_0;
12093         TALLOC_CTX *_mem_save_trusted_domains_blob_0;
12094         if (flags & NDR_IN) {
12095                 ZERO_STRUCT(r->out);
12096
12097                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12098                 if (_ptr_server_name) {
12099                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12100                 } else {
12101                         r->in.server_name = NULL;
12102                 }
12103                 if (r->in.server_name) {
12104                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12105                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12106                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12107                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12108                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12109                                 return 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));
12110                         }
12111                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12112                         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));
12113                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12114                 }
12115                 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
12116                 ZERO_STRUCTP(r->out.trusted_domains_blob);
12117         }
12118         if (flags & NDR_OUT) {
12119                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12120                         NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
12121                 }
12122                 _mem_save_trusted_domains_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
12123                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusted_domains_blob, LIBNDR_FLAG_REF_ALLOC);
12124                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
12125                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_blob_0, LIBNDR_FLAG_REF_ALLOC);
12126                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12127         }
12128         return NDR_ERR_SUCCESS;
12129 }
12130
12131 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
12132 {
12133         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomains");
12134         ndr->depth++;
12135         if (flags & NDR_SET_VALUES) {
12136                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12137         }
12138         if (flags & NDR_IN) {
12139                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomains");
12140                 ndr->depth++;
12141                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12142                 ndr->depth++;
12143                 if (r->in.server_name) {
12144                         ndr_print_string(ndr, "server_name", r->in.server_name);
12145                 }
12146                 ndr->depth--;
12147                 ndr->depth--;
12148         }
12149         if (flags & NDR_OUT) {
12150                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomains");
12151                 ndr->depth++;
12152                 ndr_print_ptr(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
12153                 ndr->depth++;
12154                 ndr_print_netr_Blob(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
12155                 ndr->depth--;
12156                 ndr_print_WERROR(ndr, "result", r->out.result);
12157                 ndr->depth--;
12158         }
12159         ndr->depth--;
12160 }
12161
12162 static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
12163 {
12164         if (flags & NDR_IN) {
12165                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
12166                 if (r->in.server_unc) {
12167                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12168                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12169                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12170                         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));
12171                 }
12172                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12173                 if (r->in.domain_name) {
12174                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12175                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12176                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12177                         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));
12178                 }
12179                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
12180                 if (r->in.domain_guid) {
12181                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12182                 }
12183                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
12184                 if (r->in.site_guid) {
12185                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.site_guid));
12186                 }
12187                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
12188         }
12189         if (flags & NDR_OUT) {
12190                 if (r->out.info == NULL) {
12191                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12192                 }
12193                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
12194                 if (*r->out.info) {
12195                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12196                 }
12197                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12198         }
12199         return NDR_ERR_SUCCESS;
12200 }
12201
12202 static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
12203 {
12204         uint32_t _ptr_server_unc;
12205         uint32_t _ptr_domain_name;
12206         uint32_t _ptr_domain_guid;
12207         uint32_t _ptr_site_guid;
12208         uint32_t _ptr_info;
12209         TALLOC_CTX *_mem_save_server_unc_0;
12210         TALLOC_CTX *_mem_save_domain_name_0;
12211         TALLOC_CTX *_mem_save_domain_guid_0;
12212         TALLOC_CTX *_mem_save_site_guid_0;
12213         TALLOC_CTX *_mem_save_info_0;
12214         TALLOC_CTX *_mem_save_info_1;
12215         if (flags & NDR_IN) {
12216                 ZERO_STRUCT(r->out);
12217
12218                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12219                 if (_ptr_server_unc) {
12220                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
12221                 } else {
12222                         r->in.server_unc = NULL;
12223                 }
12224                 if (r->in.server_unc) {
12225                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12226                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12227                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12228                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12229                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12230                                 return 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));
12231                         }
12232                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12233                         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));
12234                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12235                 }
12236                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12237                 if (_ptr_domain_name) {
12238                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12239                 } else {
12240                         r->in.domain_name = NULL;
12241                 }
12242                 if (r->in.domain_name) {
12243                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12244                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12245                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12246                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12247                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12248                                 return 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));
12249                         }
12250                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12251                         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));
12252                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12253                 }
12254                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12255                 if (_ptr_domain_guid) {
12256                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12257                 } else {
12258                         r->in.domain_guid = NULL;
12259                 }
12260                 if (r->in.domain_guid) {
12261                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12262                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12263                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12264                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12265                 }
12266                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
12267                 if (_ptr_site_guid) {
12268                         NDR_PULL_ALLOC(ndr, r->in.site_guid);
12269                 } else {
12270                         r->in.site_guid = NULL;
12271                 }
12272                 if (r->in.site_guid) {
12273                         _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12274                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
12275                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.site_guid));
12276                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
12277                 }
12278                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12279                 NDR_PULL_ALLOC(ndr, r->out.info);
12280                 ZERO_STRUCTP(r->out.info);
12281         }
12282         if (flags & NDR_OUT) {
12283                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12284                         NDR_PULL_ALLOC(ndr, r->out.info);
12285                 }
12286                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12287                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12288                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12289                 if (_ptr_info) {
12290                         NDR_PULL_ALLOC(ndr, *r->out.info);
12291                 } else {
12292                         *r->out.info = NULL;
12293                 }
12294                 if (*r->out.info) {
12295                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
12296                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
12297                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12298                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
12299                 }
12300                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12301                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12302         }
12303         return NDR_ERR_SUCCESS;
12304 }
12305
12306 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
12307 {
12308         ndr_print_struct(ndr, name, "netr_DsRGetDCName");
12309         ndr->depth++;
12310         if (flags & NDR_SET_VALUES) {
12311                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12312         }
12313         if (flags & NDR_IN) {
12314                 ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
12315                 ndr->depth++;
12316                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
12317                 ndr->depth++;
12318                 if (r->in.server_unc) {
12319                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
12320                 }
12321                 ndr->depth--;
12322                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12323                 ndr->depth++;
12324                 if (r->in.domain_name) {
12325                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12326                 }
12327                 ndr->depth--;
12328                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
12329                 ndr->depth++;
12330                 if (r->in.domain_guid) {
12331                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
12332                 }
12333                 ndr->depth--;
12334                 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
12335                 ndr->depth++;
12336                 if (r->in.site_guid) {
12337                         ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
12338                 }
12339                 ndr->depth--;
12340                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
12341                 ndr->depth--;
12342         }
12343         if (flags & NDR_OUT) {
12344                 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
12345                 ndr->depth++;
12346                 ndr_print_ptr(ndr, "info", r->out.info);
12347                 ndr->depth++;
12348                 ndr_print_ptr(ndr, "info", *r->out.info);
12349                 ndr->depth++;
12350                 if (*r->out.info) {
12351                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
12352                 }
12353                 ndr->depth--;
12354                 ndr->depth--;
12355                 ndr_print_WERROR(ndr, "result", r->out.result);
12356                 ndr->depth--;
12357         }
12358         ndr->depth--;
12359 }
12360
12361 static enum ndr_err_code ndr_push_netr_NETRLOGONDUMMYROUTINE1(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
12362 {
12363         if (flags & NDR_IN) {
12364         }
12365         if (flags & NDR_OUT) {
12366                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12367         }
12368         return NDR_ERR_SUCCESS;
12369 }
12370
12371 static enum ndr_err_code ndr_pull_netr_NETRLOGONDUMMYROUTINE1(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONDUMMYROUTINE1 *r)
12372 {
12373         if (flags & NDR_IN) {
12374         }
12375         if (flags & NDR_OUT) {
12376                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12377         }
12378         return NDR_ERR_SUCCESS;
12379 }
12380
12381 _PUBLIC_ void ndr_print_netr_NETRLOGONDUMMYROUTINE1(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
12382 {
12383         ndr_print_struct(ndr, name, "netr_NETRLOGONDUMMYROUTINE1");
12384         ndr->depth++;
12385         if (flags & NDR_SET_VALUES) {
12386                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12387         }
12388         if (flags & NDR_IN) {
12389                 ndr_print_struct(ndr, "in", "netr_NETRLOGONDUMMYROUTINE1");
12390                 ndr->depth++;
12391                 ndr->depth--;
12392         }
12393         if (flags & NDR_OUT) {
12394                 ndr_print_struct(ndr, "out", "netr_NETRLOGONDUMMYROUTINE1");
12395                 ndr->depth++;
12396                 ndr_print_WERROR(ndr, "result", r->out.result);
12397                 ndr->depth--;
12398         }
12399         ndr->depth--;
12400 }
12401
12402 static enum ndr_err_code ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
12403 {
12404         if (flags & NDR_IN) {
12405         }
12406         if (flags & NDR_OUT) {
12407                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12408         }
12409         return NDR_ERR_SUCCESS;
12410 }
12411
12412 static enum ndr_err_code ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
12413 {
12414         if (flags & NDR_IN) {
12415         }
12416         if (flags & NDR_OUT) {
12417                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12418         }
12419         return NDR_ERR_SUCCESS;
12420 }
12421
12422 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
12423 {
12424         ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
12425         ndr->depth++;
12426         if (flags & NDR_SET_VALUES) {
12427                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12428         }
12429         if (flags & NDR_IN) {
12430                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
12431                 ndr->depth++;
12432                 ndr->depth--;
12433         }
12434         if (flags & NDR_OUT) {
12435                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
12436                 ndr->depth++;
12437                 ndr_print_WERROR(ndr, "result", r->out.result);
12438                 ndr->depth--;
12439         }
12440         ndr->depth--;
12441 }
12442
12443 static enum ndr_err_code ndr_push_netr_LogonGetTrustRid(struct ndr_push *ndr, int flags, const struct netr_LogonGetTrustRid *r)
12444 {
12445         if (flags & NDR_IN) {
12446                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12447                 if (r->in.server_name) {
12448                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12449                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12450                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12451                         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));
12452                 }
12453                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12454                 if (r->in.domain_name) {
12455                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12456                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12457                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12458                         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));
12459                 }
12460         }
12461         if (flags & NDR_OUT) {
12462                 if (r->out.rid == NULL) {
12463                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12464                 }
12465                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
12466                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12467         }
12468         return NDR_ERR_SUCCESS;
12469 }
12470
12471 static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, int flags, struct netr_LogonGetTrustRid *r)
12472 {
12473         uint32_t _ptr_server_name;
12474         uint32_t _ptr_domain_name;
12475         TALLOC_CTX *_mem_save_server_name_0;
12476         TALLOC_CTX *_mem_save_domain_name_0;
12477         TALLOC_CTX *_mem_save_rid_0;
12478         if (flags & NDR_IN) {
12479                 ZERO_STRUCT(r->out);
12480
12481                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12482                 if (_ptr_server_name) {
12483                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12484                 } else {
12485                         r->in.server_name = NULL;
12486                 }
12487                 if (r->in.server_name) {
12488                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12489                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12490                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12491                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12492                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12493                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
12494                         }
12495                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12496                         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));
12497                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12498                 }
12499                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12500                 if (_ptr_domain_name) {
12501                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12502                 } else {
12503                         r->in.domain_name = NULL;
12504                 }
12505                 if (r->in.domain_name) {
12506                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12507                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12508                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12509                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12510                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12511                                 return 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));
12512                         }
12513                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12514                         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));
12515                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12516                 }
12517                 NDR_PULL_ALLOC(ndr, r->out.rid);
12518                 ZERO_STRUCTP(r->out.rid);
12519         }
12520         if (flags & NDR_OUT) {
12521                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12522                         NDR_PULL_ALLOC(ndr, r->out.rid);
12523                 }
12524                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12525                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
12526                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
12527                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
12528                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12529         }
12530         return NDR_ERR_SUCCESS;
12531 }
12532
12533 _PUBLIC_ void ndr_print_netr_LogonGetTrustRid(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetTrustRid *r)
12534 {
12535         ndr_print_struct(ndr, name, "netr_LogonGetTrustRid");
12536         ndr->depth++;
12537         if (flags & NDR_SET_VALUES) {
12538                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12539         }
12540         if (flags & NDR_IN) {
12541                 ndr_print_struct(ndr, "in", "netr_LogonGetTrustRid");
12542                 ndr->depth++;
12543                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12544                 ndr->depth++;
12545                 if (r->in.server_name) {
12546                         ndr_print_string(ndr, "server_name", r->in.server_name);
12547                 }
12548                 ndr->depth--;
12549                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12550                 ndr->depth++;
12551                 if (r->in.domain_name) {
12552                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12553                 }
12554                 ndr->depth--;
12555                 ndr->depth--;
12556         }
12557         if (flags & NDR_OUT) {
12558                 ndr_print_struct(ndr, "out", "netr_LogonGetTrustRid");
12559                 ndr->depth++;
12560                 ndr_print_ptr(ndr, "rid", r->out.rid);
12561                 ndr->depth++;
12562                 ndr_print_uint32(ndr, "rid", *r->out.rid);
12563                 ndr->depth--;
12564                 ndr_print_WERROR(ndr, "result", r->out.result);
12565                 ndr->depth--;
12566         }
12567         ndr->depth--;
12568 }
12569
12570 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
12571 {
12572         if (flags & NDR_IN) {
12573         }
12574         if (flags & NDR_OUT) {
12575                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12576         }
12577         return NDR_ERR_SUCCESS;
12578 }
12579
12580 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
12581 {
12582         if (flags & NDR_IN) {
12583         }
12584         if (flags & NDR_OUT) {
12585                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12586         }
12587         return NDR_ERR_SUCCESS;
12588 }
12589
12590 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
12591 {
12592         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
12593         ndr->depth++;
12594         if (flags & NDR_SET_VALUES) {
12595                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12596         }
12597         if (flags & NDR_IN) {
12598                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
12599                 ndr->depth++;
12600                 ndr->depth--;
12601         }
12602         if (flags & NDR_OUT) {
12603                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
12604                 ndr->depth++;
12605                 ndr_print_WERROR(ndr, "result", r->out.result);
12606                 ndr->depth--;
12607         }
12608         ndr->depth--;
12609 }
12610
12611 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
12612 {
12613         if (flags & NDR_IN) {
12614         }
12615         if (flags & NDR_OUT) {
12616                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12617         }
12618         return NDR_ERR_SUCCESS;
12619 }
12620
12621 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
12622 {
12623         if (flags & NDR_IN) {
12624         }
12625         if (flags & NDR_OUT) {
12626                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12627         }
12628         return NDR_ERR_SUCCESS;
12629 }
12630
12631 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
12632 {
12633         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
12634         ndr->depth++;
12635         if (flags & NDR_SET_VALUES) {
12636                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12637         }
12638         if (flags & NDR_IN) {
12639                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
12640                 ndr->depth++;
12641                 ndr->depth--;
12642         }
12643         if (flags & NDR_OUT) {
12644                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
12645                 ndr->depth++;
12646                 ndr_print_WERROR(ndr, "result", r->out.result);
12647                 ndr->depth--;
12648         }
12649         ndr->depth--;
12650 }
12651
12652 _PUBLIC_ enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
12653 {
12654         if (flags & NDR_IN) {
12655                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12656                 if (r->in.server_name) {
12657                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12658                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12659                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12660                         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));
12661                 }
12662                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_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.account_name, CH_UTF16)));
12665                 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));
12666                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12667                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12668                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12669                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12670                 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));
12671                 if (r->in.credentials == NULL) {
12672                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12673                 }
12674                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
12675                 if (r->in.negotiate_flags == NULL) {
12676                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12677                 }
12678                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
12679         }
12680         if (flags & NDR_OUT) {
12681                 if (r->out.return_credentials == NULL) {
12682                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12683                 }
12684                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
12685                 if (r->out.negotiate_flags == NULL) {
12686                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12687                 }
12688                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
12689                 if (r->out.rid == NULL) {
12690                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12691                 }
12692                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
12693                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12694         }
12695         return NDR_ERR_SUCCESS;
12696 }
12697
12698 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
12699 {
12700         uint32_t _ptr_server_name;
12701         TALLOC_CTX *_mem_save_server_name_0;
12702         TALLOC_CTX *_mem_save_credentials_0;
12703         TALLOC_CTX *_mem_save_return_credentials_0;
12704         TALLOC_CTX *_mem_save_negotiate_flags_0;
12705         TALLOC_CTX *_mem_save_rid_0;
12706         if (flags & NDR_IN) {
12707                 ZERO_STRUCT(r->out);
12708
12709                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12710                 if (_ptr_server_name) {
12711                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12712                 } else {
12713                         r->in.server_name = NULL;
12714                 }
12715                 if (r->in.server_name) {
12716                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12717                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12718                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12719                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12720                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
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_name), ndr_get_array_length(ndr, &r->in.server_name));
12722                         }
12723                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12724                         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));
12725                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12726                 }
12727                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12728                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12729                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12730                         return 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));
12731                 }
12732                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12733                 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));
12734                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12735                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12736                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12737                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12738                         return 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));
12739                 }
12740                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12741                 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));
12742                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12743                         NDR_PULL_ALLOC(ndr, r->in.credentials);
12744                 }
12745                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
12746                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
12747                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
12748                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
12749                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12750                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
12751                 }
12752                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
12753                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
12754                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
12755                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
12756                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
12757                 ZERO_STRUCTP(r->out.return_credentials);
12758                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
12759                 *r->out.negotiate_flags = *r->in.negotiate_flags;
12760                 NDR_PULL_ALLOC(ndr, r->out.rid);
12761                 ZERO_STRUCTP(r->out.rid);
12762         }
12763         if (flags & NDR_OUT) {
12764                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12765                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
12766                 }
12767                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
12768                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
12769                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
12770                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
12771                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12772                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
12773                 }
12774                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
12775                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
12776                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
12777                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
12778                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12779                         NDR_PULL_ALLOC(ndr, r->out.rid);
12780                 }
12781                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12782                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
12783                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
12784                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
12785                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12786         }
12787         return NDR_ERR_SUCCESS;
12788 }
12789
12790 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
12791 {
12792         ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
12793         ndr->depth++;
12794         if (flags & NDR_SET_VALUES) {
12795                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12796         }
12797         if (flags & NDR_IN) {
12798                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
12799                 ndr->depth++;
12800                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12801                 ndr->depth++;
12802                 if (r->in.server_name) {
12803                         ndr_print_string(ndr, "server_name", r->in.server_name);
12804                 }
12805                 ndr->depth--;
12806                 ndr_print_string(ndr, "account_name", r->in.account_name);
12807                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12808                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12809                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
12810                 ndr->depth++;
12811                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
12812                 ndr->depth--;
12813                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
12814                 ndr->depth++;
12815                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
12816                 ndr->depth--;
12817                 ndr->depth--;
12818         }
12819         if (flags & NDR_OUT) {
12820                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
12821                 ndr->depth++;
12822                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
12823                 ndr->depth++;
12824                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
12825                 ndr->depth--;
12826                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
12827                 ndr->depth++;
12828                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
12829                 ndr->depth--;
12830                 ndr_print_ptr(ndr, "rid", r->out.rid);
12831                 ndr->depth++;
12832                 ndr_print_uint32(ndr, "rid", *r->out.rid);
12833                 ndr->depth--;
12834                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12835                 ndr->depth--;
12836         }
12837         ndr->depth--;
12838 }
12839
12840 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
12841 {
12842         if (flags & NDR_IN) {
12843                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
12844                 if (r->in.server_unc) {
12845                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12846                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12847                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12848                         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));
12849                 }
12850                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12851                 if (r->in.domain_name) {
12852                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12853                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12854                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12855                         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));
12856                 }
12857                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
12858                 if (r->in.domain_guid) {
12859                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12860                 }
12861                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
12862                 if (r->in.site_name) {
12863                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_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.site_name, CH_UTF16)));
12866                         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));
12867                 }
12868                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
12869         }
12870         if (flags & NDR_OUT) {
12871                 if (r->out.info == NULL) {
12872                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12873                 }
12874                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
12875                 if (*r->out.info) {
12876                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12877                 }
12878                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12879         }
12880         return NDR_ERR_SUCCESS;
12881 }
12882
12883 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
12884 {
12885         uint32_t _ptr_server_unc;
12886         uint32_t _ptr_domain_name;
12887         uint32_t _ptr_domain_guid;
12888         uint32_t _ptr_site_name;
12889         uint32_t _ptr_info;
12890         TALLOC_CTX *_mem_save_server_unc_0;
12891         TALLOC_CTX *_mem_save_domain_name_0;
12892         TALLOC_CTX *_mem_save_domain_guid_0;
12893         TALLOC_CTX *_mem_save_site_name_0;
12894         TALLOC_CTX *_mem_save_info_0;
12895         TALLOC_CTX *_mem_save_info_1;
12896         if (flags & NDR_IN) {
12897                 ZERO_STRUCT(r->out);
12898
12899                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12900                 if (_ptr_server_unc) {
12901                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
12902                 } else {
12903                         r->in.server_unc = NULL;
12904                 }
12905                 if (r->in.server_unc) {
12906                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12907                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12908                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12909                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12910                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12911                                 return 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));
12912                         }
12913                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12914                         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));
12915                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12916                 }
12917                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12918                 if (_ptr_domain_name) {
12919                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12920                 } else {
12921                         r->in.domain_name = NULL;
12922                 }
12923                 if (r->in.domain_name) {
12924                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12925                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12926                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12927                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12928                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12929                                 return 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));
12930                         }
12931                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12932                         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));
12933                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12934                 }
12935                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12936                 if (_ptr_domain_guid) {
12937                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12938                 } else {
12939                         r->in.domain_guid = NULL;
12940                 }
12941                 if (r->in.domain_guid) {
12942                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12943                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12944                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12945                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12946                 }
12947                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
12948                 if (_ptr_site_name) {
12949                         NDR_PULL_ALLOC(ndr, r->in.site_name);
12950                 } else {
12951                         r->in.site_name = NULL;
12952                 }
12953                 if (r->in.site_name) {
12954                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12955                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
12956                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
12957                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
12958                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
12959                                 return 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));
12960                         }
12961                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
12962                         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));
12963                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
12964                 }
12965                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12966                 NDR_PULL_ALLOC(ndr, r->out.info);
12967                 ZERO_STRUCTP(r->out.info);
12968         }
12969         if (flags & NDR_OUT) {
12970                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12971                         NDR_PULL_ALLOC(ndr, r->out.info);
12972                 }
12973                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12974                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12975                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12976                 if (_ptr_info) {
12977                         NDR_PULL_ALLOC(ndr, *r->out.info);
12978                 } else {
12979                         *r->out.info = NULL;
12980                 }
12981                 if (*r->out.info) {
12982                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
12983                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
12984                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12985                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
12986                 }
12987                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12988                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12989         }
12990         return NDR_ERR_SUCCESS;
12991 }
12992
12993 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
12994 {
12995         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
12996         ndr->depth++;
12997         if (flags & NDR_SET_VALUES) {
12998                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12999         }
13000         if (flags & NDR_IN) {
13001                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
13002                 ndr->depth++;
13003                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
13004                 ndr->depth++;
13005                 if (r->in.server_unc) {
13006                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
13007                 }
13008                 ndr->depth--;
13009                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
13010                 ndr->depth++;
13011                 if (r->in.domain_name) {
13012                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
13013                 }
13014                 ndr->depth--;
13015                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
13016                 ndr->depth++;
13017                 if (r->in.domain_guid) {
13018                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
13019                 }
13020                 ndr->depth--;
13021                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
13022                 ndr->depth++;
13023                 if (r->in.site_name) {
13024                         ndr_print_string(ndr, "site_name", r->in.site_name);
13025                 }
13026                 ndr->depth--;
13027                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
13028                 ndr->depth--;
13029         }
13030         if (flags & NDR_OUT) {
13031                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
13032                 ndr->depth++;
13033                 ndr_print_ptr(ndr, "info", r->out.info);
13034                 ndr->depth++;
13035                 ndr_print_ptr(ndr, "info", *r->out.info);
13036                 ndr->depth++;
13037                 if (*r->out.info) {
13038                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
13039                 }
13040                 ndr->depth--;
13041                 ndr->depth--;
13042                 ndr_print_WERROR(ndr, "result", r->out.result);
13043                 ndr->depth--;
13044         }
13045         ndr->depth--;
13046 }
13047
13048 static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
13049 {
13050         if (flags & NDR_IN) {
13051                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13052                 if (r->in.computer_name) {
13053                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13054                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13055                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13056                         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));
13057                 }
13058         }
13059         if (flags & NDR_OUT) {
13060                 if (r->out.site == NULL) {
13061                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13062                 }
13063                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.site));
13064                 if (*r->out.site) {
13065                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
13066                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13067                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
13068                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13069                 }
13070                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13071         }
13072         return NDR_ERR_SUCCESS;
13073 }
13074
13075 static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
13076 {
13077         uint32_t _ptr_computer_name;
13078         uint32_t _ptr_site;
13079         TALLOC_CTX *_mem_save_computer_name_0;
13080         TALLOC_CTX *_mem_save_site_0;
13081         TALLOC_CTX *_mem_save_site_1;
13082         if (flags & NDR_IN) {
13083                 ZERO_STRUCT(r->out);
13084
13085                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13086                 if (_ptr_computer_name) {
13087                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13088                 } else {
13089                         r->in.computer_name = NULL;
13090                 }
13091                 if (r->in.computer_name) {
13092                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13093                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13094                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13095                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13096                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13097                                 return 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));
13098                         }
13099                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13100                         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));
13101                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13102                 }
13103                 NDR_PULL_ALLOC(ndr, r->out.site);
13104                 ZERO_STRUCTP(r->out.site);
13105         }
13106         if (flags & NDR_OUT) {
13107                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13108                         NDR_PULL_ALLOC(ndr, r->out.site);
13109                 }
13110                 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
13111                 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
13112                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site));
13113                 if (_ptr_site) {
13114                         NDR_PULL_ALLOC(ndr, *r->out.site);
13115                 } else {
13116                         *r->out.site = NULL;
13117                 }
13118                 if (*r->out.site) {
13119                         _mem_save_site_1 = NDR_PULL_GET_MEM_CTX(ndr);
13120                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.site, 0);
13121                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
13122                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
13123                         if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
13124                                 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));
13125                         }
13126                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
13127                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
13128                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_1, 0);
13129                 }
13130                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
13131                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13132         }
13133         return NDR_ERR_SUCCESS;
13134 }
13135
13136 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
13137 {
13138         ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
13139         ndr->depth++;
13140         if (flags & NDR_SET_VALUES) {
13141                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13142         }
13143         if (flags & NDR_IN) {
13144                 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
13145                 ndr->depth++;
13146                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13147                 ndr->depth++;
13148                 if (r->in.computer_name) {
13149                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
13150                 }
13151                 ndr->depth--;
13152                 ndr->depth--;
13153         }
13154         if (flags & NDR_OUT) {
13155                 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
13156                 ndr->depth++;
13157                 ndr_print_ptr(ndr, "site", r->out.site);
13158                 ndr->depth++;
13159                 ndr_print_ptr(ndr, "site", *r->out.site);
13160                 ndr->depth++;
13161                 if (*r->out.site) {
13162                         ndr_print_string(ndr, "site", *r->out.site);
13163                 }
13164                 ndr->depth--;
13165                 ndr->depth--;
13166                 ndr_print_WERROR(ndr, "result", r->out.result);
13167                 ndr->depth--;
13168         }
13169         ndr->depth--;
13170 }
13171
13172 static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
13173 {
13174         if (flags & NDR_IN) {
13175                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13176                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13177                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13178                 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));
13179                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13180                 if (r->in.computer_name) {
13181                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13182                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13183                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13184                         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));
13185                 }
13186                 if (r->in.credential == NULL) {
13187                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13188                 }
13189                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13190                 if (r->in.return_authenticator == NULL) {
13191                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13192                 }
13193                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
13194                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
13195                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level));
13196                 NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
13197         }
13198         if (flags & NDR_OUT) {
13199                 if (r->out.return_authenticator == NULL) {
13200                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13201                 }
13202                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13203                 if (r->out.info == NULL) {
13204                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13205                 }
13206                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
13207                 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13208                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13209         }
13210         return NDR_ERR_SUCCESS;
13211 }
13212
13213 static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
13214 {
13215         uint32_t _ptr_computer_name;
13216         TALLOC_CTX *_mem_save_computer_name_0;
13217         TALLOC_CTX *_mem_save_credential_0;
13218         TALLOC_CTX *_mem_save_return_authenticator_0;
13219         TALLOC_CTX *_mem_save_info_0;
13220         if (flags & NDR_IN) {
13221                 ZERO_STRUCT(r->out);
13222
13223                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13224                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13225                 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
13227                 }
13228                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13229                 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));
13230                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13231                 if (_ptr_computer_name) {
13232                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13233                 } else {
13234                         r->in.computer_name = NULL;
13235                 }
13236                 if (r->in.computer_name) {
13237                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13238                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13239                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13240                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13241                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13242                                 return 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));
13243                         }
13244                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13245                         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));
13246                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13247                 }
13248                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13249                         NDR_PULL_ALLOC(ndr, r->in.credential);
13250                 }
13251                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13252                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13253                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13254                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13255                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13256                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
13257                 }
13258                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13259                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13260                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
13261                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13262                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
13263                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level));
13264                 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
13265                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13266                 *r->out.return_authenticator = *r->in.return_authenticator;
13267                 NDR_PULL_ALLOC(ndr, r->out.info);
13268                 ZERO_STRUCTP(r->out.info);
13269         }
13270         if (flags & NDR_OUT) {
13271                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13272                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13273                 }
13274                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13275                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13276                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13277                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13278                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13279                         NDR_PULL_ALLOC(ndr, r->out.info);
13280                 }
13281                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13282                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
13283                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
13284                 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13285                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
13286                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13287         }
13288         return NDR_ERR_SUCCESS;
13289 }
13290
13291 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
13292 {
13293         ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
13294         ndr->depth++;
13295         if (flags & NDR_SET_VALUES) {
13296                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13297         }
13298         if (flags & NDR_IN) {
13299                 ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
13300                 ndr->depth++;
13301                 ndr_print_string(ndr, "server_name", r->in.server_name);
13302                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13303                 ndr->depth++;
13304                 if (r->in.computer_name) {
13305                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
13306                 }
13307                 ndr->depth--;
13308                 ndr_print_ptr(ndr, "credential", r->in.credential);
13309                 ndr->depth++;
13310                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13311                 ndr->depth--;
13312                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
13313                 ndr->depth++;
13314                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
13315                 ndr->depth--;
13316                 ndr_print_uint32(ndr, "level", r->in.level);
13317                 ndr_print_set_switch_value(ndr, &r->in.query, r->in.level);
13318                 ndr_print_netr_DomainQuery(ndr, "query", &r->in.query);
13319                 ndr->depth--;
13320         }
13321         if (flags & NDR_OUT) {
13322                 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
13323                 ndr->depth++;
13324                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13325                 ndr->depth++;
13326                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13327                 ndr->depth--;
13328                 ndr_print_ptr(ndr, "info", r->out.info);
13329                 ndr->depth++;
13330                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
13331                 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
13332                 ndr->depth--;
13333                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13334                 ndr->depth--;
13335         }
13336         ndr->depth--;
13337 }
13338
13339 static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
13340 {
13341         if (flags & NDR_IN) {
13342                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13343                 if (r->in.server_name) {
13344                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13345                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13346                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13347                         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));
13348                 }
13349                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13350                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13351                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13352                 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));
13353                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13354                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13355                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13356                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13357                 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));
13358                 if (r->in.credential == NULL) {
13359                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13360                 }
13361                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13362                 if (r->in.new_password == NULL) {
13363                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13364                 }
13365                 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
13366         }
13367         if (flags & NDR_OUT) {
13368                 if (r->out.return_authenticator == NULL) {
13369                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13370                 }
13371                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13372                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13373         }
13374         return NDR_ERR_SUCCESS;
13375 }
13376
13377 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
13378 {
13379         uint32_t _ptr_server_name;
13380         TALLOC_CTX *_mem_save_server_name_0;
13381         TALLOC_CTX *_mem_save_credential_0;
13382         TALLOC_CTX *_mem_save_return_authenticator_0;
13383         TALLOC_CTX *_mem_save_new_password_0;
13384         if (flags & NDR_IN) {
13385                 ZERO_STRUCT(r->out);
13386
13387                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13388                 if (_ptr_server_name) {
13389                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13390                 } else {
13391                         r->in.server_name = NULL;
13392                 }
13393                 if (r->in.server_name) {
13394                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13395                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13396                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13397                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13398                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13399                                 return 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));
13400                         }
13401                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13402                         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));
13403                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13404                 }
13405                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13406                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13407                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13408                         return 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));
13409                 }
13410                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13411                 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));
13412                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13413                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13414                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13415                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13416                         return 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));
13417                 }
13418                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13419                 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));
13420                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13421                         NDR_PULL_ALLOC(ndr, r->in.credential);
13422                 }
13423                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13424                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13425                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13426                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13427                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13428                         NDR_PULL_ALLOC(ndr, r->in.new_password);
13429                 }
13430                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
13431                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
13432                 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
13433                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
13434                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13435                 ZERO_STRUCTP(r->out.return_authenticator);
13436         }
13437         if (flags & NDR_OUT) {
13438                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13439                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13440                 }
13441                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13442                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13443                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13444                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13445                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13446         }
13447         return NDR_ERR_SUCCESS;
13448 }
13449
13450 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
13451 {
13452         ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
13453         ndr->depth++;
13454         if (flags & NDR_SET_VALUES) {
13455                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13456         }
13457         if (flags & NDR_IN) {
13458                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
13459                 ndr->depth++;
13460                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13461                 ndr->depth++;
13462                 if (r->in.server_name) {
13463                         ndr_print_string(ndr, "server_name", r->in.server_name);
13464                 }
13465                 ndr->depth--;
13466                 ndr_print_string(ndr, "account_name", r->in.account_name);
13467                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
13468                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13469                 ndr_print_ptr(ndr, "credential", r->in.credential);
13470                 ndr->depth++;
13471                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13472                 ndr->depth--;
13473                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
13474                 ndr->depth++;
13475                 ndr_print_netr_CryptPassword(ndr, "new_password", r->in.new_password);
13476                 ndr->depth--;
13477                 ndr->depth--;
13478         }
13479         if (flags & NDR_OUT) {
13480                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
13481                 ndr->depth++;
13482                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13483                 ndr->depth++;
13484                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13485                 ndr->depth--;
13486                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13487                 ndr->depth--;
13488         }
13489         ndr->depth--;
13490 }
13491
13492 static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordGet *r)
13493 {
13494         if (flags & NDR_IN) {
13495                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13496                 if (r->in.server_name) {
13497                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13498                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13499                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13500                         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));
13501                 }
13502                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13503                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13504                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13505                 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));
13506                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13507                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13508                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13509                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13510                 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));
13511                 if (r->in.credential == NULL) {
13512                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13513                 }
13514                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13515         }
13516         if (flags & NDR_OUT) {
13517                 if (r->out.return_authenticator == NULL) {
13518                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13519                 }
13520                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13521                 if (r->out.password == NULL) {
13522                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13523                 }
13524                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
13525                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13526         }
13527         return NDR_ERR_SUCCESS;
13528 }
13529
13530 static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r)
13531 {
13532         uint32_t _ptr_server_name;
13533         TALLOC_CTX *_mem_save_server_name_0;
13534         TALLOC_CTX *_mem_save_credential_0;
13535         TALLOC_CTX *_mem_save_return_authenticator_0;
13536         TALLOC_CTX *_mem_save_password_0;
13537         if (flags & NDR_IN) {
13538                 ZERO_STRUCT(r->out);
13539
13540                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13541                 if (_ptr_server_name) {
13542                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13543                 } else {
13544                         r->in.server_name = NULL;
13545                 }
13546                 if (r->in.server_name) {
13547                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13548                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13549                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13550                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13551                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13552                                 return 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));
13553                         }
13554                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13555                         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));
13556                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13557                 }
13558                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13559                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13560                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13561                         return 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));
13562                 }
13563                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13564                 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));
13565                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13566                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13567                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13568                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13569                         return 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));
13570                 }
13571                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13572                 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));
13573                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13574                         NDR_PULL_ALLOC(ndr, r->in.credential);
13575                 }
13576                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13577                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13578                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13579                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13580                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13581                 ZERO_STRUCTP(r->out.return_authenticator);
13582                 NDR_PULL_ALLOC(ndr, r->out.password);
13583                 ZERO_STRUCTP(r->out.password);
13584         }
13585         if (flags & NDR_OUT) {
13586                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13587                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13588                 }
13589                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13590                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13591                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13592                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13593                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13594                         NDR_PULL_ALLOC(ndr, r->out.password);
13595                 }
13596                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
13597                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
13598                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
13599                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
13600                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13601         }
13602         return NDR_ERR_SUCCESS;
13603 }
13604
13605 _PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordGet *r)
13606 {
13607         ndr_print_struct(ndr, name, "netr_ServerPasswordGet");
13608         ndr->depth++;
13609         if (flags & NDR_SET_VALUES) {
13610                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13611         }
13612         if (flags & NDR_IN) {
13613                 ndr_print_struct(ndr, "in", "netr_ServerPasswordGet");
13614                 ndr->depth++;
13615                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13616                 ndr->depth++;
13617                 if (r->in.server_name) {
13618                         ndr_print_string(ndr, "server_name", r->in.server_name);
13619                 }
13620                 ndr->depth--;
13621                 ndr_print_string(ndr, "account_name", r->in.account_name);
13622                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
13623                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13624                 ndr_print_ptr(ndr, "credential", r->in.credential);
13625                 ndr->depth++;
13626                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13627                 ndr->depth--;
13628                 ndr->depth--;
13629         }
13630         if (flags & NDR_OUT) {
13631                 ndr_print_struct(ndr, "out", "netr_ServerPasswordGet");
13632                 ndr->depth++;
13633                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13634                 ndr->depth++;
13635                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13636                 ndr->depth--;
13637                 ndr_print_ptr(ndr, "password", r->out.password);
13638                 ndr->depth++;
13639                 ndr_print_samr_Password(ndr, "password", r->out.password);
13640                 ndr->depth--;
13641                 ndr_print_WERROR(ndr, "result", r->out.result);
13642                 ndr->depth--;
13643         }
13644         ndr->depth--;
13645 }
13646
13647 static enum ndr_err_code ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
13648 {
13649         if (flags & NDR_IN) {
13650         }
13651         if (flags & NDR_OUT) {
13652                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13653         }
13654         return NDR_ERR_SUCCESS;
13655 }
13656
13657 static enum ndr_err_code ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
13658 {
13659         if (flags & NDR_IN) {
13660         }
13661         if (flags & NDR_OUT) {
13662                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13663         }
13664         return NDR_ERR_SUCCESS;
13665 }
13666
13667 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
13668 {
13669         ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
13670         ndr->depth++;
13671         if (flags & NDR_SET_VALUES) {
13672                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13673         }
13674         if (flags & NDR_IN) {
13675                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
13676                 ndr->depth++;
13677                 ndr->depth--;
13678         }
13679         if (flags & NDR_OUT) {
13680                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
13681                 ndr->depth++;
13682                 ndr_print_WERROR(ndr, "result", r->out.result);
13683                 ndr->depth--;
13684         }
13685         ndr->depth--;
13686 }
13687
13688 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesW *r)
13689 {
13690         uint32_t cntr_addresses_1;
13691         if (flags & NDR_IN) {
13692                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13693                 if (r->in.server_name) {
13694                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13695                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13696                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13697                         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));
13698                 }
13699                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13700                 if (r->in.addresses == NULL) {
13701                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13702                 }
13703                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13704                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13705                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13706                 }
13707                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13708                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13709                 }
13710         }
13711         if (flags & NDR_OUT) {
13712                 if (r->out.ctr == NULL) {
13713                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13714                 }
13715                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
13716                 if (*r->out.ctr) {
13717                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13718                 }
13719                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13720         }
13721         return NDR_ERR_SUCCESS;
13722 }
13723
13724 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r)
13725 {
13726         uint32_t _ptr_server_name;
13727         uint32_t cntr_addresses_1;
13728         uint32_t _ptr_ctr;
13729         TALLOC_CTX *_mem_save_server_name_0;
13730         TALLOC_CTX *_mem_save_addresses_1;
13731         TALLOC_CTX *_mem_save_ctr_0;
13732         TALLOC_CTX *_mem_save_ctr_1;
13733         if (flags & NDR_IN) {
13734                 ZERO_STRUCT(r->out);
13735
13736                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13737                 if (_ptr_server_name) {
13738                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13739                 } else {
13740                         r->in.server_name = NULL;
13741                 }
13742                 if (r->in.server_name) {
13743                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13744                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13745                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13746                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13747                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13748                                 return 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));
13749                         }
13750                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13751                         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));
13752                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13753                 }
13754                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
13755                 if (r->in.count > 32000) {
13756                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13757                 }
13758                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
13759                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13760                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
13761                 }
13762                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
13763                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
13764                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13765                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13766                 }
13767                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13768                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13769                 }
13770                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
13771                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13772                 ZERO_STRUCTP(r->out.ctr);
13773                 if (r->in.addresses) {
13774                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
13775                 }
13776         }
13777         if (flags & NDR_OUT) {
13778                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13779                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13780                 }
13781                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13782                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13783                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
13784                 if (_ptr_ctr) {
13785                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
13786                 } else {
13787                         *r->out.ctr = NULL;
13788                 }
13789                 if (*r->out.ctr) {
13790                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
13791                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
13792                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13793                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
13794                 }
13795                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13796                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13797         }
13798         return NDR_ERR_SUCCESS;
13799 }
13800
13801 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesW *r)
13802 {
13803         uint32_t cntr_addresses_1;
13804         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesW");
13805         ndr->depth++;
13806         if (flags & NDR_SET_VALUES) {
13807                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13808         }
13809         if (flags & NDR_IN) {
13810                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesW");
13811                 ndr->depth++;
13812                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13813                 ndr->depth++;
13814                 if (r->in.server_name) {
13815                         ndr_print_string(ndr, "server_name", r->in.server_name);
13816                 }
13817                 ndr->depth--;
13818                 ndr_print_uint32(ndr, "count", r->in.count);
13819                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
13820                 ndr->depth++;
13821                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
13822                 ndr->depth++;
13823                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
13824                         char *idx_1=NULL;
13825                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
13826                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
13827                                 free(idx_1);
13828                         }
13829                 }
13830                 ndr->depth--;
13831                 ndr->depth--;
13832                 ndr->depth--;
13833         }
13834         if (flags & NDR_OUT) {
13835                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesW");
13836                 ndr->depth++;
13837                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13838                 ndr->depth++;
13839                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
13840                 ndr->depth++;
13841                 if (*r->out.ctr) {
13842                         ndr_print_netr_DsRAddressToSitenamesWCtr(ndr, "ctr", *r->out.ctr);
13843                 }
13844                 ndr->depth--;
13845                 ndr->depth--;
13846                 ndr_print_WERROR(ndr, "result", r->out.result);
13847                 ndr->depth--;
13848         }
13849         ndr->depth--;
13850 }
13851
13852 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
13853 {
13854         if (flags & NDR_IN) {
13855                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
13856                 if (r->in.server_unc) {
13857                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
13858                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13859                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
13860                         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));
13861                 }
13862                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
13863                 if (r->in.client_account) {
13864                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
13865                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13866                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
13867                         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));
13868                 }
13869                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.mask));
13870                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
13871                 if (r->in.domain_name) {
13872                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
13873                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13874                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
13875                         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));
13876                 }
13877                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
13878                 if (r->in.domain_guid) {
13879                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
13880                 }
13881                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
13882                 if (r->in.site_name) {
13883                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
13884                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13885                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
13886                         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));
13887                 }
13888                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
13889         }
13890         if (flags & NDR_OUT) {
13891                 if (r->out.info == NULL) {
13892                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13893                 }
13894                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
13895                 if (*r->out.info) {
13896                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
13897                 }
13898                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13899         }
13900         return NDR_ERR_SUCCESS;
13901 }
13902
13903 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
13904 {
13905         uint32_t _ptr_server_unc;
13906         uint32_t _ptr_client_account;
13907         uint32_t _ptr_domain_name;
13908         uint32_t _ptr_domain_guid;
13909         uint32_t _ptr_site_name;
13910         uint32_t _ptr_info;
13911         TALLOC_CTX *_mem_save_server_unc_0;
13912         TALLOC_CTX *_mem_save_client_account_0;
13913         TALLOC_CTX *_mem_save_domain_name_0;
13914         TALLOC_CTX *_mem_save_domain_guid_0;
13915         TALLOC_CTX *_mem_save_site_name_0;
13916         TALLOC_CTX *_mem_save_info_0;
13917         TALLOC_CTX *_mem_save_info_1;
13918         if (flags & NDR_IN) {
13919                 ZERO_STRUCT(r->out);
13920
13921                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
13922                 if (_ptr_server_unc) {
13923                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
13924                 } else {
13925                         r->in.server_unc = NULL;
13926                 }
13927                 if (r->in.server_unc) {
13928                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
13929                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
13930                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
13931                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
13932                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
13933                                 return 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));
13934                         }
13935                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
13936                         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));
13937                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
13938                 }
13939                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
13940                 if (_ptr_client_account) {
13941                         NDR_PULL_ALLOC(ndr, r->in.client_account);
13942                 } else {
13943                         r->in.client_account = NULL;
13944                 }
13945                 if (r->in.client_account) {
13946                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
13947                         NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
13948                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
13949                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
13950                         if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
13951                                 return 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));
13952                         }
13953                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
13954                         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));
13955                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
13956                 }
13957                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask));
13958                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
13959                 if (_ptr_domain_name) {
13960                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
13961                 } else {
13962                         r->in.domain_name = NULL;
13963                 }
13964                 if (r->in.domain_name) {
13965                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13966                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
13967                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
13968                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
13969                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
13970                                 return 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));
13971                         }
13972                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
13973                         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));
13974                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
13975                 }
13976                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
13977                 if (_ptr_domain_guid) {
13978                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
13979                 } else {
13980                         r->in.domain_guid = NULL;
13981                 }
13982                 if (r->in.domain_guid) {
13983                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13984                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
13985                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
13986                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
13987                 }
13988                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
13989                 if (_ptr_site_name) {
13990                         NDR_PULL_ALLOC(ndr, r->in.site_name);
13991                 } else {
13992                         r->in.site_name = NULL;
13993                 }
13994                 if (r->in.site_name) {
13995                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13996                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
13997                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
13998                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
13999                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
14000                                 return 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));
14001                         }
14002                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
14003                         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));
14004                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
14005                 }
14006                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
14007                 NDR_PULL_ALLOC(ndr, r->out.info);
14008                 ZERO_STRUCTP(r->out.info);
14009         }
14010         if (flags & NDR_OUT) {
14011                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14012                         NDR_PULL_ALLOC(ndr, r->out.info);
14013                 }
14014                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14015                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
14016                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
14017                 if (_ptr_info) {
14018                         NDR_PULL_ALLOC(ndr, *r->out.info);
14019                 } else {
14020                         *r->out.info = NULL;
14021                 }
14022                 if (*r->out.info) {
14023                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14024                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
14025                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
14026                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
14027                 }
14028                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
14029                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14030         }
14031         return NDR_ERR_SUCCESS;
14032 }
14033
14034 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
14035 {
14036         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
14037         ndr->depth++;
14038         if (flags & NDR_SET_VALUES) {
14039                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14040         }
14041         if (flags & NDR_IN) {
14042                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
14043                 ndr->depth++;
14044                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
14045                 ndr->depth++;
14046                 if (r->in.server_unc) {
14047                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
14048                 }
14049                 ndr->depth--;
14050                 ndr_print_ptr(ndr, "client_account", r->in.client_account);
14051                 ndr->depth++;
14052                 if (r->in.client_account) {
14053                         ndr_print_string(ndr, "client_account", r->in.client_account);
14054                 }
14055                 ndr->depth--;
14056                 ndr_print_samr_AcctFlags(ndr, "mask", r->in.mask);
14057                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
14058                 ndr->depth++;
14059                 if (r->in.domain_name) {
14060                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
14061                 }
14062                 ndr->depth--;
14063                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
14064                 ndr->depth++;
14065                 if (r->in.domain_guid) {
14066                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
14067                 }
14068                 ndr->depth--;
14069                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
14070                 ndr->depth++;
14071                 if (r->in.site_name) {
14072                         ndr_print_string(ndr, "site_name", r->in.site_name);
14073                 }
14074                 ndr->depth--;
14075                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
14076                 ndr->depth--;
14077         }
14078         if (flags & NDR_OUT) {
14079                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
14080                 ndr->depth++;
14081                 ndr_print_ptr(ndr, "info", r->out.info);
14082                 ndr->depth++;
14083                 ndr_print_ptr(ndr, "info", *r->out.info);
14084                 ndr->depth++;
14085                 if (*r->out.info) {
14086                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
14087                 }
14088                 ndr->depth--;
14089                 ndr->depth--;
14090                 ndr_print_WERROR(ndr, "result", r->out.result);
14091                 ndr->depth--;
14092         }
14093         ndr->depth--;
14094 }
14095
14096 static enum ndr_err_code ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
14097 {
14098         if (flags & NDR_IN) {
14099         }
14100         if (flags & NDR_OUT) {
14101                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14102         }
14103         return NDR_ERR_SUCCESS;
14104 }
14105
14106 static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
14107 {
14108         if (flags & NDR_IN) {
14109         }
14110         if (flags & NDR_OUT) {
14111                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14112         }
14113         return NDR_ERR_SUCCESS;
14114 }
14115
14116 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
14117 {
14118         ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14119         ndr->depth++;
14120         if (flags & NDR_SET_VALUES) {
14121                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14122         }
14123         if (flags & NDR_IN) {
14124                 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14125                 ndr->depth++;
14126                 ndr->depth--;
14127         }
14128         if (flags & NDR_OUT) {
14129                 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
14130                 ndr->depth++;
14131                 ndr_print_WERROR(ndr, "result", r->out.result);
14132                 ndr->depth--;
14133         }
14134         ndr->depth--;
14135 }
14136
14137 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
14138 {
14139         if (flags & NDR_IN) {
14140                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14141                 if (r->in.server_name) {
14142                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14143                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14144                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14145                         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));
14146                 }
14147         }
14148         if (flags & NDR_OUT) {
14149                 if (r->out.dom_trust_list == NULL) {
14150                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14151                 }
14152                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
14153                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14154         }
14155         return NDR_ERR_SUCCESS;
14156 }
14157
14158 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r)
14159 {
14160         uint32_t _ptr_server_name;
14161         TALLOC_CTX *_mem_save_server_name_0;
14162         TALLOC_CTX *_mem_save_dom_trust_list_0;
14163         if (flags & NDR_IN) {
14164                 ZERO_STRUCT(r->out);
14165
14166                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14167                 if (_ptr_server_name) {
14168                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14169                 } else {
14170                         r->in.server_name = NULL;
14171                 }
14172                 if (r->in.server_name) {
14173                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14174                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14175                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14176                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14177                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14178                                 return 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));
14179                         }
14180                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14181                         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));
14182                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14183                 }
14184                 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
14185                 ZERO_STRUCTP(r->out.dom_trust_list);
14186         }
14187         if (flags & NDR_OUT) {
14188                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14189                         NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
14190                 }
14191                 _mem_save_dom_trust_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
14192                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dom_trust_list, LIBNDR_FLAG_REF_ALLOC);
14193                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
14194                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_trust_list_0, LIBNDR_FLAG_REF_ALLOC);
14195                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14196         }
14197         return NDR_ERR_SUCCESS;
14198 }
14199
14200 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
14201 {
14202         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomainsEx");
14203         ndr->depth++;
14204         if (flags & NDR_SET_VALUES) {
14205                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14206         }
14207         if (flags & NDR_IN) {
14208                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomainsEx");
14209                 ndr->depth++;
14210                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14211                 ndr->depth++;
14212                 if (r->in.server_name) {
14213                         ndr_print_string(ndr, "server_name", r->in.server_name);
14214                 }
14215                 ndr->depth--;
14216                 ndr->depth--;
14217         }
14218         if (flags & NDR_OUT) {
14219                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomainsEx");
14220                 ndr->depth++;
14221                 ndr_print_ptr(ndr, "dom_trust_list", r->out.dom_trust_list);
14222                 ndr->depth++;
14223                 ndr_print_netr_DomainTrustList(ndr, "dom_trust_list", r->out.dom_trust_list);
14224                 ndr->depth--;
14225                 ndr_print_WERROR(ndr, "result", r->out.result);
14226                 ndr->depth--;
14227         }
14228         ndr->depth--;
14229 }
14230
14231 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesExW *r)
14232 {
14233         uint32_t cntr_addresses_1;
14234         if (flags & NDR_IN) {
14235                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14236                 if (r->in.server_name) {
14237                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14238                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14239                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14240                         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));
14241                 }
14242                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14243                 if (r->in.addresses == NULL) {
14244                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14245                 }
14246                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14247                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14248                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
14249                 }
14250                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14251                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
14252                 }
14253         }
14254         if (flags & NDR_OUT) {
14255                 if (r->out.ctr == NULL) {
14256                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14257                 }
14258                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
14259                 if (*r->out.ctr) {
14260                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14261                 }
14262                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14263         }
14264         return NDR_ERR_SUCCESS;
14265 }
14266
14267 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r)
14268 {
14269         uint32_t _ptr_server_name;
14270         uint32_t cntr_addresses_1;
14271         uint32_t _ptr_ctr;
14272         TALLOC_CTX *_mem_save_server_name_0;
14273         TALLOC_CTX *_mem_save_addresses_1;
14274         TALLOC_CTX *_mem_save_ctr_0;
14275         TALLOC_CTX *_mem_save_ctr_1;
14276         if (flags & NDR_IN) {
14277                 ZERO_STRUCT(r->out);
14278
14279                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14280                 if (_ptr_server_name) {
14281                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14282                 } else {
14283                         r->in.server_name = NULL;
14284                 }
14285                 if (r->in.server_name) {
14286                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14287                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14288                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14289                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14290                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14291                                 return 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));
14292                         }
14293                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14294                         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));
14295                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14296                 }
14297                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
14298                 if (r->in.count > 32000) {
14299                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
14300                 }
14301                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
14302                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14303                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
14304                 }
14305                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
14306                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
14307                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14308                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
14309                 }
14310                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14311                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
14312                 }
14313                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
14314                 NDR_PULL_ALLOC(ndr, r->out.ctr);
14315                 ZERO_STRUCTP(r->out.ctr);
14316                 if (r->in.addresses) {
14317                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
14318                 }
14319         }
14320         if (flags & NDR_OUT) {
14321                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14322                         NDR_PULL_ALLOC(ndr, r->out.ctr);
14323                 }
14324                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14325                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14326                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
14327                 if (_ptr_ctr) {
14328                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
14329                 } else {
14330                         *r->out.ctr = NULL;
14331                 }
14332                 if (*r->out.ctr) {
14333                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
14334                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
14335                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14336                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
14337                 }
14338                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14339                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14340         }
14341         return NDR_ERR_SUCCESS;
14342 }
14343
14344 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesExW *r)
14345 {
14346         uint32_t cntr_addresses_1;
14347         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExW");
14348         ndr->depth++;
14349         if (flags & NDR_SET_VALUES) {
14350                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14351         }
14352         if (flags & NDR_IN) {
14353                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesExW");
14354                 ndr->depth++;
14355                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14356                 ndr->depth++;
14357                 if (r->in.server_name) {
14358                         ndr_print_string(ndr, "server_name", r->in.server_name);
14359                 }
14360                 ndr->depth--;
14361                 ndr_print_uint32(ndr, "count", r->in.count);
14362                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
14363                 ndr->depth++;
14364                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
14365                 ndr->depth++;
14366                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
14367                         char *idx_1=NULL;
14368                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
14369                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
14370                                 free(idx_1);
14371                         }
14372                 }
14373                 ndr->depth--;
14374                 ndr->depth--;
14375                 ndr->depth--;
14376         }
14377         if (flags & NDR_OUT) {
14378                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesExW");
14379                 ndr->depth++;
14380                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14381                 ndr->depth++;
14382                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
14383                 ndr->depth++;
14384                 if (*r->out.ctr) {
14385                         ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr, "ctr", *r->out.ctr);
14386                 }
14387                 ndr->depth--;
14388                 ndr->depth--;
14389                 ndr_print_WERROR(ndr, "result", r->out.result);
14390                 ndr->depth--;
14391         }
14392         ndr->depth--;
14393 }
14394
14395 static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *ndr, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
14396 {
14397         if (flags & NDR_IN) {
14398                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14399                 if (r->in.server_name) {
14400                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14401                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14402                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14403                         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));
14404                 }
14405         }
14406         if (flags & NDR_OUT) {
14407                 if (r->out.ctr == NULL) {
14408                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14409                 }
14410                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
14411                 if (*r->out.ctr) {
14412                         NDR_CHECK(ndr_push_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14413                 }
14414                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14415         }
14416         return NDR_ERR_SUCCESS;
14417 }
14418
14419 static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r)
14420 {
14421         uint32_t _ptr_server_name;
14422         uint32_t _ptr_ctr;
14423         TALLOC_CTX *_mem_save_server_name_0;
14424         TALLOC_CTX *_mem_save_ctr_0;
14425         TALLOC_CTX *_mem_save_ctr_1;
14426         if (flags & NDR_IN) {
14427                 ZERO_STRUCT(r->out);
14428
14429                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14430                 if (_ptr_server_name) {
14431                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14432                 } else {
14433                         r->in.server_name = NULL;
14434                 }
14435                 if (r->in.server_name) {
14436                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14437                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14438                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14439                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14440                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14441                                 return 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));
14442                         }
14443                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14444                         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));
14445                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14446                 }
14447                 NDR_PULL_ALLOC(ndr, r->out.ctr);
14448                 ZERO_STRUCTP(r->out.ctr);
14449         }
14450         if (flags & NDR_OUT) {
14451                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14452                         NDR_PULL_ALLOC(ndr, r->out.ctr);
14453                 }
14454                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14455                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14456                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
14457                 if (_ptr_ctr) {
14458                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
14459                 } else {
14460                         *r->out.ctr = NULL;
14461                 }
14462                 if (*r->out.ctr) {
14463                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
14464                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
14465                         NDR_CHECK(ndr_pull_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14466                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
14467                 }
14468                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14469                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14470         }
14471         return NDR_ERR_SUCCESS;
14472 }
14473
14474 _PUBLIC_ void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
14475 {
14476         ndr_print_struct(ndr, name, "netr_DsrGetDcSiteCoverageW");
14477         ndr->depth++;
14478         if (flags & NDR_SET_VALUES) {
14479                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14480         }
14481         if (flags & NDR_IN) {
14482                 ndr_print_struct(ndr, "in", "netr_DsrGetDcSiteCoverageW");
14483                 ndr->depth++;
14484                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14485                 ndr->depth++;
14486                 if (r->in.server_name) {
14487                         ndr_print_string(ndr, "server_name", r->in.server_name);
14488                 }
14489                 ndr->depth--;
14490                 ndr->depth--;
14491         }
14492         if (flags & NDR_OUT) {
14493                 ndr_print_struct(ndr, "out", "netr_DsrGetDcSiteCoverageW");
14494                 ndr->depth++;
14495                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14496                 ndr->depth++;
14497                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
14498                 ndr->depth++;
14499                 if (*r->out.ctr) {
14500                         ndr_print_DcSitesCtr(ndr, "ctr", *r->out.ctr);
14501                 }
14502                 ndr->depth--;
14503                 ndr->depth--;
14504                 ndr_print_WERROR(ndr, "result", r->out.result);
14505                 ndr->depth--;
14506         }
14507         ndr->depth--;
14508 }
14509
14510 static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
14511 {
14512         if (flags & NDR_IN) {
14513                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14514                 if (r->in.server_name) {
14515                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14516                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14517                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14518                         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));
14519                 }
14520                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
14521                 if (r->in.computer_name) {
14522                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14523                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14524                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14525                         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));
14526                 }
14527                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
14528                 if (r->in.logon == NULL) {
14529                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14530                 }
14531                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
14532                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
14533                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
14534                 if (r->in.flags == NULL) {
14535                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14536                 }
14537                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
14538         }
14539         if (flags & NDR_OUT) {
14540                 if (r->out.validation == NULL) {
14541                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14542                 }
14543                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14544                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14545                 if (r->out.authoritative == NULL) {
14546                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14547                 }
14548                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
14549                 if (r->out.flags == NULL) {
14550                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14551                 }
14552                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
14553                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
14554         }
14555         return NDR_ERR_SUCCESS;
14556 }
14557
14558 static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
14559 {
14560         uint32_t _ptr_server_name;
14561         uint32_t _ptr_computer_name;
14562         TALLOC_CTX *_mem_save_server_name_0;
14563         TALLOC_CTX *_mem_save_computer_name_0;
14564         TALLOC_CTX *_mem_save_logon_0;
14565         TALLOC_CTX *_mem_save_validation_0;
14566         TALLOC_CTX *_mem_save_authoritative_0;
14567         TALLOC_CTX *_mem_save_flags_0;
14568         if (flags & NDR_IN) {
14569                 ZERO_STRUCT(r->out);
14570
14571                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14572                 if (_ptr_server_name) {
14573                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14574                 } else {
14575                         r->in.server_name = NULL;
14576                 }
14577                 if (r->in.server_name) {
14578                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14579                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14580                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14581                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14582                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14583                                 return 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));
14584                         }
14585                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14586                         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));
14587                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14588                 }
14589                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
14590                 if (_ptr_computer_name) {
14591                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
14592                 } else {
14593                         r->in.computer_name = NULL;
14594                 }
14595                 if (r->in.computer_name) {
14596                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14597                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
14598                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14599                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14600                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14601                                 return 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));
14602                         }
14603                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14604                         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));
14605                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
14606                 }
14607                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
14608                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14609                         NDR_PULL_ALLOC(ndr, r->in.logon);
14610                 }
14611                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
14612                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
14613                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
14614                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
14615                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
14616                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
14617                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14618                         NDR_PULL_ALLOC(ndr, r->in.flags);
14619                 }
14620                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14621                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
14622                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
14623                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14624                 NDR_PULL_ALLOC(ndr, r->out.validation);
14625                 ZERO_STRUCTP(r->out.validation);
14626                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
14627                 ZERO_STRUCTP(r->out.authoritative);
14628                 NDR_PULL_ALLOC(ndr, r->out.flags);
14629                 *r->out.flags = *r->in.flags;
14630         }
14631         if (flags & NDR_OUT) {
14632                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14633                         NDR_PULL_ALLOC(ndr, r->out.validation);
14634                 }
14635                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
14636                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
14637                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14638                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14639                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
14640                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14641                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
14642                 }
14643                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
14644                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
14645                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
14646                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
14647                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14648                         NDR_PULL_ALLOC(ndr, r->out.flags);
14649                 }
14650                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14651                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
14652                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
14653                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14654                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14655         }
14656         return NDR_ERR_SUCCESS;
14657 }
14658
14659 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
14660 {
14661         ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
14662         ndr->depth++;
14663         if (flags & NDR_SET_VALUES) {
14664                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14665         }
14666         if (flags & NDR_IN) {
14667                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
14668                 ndr->depth++;
14669                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14670                 ndr->depth++;
14671                 if (r->in.server_name) {
14672                         ndr_print_string(ndr, "server_name", r->in.server_name);
14673                 }
14674                 ndr->depth--;
14675                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14676                 ndr->depth++;
14677                 if (r->in.computer_name) {
14678                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
14679                 }
14680                 ndr->depth--;
14681                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
14682                 ndr_print_ptr(ndr, "logon", r->in.logon);
14683                 ndr->depth++;
14684                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
14685                 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
14686                 ndr->depth--;
14687                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
14688                 ndr_print_ptr(ndr, "flags", r->in.flags);
14689                 ndr->depth++;
14690                 ndr_print_uint32(ndr, "flags", *r->in.flags);
14691                 ndr->depth--;
14692                 ndr->depth--;
14693         }
14694         if (flags & NDR_OUT) {
14695                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
14696                 ndr->depth++;
14697                 ndr_print_ptr(ndr, "validation", r->out.validation);
14698                 ndr->depth++;
14699                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
14700                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
14701                 ndr->depth--;
14702                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
14703                 ndr->depth++;
14704                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
14705                 ndr->depth--;
14706                 ndr_print_ptr(ndr, "flags", r->out.flags);
14707                 ndr->depth++;
14708                 ndr_print_uint32(ndr, "flags", *r->out.flags);
14709                 ndr->depth--;
14710                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14711                 ndr->depth--;
14712         }
14713         ndr->depth--;
14714 }
14715
14716 static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
14717 {
14718         if (flags & NDR_IN) {
14719                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14720                 if (r->in.server_name) {
14721                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14722                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14723                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14724                         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));
14725                 }
14726                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
14727         }
14728         if (flags & NDR_OUT) {
14729                 if (r->out.trusts == NULL) {
14730                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14731                 }
14732                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
14733                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14734         }
14735         return NDR_ERR_SUCCESS;
14736 }
14737
14738 static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
14739 {
14740         uint32_t _ptr_server_name;
14741         TALLOC_CTX *_mem_save_server_name_0;
14742         TALLOC_CTX *_mem_save_trusts_0;
14743         if (flags & NDR_IN) {
14744                 ZERO_STRUCT(r->out);
14745
14746                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14747                 if (_ptr_server_name) {
14748                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14749                 } else {
14750                         r->in.server_name = NULL;
14751                 }
14752                 if (r->in.server_name) {
14753                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14754                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14755                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14756                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14757                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14758                                 return 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));
14759                         }
14760                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14761                         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));
14762                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14763                 }
14764                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
14765                 NDR_PULL_ALLOC(ndr, r->out.trusts);
14766                 ZERO_STRUCTP(r->out.trusts);
14767         }
14768         if (flags & NDR_OUT) {
14769                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14770                         NDR_PULL_ALLOC(ndr, r->out.trusts);
14771                 }
14772                 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
14773                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
14774                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
14775                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, LIBNDR_FLAG_REF_ALLOC);
14776                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14777         }
14778         return NDR_ERR_SUCCESS;
14779 }
14780
14781 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
14782 {
14783         ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
14784         ndr->depth++;
14785         if (flags & NDR_SET_VALUES) {
14786                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14787         }
14788         if (flags & NDR_IN) {
14789                 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
14790                 ndr->depth++;
14791                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14792                 ndr->depth++;
14793                 if (r->in.server_name) {
14794                         ndr_print_string(ndr, "server_name", r->in.server_name);
14795                 }
14796                 ndr->depth--;
14797                 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
14798                 ndr->depth--;
14799         }
14800         if (flags & NDR_OUT) {
14801                 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
14802                 ndr->depth++;
14803                 ndr_print_ptr(ndr, "trusts", r->out.trusts);
14804                 ndr->depth++;
14805                 ndr_print_netr_DomainTrustList(ndr, "trusts", r->out.trusts);
14806                 ndr->depth--;
14807                 ndr_print_WERROR(ndr, "result", r->out.result);
14808                 ndr->depth--;
14809         }
14810         ndr->depth--;
14811 }
14812
14813 static enum ndr_err_code ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push *ndr, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
14814 {
14815         if (flags & NDR_IN) {
14816                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14817                 if (r->in.server_name) {
14818                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14819                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14820                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14821                         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));
14822                 }
14823                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain));
14824                 if (r->in.domain) {
14825                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
14826                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14827                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
14828                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14829                 }
14830                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
14831                 if (r->in.domain_guid) {
14832                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
14833                 }
14834                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dsa_guid));
14835                 if (r->in.dsa_guid) {
14836                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
14837                 }
14838                 if (r->in.dns_host == NULL) {
14839                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14840                 }
14841                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
14842                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14843                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
14844                 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));
14845         }
14846         if (flags & NDR_OUT) {
14847                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14848         }
14849         return NDR_ERR_SUCCESS;
14850 }
14851
14852 static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull *ndr, int flags, struct netr_DsrDeregisterDNSHostRecords *r)
14853 {
14854         uint32_t _ptr_server_name;
14855         uint32_t _ptr_domain;
14856         uint32_t _ptr_domain_guid;
14857         uint32_t _ptr_dsa_guid;
14858         TALLOC_CTX *_mem_save_server_name_0;
14859         TALLOC_CTX *_mem_save_domain_0;
14860         TALLOC_CTX *_mem_save_domain_guid_0;
14861         TALLOC_CTX *_mem_save_dsa_guid_0;
14862         if (flags & NDR_IN) {
14863                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14864                 if (_ptr_server_name) {
14865                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14866                 } else {
14867                         r->in.server_name = NULL;
14868                 }
14869                 if (r->in.server_name) {
14870                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14871                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14872                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14873                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14874                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14875                                 return 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));
14876                         }
14877                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14878                         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));
14879                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14880                 }
14881                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
14882                 if (_ptr_domain) {
14883                         NDR_PULL_ALLOC(ndr, r->in.domain);
14884                 } else {
14885                         r->in.domain = NULL;
14886                 }
14887                 if (r->in.domain) {
14888                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
14889                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain, 0);
14890                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
14891                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
14892                         if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
14893                                 return 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));
14894                         }
14895                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t)));
14896                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t), CH_UTF16));
14897                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
14898                 }
14899                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
14900                 if (_ptr_domain_guid) {
14901                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
14902                 } else {
14903                         r->in.domain_guid = NULL;
14904                 }
14905                 if (r->in.domain_guid) {
14906                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
14907                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
14908                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
14909                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
14910                 }
14911                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_guid));
14912                 if (_ptr_dsa_guid) {
14913                         NDR_PULL_ALLOC(ndr, r->in.dsa_guid);
14914                 } else {
14915                         r->in.dsa_guid = NULL;
14916                 }
14917                 if (r->in.dsa_guid) {
14918                         _mem_save_dsa_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
14919                         NDR_PULL_SET_MEM_CTX(ndr, r->in.dsa_guid, 0);
14920                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
14921                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_guid_0, 0);
14922                 }
14923                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_host));
14924                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_host));
14925                 if (ndr_get_array_length(ndr, &r->in.dns_host) > ndr_get_array_size(ndr, &r->in.dns_host)) {
14926                         return 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));
14927                 }
14928                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t)));
14929                 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));
14930         }
14931         if (flags & NDR_OUT) {
14932                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14933         }
14934         return NDR_ERR_SUCCESS;
14935 }
14936
14937 _PUBLIC_ void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
14938 {
14939         ndr_print_struct(ndr, name, "netr_DsrDeregisterDNSHostRecords");
14940         ndr->depth++;
14941         if (flags & NDR_SET_VALUES) {
14942                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14943         }
14944         if (flags & NDR_IN) {
14945                 ndr_print_struct(ndr, "in", "netr_DsrDeregisterDNSHostRecords");
14946                 ndr->depth++;
14947                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14948                 ndr->depth++;
14949                 if (r->in.server_name) {
14950                         ndr_print_string(ndr, "server_name", r->in.server_name);
14951                 }
14952                 ndr->depth--;
14953                 ndr_print_ptr(ndr, "domain", r->in.domain);
14954                 ndr->depth++;
14955                 if (r->in.domain) {
14956                         ndr_print_string(ndr, "domain", r->in.domain);
14957                 }
14958                 ndr->depth--;
14959                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
14960                 ndr->depth++;
14961                 if (r->in.domain_guid) {
14962                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
14963                 }
14964                 ndr->depth--;
14965                 ndr_print_ptr(ndr, "dsa_guid", r->in.dsa_guid);
14966                 ndr->depth++;
14967                 if (r->in.dsa_guid) {
14968                         ndr_print_GUID(ndr, "dsa_guid", r->in.dsa_guid);
14969                 }
14970                 ndr->depth--;
14971                 ndr_print_ptr(ndr, "dns_host", r->in.dns_host);
14972                 ndr->depth++;
14973                 ndr_print_string(ndr, "dns_host", r->in.dns_host);
14974                 ndr->depth--;
14975                 ndr->depth--;
14976         }
14977         if (flags & NDR_OUT) {
14978                 ndr_print_struct(ndr, "out", "netr_DsrDeregisterDNSHostRecords");
14979                 ndr->depth++;
14980                 ndr_print_WERROR(ndr, "result", r->out.result);
14981                 ndr->depth--;
14982         }
14983         ndr->depth--;
14984 }
14985
14986 static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push *ndr, int flags, const struct netr_ServerTrustPasswordsGet *r)
14987 {
14988         if (flags & NDR_IN) {
14989                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14990                 if (r->in.server_name) {
14991                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14992                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14993                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14994                         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));
14995                 }
14996                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
14997                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14998                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
14999                 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));
15000                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
15001                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15002                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15003                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15004                 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));
15005                 if (r->in.credential == NULL) {
15006                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15007                 }
15008                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15009         }
15010         if (flags & NDR_OUT) {
15011                 if (r->out.return_authenticator == NULL) {
15012                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15013                 }
15014                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15015                 if (r->out.password == NULL) {
15016                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15017                 }
15018                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
15019                 if (r->out.password2 == NULL) {
15020                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15021                 }
15022                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password2));
15023                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
15024         }
15025         return NDR_ERR_SUCCESS;
15026 }
15027
15028 static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r)
15029 {
15030         uint32_t _ptr_server_name;
15031         TALLOC_CTX *_mem_save_server_name_0;
15032         TALLOC_CTX *_mem_save_credential_0;
15033         TALLOC_CTX *_mem_save_return_authenticator_0;
15034         TALLOC_CTX *_mem_save_password_0;
15035         TALLOC_CTX *_mem_save_password2_0;
15036         if (flags & NDR_IN) {
15037                 ZERO_STRUCT(r->out);
15038
15039                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15040                 if (_ptr_server_name) {
15041                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15042                 } else {
15043                         r->in.server_name = NULL;
15044                 }
15045                 if (r->in.server_name) {
15046                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15047                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15048                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15049                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15050                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15051                                 return 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));
15052                         }
15053                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15054                         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));
15055                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15056                 }
15057                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
15058                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
15059                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
15060                         return 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));
15061                 }
15062                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
15063                 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));
15064                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
15065                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
15066                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
15067                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
15068                         return 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));
15069                 }
15070                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
15071                 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));
15072                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15073                         NDR_PULL_ALLOC(ndr, r->in.credential);
15074                 }
15075                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
15076                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
15077                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15078                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
15079                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15080                 ZERO_STRUCTP(r->out.return_authenticator);
15081                 NDR_PULL_ALLOC(ndr, r->out.password);
15082                 ZERO_STRUCTP(r->out.password);
15083                 NDR_PULL_ALLOC(ndr, r->out.password2);
15084                 ZERO_STRUCTP(r->out.password2);
15085         }
15086         if (flags & NDR_OUT) {
15087                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15088                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15089                 }
15090                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15091                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
15092                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15093                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
15094                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15095                         NDR_PULL_ALLOC(ndr, r->out.password);
15096                 }
15097                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
15098                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
15099                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
15100                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
15101                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15102                         NDR_PULL_ALLOC(ndr, r->out.password2);
15103                 }
15104                 _mem_save_password2_0 = NDR_PULL_GET_MEM_CTX(ndr);
15105                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password2, LIBNDR_FLAG_REF_ALLOC);
15106                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password2));
15107                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password2_0, LIBNDR_FLAG_REF_ALLOC);
15108                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
15109         }
15110         return NDR_ERR_SUCCESS;
15111 }
15112
15113 _PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerTrustPasswordsGet *r)
15114 {
15115         ndr_print_struct(ndr, name, "netr_ServerTrustPasswordsGet");
15116         ndr->depth++;
15117         if (flags & NDR_SET_VALUES) {
15118                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15119         }
15120         if (flags & NDR_IN) {
15121                 ndr_print_struct(ndr, "in", "netr_ServerTrustPasswordsGet");
15122                 ndr->depth++;
15123                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15124                 ndr->depth++;
15125                 if (r->in.server_name) {
15126                         ndr_print_string(ndr, "server_name", r->in.server_name);
15127                 }
15128                 ndr->depth--;
15129                 ndr_print_string(ndr, "account_name", r->in.account_name);
15130                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
15131                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
15132                 ndr_print_ptr(ndr, "credential", r->in.credential);
15133                 ndr->depth++;
15134                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
15135                 ndr->depth--;
15136                 ndr->depth--;
15137         }
15138         if (flags & NDR_OUT) {
15139                 ndr_print_struct(ndr, "out", "netr_ServerTrustPasswordsGet");
15140                 ndr->depth++;
15141                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
15142                 ndr->depth++;
15143                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
15144                 ndr->depth--;
15145                 ndr_print_ptr(ndr, "password", r->out.password);
15146                 ndr->depth++;
15147                 ndr_print_samr_Password(ndr, "password", r->out.password);
15148                 ndr->depth--;
15149                 ndr_print_ptr(ndr, "password2", r->out.password2);
15150                 ndr->depth++;
15151                 ndr_print_samr_Password(ndr, "password2", r->out.password2);
15152                 ndr->depth--;
15153                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
15154                 ndr->depth--;
15155         }
15156         ndr->depth--;
15157 }
15158
15159 static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_DsRGetForestTrustInformation *r)
15160 {
15161         if (flags & NDR_IN) {
15162                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15163                 if (r->in.server_name) {
15164                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15165                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15166                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15167                         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));
15168                 }
15169                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.trusted_domain_name));
15170                 if (r->in.trusted_domain_name) {
15171                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15172                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15173                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15174                         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));
15175                 }
15176                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
15177         }
15178         if (flags & NDR_OUT) {
15179                 if (r->out.forest_trust_info == NULL) {
15180                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15181                 }
15182                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
15183                 if (*r->out.forest_trust_info) {
15184                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15185                 }
15186                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15187         }
15188         return NDR_ERR_SUCCESS;
15189 }
15190
15191 static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r)
15192 {
15193         uint32_t _ptr_server_name;
15194         uint32_t _ptr_trusted_domain_name;
15195         uint32_t _ptr_forest_trust_info;
15196         TALLOC_CTX *_mem_save_server_name_0;
15197         TALLOC_CTX *_mem_save_trusted_domain_name_0;
15198         TALLOC_CTX *_mem_save_forest_trust_info_0;
15199         TALLOC_CTX *_mem_save_forest_trust_info_1;
15200         if (flags & NDR_IN) {
15201                 ZERO_STRUCT(r->out);
15202
15203                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15204                 if (_ptr_server_name) {
15205                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15206                 } else {
15207                         r->in.server_name = NULL;
15208                 }
15209                 if (r->in.server_name) {
15210                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15211                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15212                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15213                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15214                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15215                                 return 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));
15216                         }
15217                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15218                         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));
15219                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15220                 }
15221                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
15222                 if (_ptr_trusted_domain_name) {
15223                         NDR_PULL_ALLOC(ndr, r->in.trusted_domain_name);
15224                 } else {
15225                         r->in.trusted_domain_name = NULL;
15226                 }
15227                 if (r->in.trusted_domain_name) {
15228                         _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15229                         NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0);
15230                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
15231                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
15232                         if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
15233                                 return 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));
15234                         }
15235                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
15236                         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));
15237                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
15238                 }
15239                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
15240                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15241                 ZERO_STRUCTP(r->out.forest_trust_info);
15242         }
15243         if (flags & NDR_OUT) {
15244                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15245                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15246                 }
15247                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15248                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
15249                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
15250                 if (_ptr_forest_trust_info) {
15251                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
15252                 } else {
15253                         *r->out.forest_trust_info = NULL;
15254                 }
15255                 if (*r->out.forest_trust_info) {
15256                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
15257                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
15258                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15259                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
15260                 }
15261                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
15262                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15263         }
15264         return NDR_ERR_SUCCESS;
15265 }
15266
15267 _PUBLIC_ void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r)
15268 {
15269         ndr_print_struct(ndr, name, "netr_DsRGetForestTrustInformation");
15270         ndr->depth++;
15271         if (flags & NDR_SET_VALUES) {
15272                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15273         }
15274         if (flags & NDR_IN) {
15275                 ndr_print_struct(ndr, "in", "netr_DsRGetForestTrustInformation");
15276                 ndr->depth++;
15277                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15278                 ndr->depth++;
15279                 if (r->in.server_name) {
15280                         ndr_print_string(ndr, "server_name", r->in.server_name);
15281                 }
15282                 ndr->depth--;
15283                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15284                 ndr->depth++;
15285                 if (r->in.trusted_domain_name) {
15286                         ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15287                 }
15288                 ndr->depth--;
15289                 ndr_print_uint32(ndr, "flags", r->in.flags);
15290                 ndr->depth--;
15291         }
15292         if (flags & NDR_OUT) {
15293                 ndr_print_struct(ndr, "out", "netr_DsRGetForestTrustInformation");
15294                 ndr->depth++;
15295                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
15296                 ndr->depth++;
15297                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
15298                 ndr->depth++;
15299                 if (*r->out.forest_trust_info) {
15300                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
15301                 }
15302                 ndr->depth--;
15303                 ndr->depth--;
15304                 ndr_print_WERROR(ndr, "result", r->out.result);
15305                 ndr->depth--;
15306         }
15307         ndr->depth--;
15308 }
15309
15310 static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_GetForestTrustInformation *r)
15311 {
15312         if (flags & NDR_IN) {
15313                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15314                 if (r->in.server_name) {
15315                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15316                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15317                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15318                         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));
15319                 }
15320                 if (r->in.trusted_domain_name == NULL) {
15321                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15322                 }
15323                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15324                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15325                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15326                 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));
15327                 if (r->in.credential == NULL) {
15328                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15329                 }
15330                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15331                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
15332         }
15333         if (flags & NDR_OUT) {
15334                 if (r->out.return_authenticator == NULL) {
15335                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15336                 }
15337                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15338                 if (r->out.forest_trust_info == NULL) {
15339                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15340                 }
15341                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
15342                 if (*r->out.forest_trust_info) {
15343                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15344                 }
15345                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15346         }
15347         return NDR_ERR_SUCCESS;
15348 }
15349
15350 static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r)
15351 {
15352         uint32_t _ptr_server_name;
15353         uint32_t _ptr_forest_trust_info;
15354         TALLOC_CTX *_mem_save_server_name_0;
15355         TALLOC_CTX *_mem_save_credential_0;
15356         TALLOC_CTX *_mem_save_return_authenticator_0;
15357         TALLOC_CTX *_mem_save_forest_trust_info_0;
15358         TALLOC_CTX *_mem_save_forest_trust_info_1;
15359         if (flags & NDR_IN) {
15360                 ZERO_STRUCT(r->out);
15361
15362                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15363                 if (_ptr_server_name) {
15364                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15365                 } else {
15366                         r->in.server_name = NULL;
15367                 }
15368                 if (r->in.server_name) {
15369                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15370                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15371                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15372                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15373                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15374                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
15375                         }
15376                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15377                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
15378                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15379                 }
15380                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
15381                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
15382                 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
15383                         return 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));
15384                 }
15385                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
15386                 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));
15387                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15388                         NDR_PULL_ALLOC(ndr, r->in.credential);
15389                 }
15390                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
15391                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
15392                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15393                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
15394                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
15395                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15396                 ZERO_STRUCTP(r->out.return_authenticator);
15397                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15398                 ZERO_STRUCTP(r->out.forest_trust_info);
15399         }
15400         if (flags & NDR_OUT) {
15401                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15402                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15403                 }
15404                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15405                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
15406                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15407                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
15408                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15409                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15410                 }
15411                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15412                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
15413                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
15414                 if (_ptr_forest_trust_info) {
15415                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
15416                 } else {
15417                         *r->out.forest_trust_info = NULL;
15418                 }
15419                 if (*r->out.forest_trust_info) {
15420                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
15421                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
15422                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15423                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
15424                 }
15425                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
15426                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15427         }
15428         return NDR_ERR_SUCCESS;
15429 }
15430
15431 _PUBLIC_ void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r)
15432 {
15433         ndr_print_struct(ndr, name, "netr_GetForestTrustInformation");
15434         ndr->depth++;
15435         if (flags & NDR_SET_VALUES) {
15436                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15437         }
15438         if (flags & NDR_IN) {
15439                 ndr_print_struct(ndr, "in", "netr_GetForestTrustInformation");
15440                 ndr->depth++;
15441                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15442                 ndr->depth++;
15443                 if (r->in.server_name) {
15444                         ndr_print_string(ndr, "server_name", r->in.server_name);
15445                 }
15446                 ndr->depth--;
15447                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15448                 ndr->depth++;
15449                 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15450                 ndr->depth--;
15451                 ndr_print_ptr(ndr, "credential", r->in.credential);
15452                 ndr->depth++;
15453                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
15454                 ndr->depth--;
15455                 ndr_print_uint32(ndr, "flags", r->in.flags);
15456                 ndr->depth--;
15457         }
15458         if (flags & NDR_OUT) {
15459                 ndr_print_struct(ndr, "out", "netr_GetForestTrustInformation");
15460                 ndr->depth++;
15461                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
15462                 ndr->depth++;
15463                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
15464                 ndr->depth--;
15465                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
15466                 ndr->depth++;
15467                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
15468                 ndr->depth++;
15469                 if (*r->out.forest_trust_info) {
15470                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
15471                 }
15472                 ndr->depth--;
15473                 ndr->depth--;
15474                 ndr_print_WERROR(ndr, "result", r->out.result);
15475                 ndr->depth--;
15476         }
15477         ndr->depth--;
15478 }
15479
15480 static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
15481 {
15482         if (flags & NDR_IN) {
15483                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15484                 if (r->in.server_name) {
15485                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15486                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15487                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15488                         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));
15489                 }
15490                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
15491                 if (r->in.computer_name) {
15492                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15493                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15494                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15495                         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));
15496                 }
15497                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
15498                 if (r->in.credential) {
15499                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15500                 }
15501                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
15502                 if (r->in.return_authenticator) {
15503                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
15504                 }
15505                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
15506                 if (r->in.logon == NULL) {
15507                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15508                 }
15509                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
15510                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
15511                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
15512                 if (r->in.flags == NULL) {
15513                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15514                 }
15515                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
15516         }
15517         if (flags & NDR_OUT) {
15518                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
15519                 if (r->out.return_authenticator) {
15520                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15521                 }
15522                 if (r->out.validation == NULL) {
15523                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15524                 }
15525                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
15526                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
15527                 if (r->out.authoritative == NULL) {
15528                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15529                 }
15530                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
15531                 if (r->out.flags == NULL) {
15532                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15533                 }
15534                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
15535                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
15536         }
15537         return NDR_ERR_SUCCESS;
15538 }
15539
15540 static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
15541 {
15542         uint32_t _ptr_server_name;
15543         uint32_t _ptr_computer_name;
15544         uint32_t _ptr_credential;
15545         uint32_t _ptr_return_authenticator;
15546         TALLOC_CTX *_mem_save_server_name_0;
15547         TALLOC_CTX *_mem_save_computer_name_0;
15548         TALLOC_CTX *_mem_save_credential_0;
15549         TALLOC_CTX *_mem_save_return_authenticator_0;
15550         TALLOC_CTX *_mem_save_logon_0;
15551         TALLOC_CTX *_mem_save_validation_0;
15552         TALLOC_CTX *_mem_save_authoritative_0;
15553         TALLOC_CTX *_mem_save_flags_0;
15554         if (flags & NDR_IN) {
15555                 ZERO_STRUCT(r->out);
15556
15557                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15558                 if (_ptr_server_name) {
15559                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15560                 } else {
15561                         r->in.server_name = NULL;
15562                 }
15563                 if (r->in.server_name) {
15564                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15565                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15566                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15567                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15568                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15569                                 return 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));
15570                         }
15571                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15572                         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));
15573                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15574                 }
15575                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
15576                 if (_ptr_computer_name) {
15577                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
15578                 } else {
15579                         r->in.computer_name = NULL;
15580                 }
15581                 if (r->in.computer_name) {
15582                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15583                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
15584                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
15585                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
15586                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
15587                                 return 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));
15588                         }
15589                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
15590                         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));
15591                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
15592                 }
15593                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
15594                 if (_ptr_credential) {
15595                         NDR_PULL_ALLOC(ndr, r->in.credential);
15596                 } else {
15597                         r->in.credential = NULL;
15598                 }
15599                 if (r->in.credential) {
15600                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
15601                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
15602                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15603                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
15604                 }
15605                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
15606                 if (_ptr_return_authenticator) {
15607                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
15608                 } else {
15609                         r->in.return_authenticator = NULL;
15610                 }
15611                 if (r->in.return_authenticator) {
15612                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15613                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
15614                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
15615                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
15616                 }
15617                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
15618                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15619                         NDR_PULL_ALLOC(ndr, r->in.logon);
15620                 }
15621                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
15622                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
15623                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
15624                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
15625                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
15626                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
15627                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15628                         NDR_PULL_ALLOC(ndr, r->in.flags);
15629                 }
15630                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
15631                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
15632                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
15633                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
15634                 NDR_PULL_ALLOC(ndr, r->out.validation);
15635                 ZERO_STRUCTP(r->out.validation);
15636                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
15637                 ZERO_STRUCTP(r->out.authoritative);
15638                 NDR_PULL_ALLOC(ndr, r->out.flags);
15639                 *r->out.flags = *r->in.flags;
15640         }
15641         if (flags & NDR_OUT) {
15642                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
15643                 if (_ptr_return_authenticator) {
15644                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15645                 } else {
15646                         r->out.return_authenticator = NULL;
15647                 }
15648                 if (r->out.return_authenticator) {
15649                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15650                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
15651                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15652                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
15653                 }
15654                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15655                         NDR_PULL_ALLOC(ndr, r->out.validation);
15656                 }
15657                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
15658                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
15659                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
15660                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
15661                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
15662                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15663                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
15664                 }
15665                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
15666                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
15667                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
15668                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
15669                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15670                         NDR_PULL_ALLOC(ndr, r->out.flags);
15671                 }
15672                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
15673                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
15674                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
15675                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
15676                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
15677         }
15678         return NDR_ERR_SUCCESS;
15679 }
15680
15681 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
15682 {
15683         ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
15684         ndr->depth++;
15685         if (flags & NDR_SET_VALUES) {
15686                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15687         }
15688         if (flags & NDR_IN) {
15689                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
15690                 ndr->depth++;
15691                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15692                 ndr->depth++;
15693                 if (r->in.server_name) {
15694                         ndr_print_string(ndr, "server_name", r->in.server_name);
15695                 }
15696                 ndr->depth--;
15697                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
15698                 ndr->depth++;
15699                 if (r->in.computer_name) {
15700                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
15701                 }
15702                 ndr->depth--;
15703                 ndr_print_ptr(ndr, "credential", r->in.credential);
15704                 ndr->depth++;
15705                 if (r->in.credential) {
15706                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
15707                 }
15708                 ndr->depth--;
15709                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
15710                 ndr->depth++;
15711                 if (r->in.return_authenticator) {
15712                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
15713                 }
15714                 ndr->depth--;
15715                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
15716                 ndr_print_ptr(ndr, "logon", r->in.logon);
15717                 ndr->depth++;
15718                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
15719                 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
15720                 ndr->depth--;
15721                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
15722                 ndr_print_ptr(ndr, "flags", r->in.flags);
15723                 ndr->depth++;
15724                 ndr_print_uint32(ndr, "flags", *r->in.flags);
15725                 ndr->depth--;
15726                 ndr->depth--;
15727         }
15728         if (flags & NDR_OUT) {
15729                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
15730                 ndr->depth++;
15731                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
15732                 ndr->depth++;
15733                 if (r->out.return_authenticator) {
15734                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
15735                 }
15736                 ndr->depth--;
15737                 ndr_print_ptr(ndr, "validation", r->out.validation);
15738                 ndr->depth++;
15739                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
15740                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
15741                 ndr->depth--;
15742                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
15743                 ndr->depth++;
15744                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
15745                 ndr->depth--;
15746                 ndr_print_ptr(ndr, "flags", r->out.flags);
15747                 ndr->depth++;
15748                 ndr_print_uint32(ndr, "flags", *r->out.flags);
15749                 ndr->depth--;
15750                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
15751                 ndr->depth--;
15752         }
15753         ndr->depth--;
15754 }
15755
15756 static enum ndr_err_code ndr_push_netr_ServerGetTrustInfo(struct ndr_push *ndr, int flags, const struct netr_ServerGetTrustInfo *r)
15757 {
15758         if (flags & NDR_IN) {
15759                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15760                 if (r->in.server_name) {
15761                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15762                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15763                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15764                         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));
15765                 }
15766                 if (r->in.account_name == NULL) {
15767                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15768                 }
15769                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
15770                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15771                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
15772                 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));
15773                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
15774                 if (r->in.computer_name == NULL) {
15775                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15776                 }
15777                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15778                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15779                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15780                 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));
15781                 if (r->in.credential == NULL) {
15782                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15783                 }
15784                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15785         }
15786         if (flags & NDR_OUT) {
15787                 if (r->out.return_authenticator == NULL) {
15788                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15789                 }
15790                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15791                 if (r->out.new_owf_password == NULL) {
15792                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15793                 }
15794                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.new_owf_password));
15795                 if (r->out.old_owf_password == NULL) {
15796                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15797                 }
15798                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.old_owf_password));
15799                 if (r->out.trust_info == NULL) {
15800                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15801                 }
15802                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.trust_info));
15803                 if (*r->out.trust_info) {
15804                         NDR_CHECK(ndr_push_netr_TrustInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trust_info));
15805                 }
15806                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
15807         }
15808         return NDR_ERR_SUCCESS;
15809 }
15810
15811 static enum ndr_err_code ndr_pull_netr_ServerGetTrustInfo(struct ndr_pull *ndr, int flags, struct netr_ServerGetTrustInfo *r)
15812 {
15813         uint32_t _ptr_server_name;
15814         uint32_t _ptr_trust_info;
15815         TALLOC_CTX *_mem_save_server_name_0;
15816         TALLOC_CTX *_mem_save_credential_0;
15817         TALLOC_CTX *_mem_save_return_authenticator_0;
15818         TALLOC_CTX *_mem_save_new_owf_password_0;
15819         TALLOC_CTX *_mem_save_old_owf_password_0;
15820         TALLOC_CTX *_mem_save_trust_info_0;
15821         TALLOC_CTX *_mem_save_trust_info_1;
15822         if (flags & NDR_IN) {
15823                 ZERO_STRUCT(r->out);
15824
15825                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15826                 if (_ptr_server_name) {
15827                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15828                 } else {
15829                         r->in.server_name = NULL;
15830                 }
15831                 if (r->in.server_name) {
15832                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15833                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15834                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15835                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15836                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15837                                 return 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));
15838                         }
15839                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15840                         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));
15841                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15842                 }
15843                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
15844                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
15845                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
15846                         return 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));
15847                 }
15848                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
15849                 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));
15850                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
15851                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
15852                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
15853                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
15854                         return 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));
15855                 }
15856                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
15857                 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));
15858                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15859                         NDR_PULL_ALLOC(ndr, r->in.credential);
15860                 }
15861                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
15862                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
15863                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15864                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
15865                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15866                 ZERO_STRUCTP(r->out.return_authenticator);
15867                 NDR_PULL_ALLOC(ndr, r->out.new_owf_password);
15868                 ZERO_STRUCTP(r->out.new_owf_password);
15869                 NDR_PULL_ALLOC(ndr, r->out.old_owf_password);
15870                 ZERO_STRUCTP(r->out.old_owf_password);
15871                 NDR_PULL_ALLOC(ndr, r->out.trust_info);
15872                 ZERO_STRUCTP(r->out.trust_info);
15873         }
15874         if (flags & NDR_OUT) {
15875                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15876                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15877                 }
15878                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15879                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
15880                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15881                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
15882                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15883                         NDR_PULL_ALLOC(ndr, r->out.new_owf_password);
15884                 }
15885                 _mem_save_new_owf_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
15886                 NDR_PULL_SET_MEM_CTX(ndr, r->out.new_owf_password, LIBNDR_FLAG_REF_ALLOC);
15887                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.new_owf_password));
15888                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_owf_password_0, LIBNDR_FLAG_REF_ALLOC);
15889                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15890                         NDR_PULL_ALLOC(ndr, r->out.old_owf_password);
15891                 }
15892                 _mem_save_old_owf_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
15893                 NDR_PULL_SET_MEM_CTX(ndr, r->out.old_owf_password, LIBNDR_FLAG_REF_ALLOC);
15894                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.old_owf_password));
15895                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_old_owf_password_0, LIBNDR_FLAG_REF_ALLOC);
15896                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15897                         NDR_PULL_ALLOC(ndr, r->out.trust_info);
15898                 }
15899                 _mem_save_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15900                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trust_info, LIBNDR_FLAG_REF_ALLOC);
15901                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trust_info));
15902                 if (_ptr_trust_info) {
15903                         NDR_PULL_ALLOC(ndr, *r->out.trust_info);
15904                 } else {
15905                         *r->out.trust_info = NULL;
15906                 }
15907                 if (*r->out.trust_info) {
15908                         _mem_save_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
15909                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.trust_info, 0);
15910                         NDR_CHECK(ndr_pull_netr_TrustInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trust_info));
15911                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trust_info_1, 0);
15912                 }
15913                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
15914                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
15915         }
15916         return NDR_ERR_SUCCESS;
15917 }
15918
15919 _PUBLIC_ void ndr_print_netr_ServerGetTrustInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerGetTrustInfo *r)
15920 {
15921         ndr_print_struct(ndr, name, "netr_ServerGetTrustInfo");
15922         ndr->depth++;
15923         if (flags & NDR_SET_VALUES) {
15924                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15925         }
15926         if (flags & NDR_IN) {
15927                 ndr_print_struct(ndr, "in", "netr_ServerGetTrustInfo");
15928                 ndr->depth++;
15929                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15930                 ndr->depth++;
15931                 if (r->in.server_name) {
15932                         ndr_print_string(ndr, "server_name", r->in.server_name);
15933                 }
15934                 ndr->depth--;
15935                 ndr_print_ptr(ndr, "account_name", r->in.account_name);
15936                 ndr->depth++;
15937                 ndr_print_string(ndr, "account_name", r->in.account_name);
15938                 ndr->depth--;
15939                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
15940                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
15941                 ndr->depth++;
15942                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
15943                 ndr->depth--;
15944                 ndr_print_ptr(ndr, "credential", r->in.credential);
15945                 ndr->depth++;
15946                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
15947                 ndr->depth--;
15948                 ndr->depth--;
15949         }
15950         if (flags & NDR_OUT) {
15951                 ndr_print_struct(ndr, "out", "netr_ServerGetTrustInfo");
15952                 ndr->depth++;
15953                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
15954                 ndr->depth++;
15955                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
15956                 ndr->depth--;
15957                 ndr_print_ptr(ndr, "new_owf_password", r->out.new_owf_password);
15958                 ndr->depth++;
15959                 ndr_print_samr_Password(ndr, "new_owf_password", r->out.new_owf_password);
15960                 ndr->depth--;
15961                 ndr_print_ptr(ndr, "old_owf_password", r->out.old_owf_password);
15962                 ndr->depth++;
15963                 ndr_print_samr_Password(ndr, "old_owf_password", r->out.old_owf_password);
15964                 ndr->depth--;
15965                 ndr_print_ptr(ndr, "trust_info", r->out.trust_info);
15966                 ndr->depth++;
15967                 ndr_print_ptr(ndr, "trust_info", *r->out.trust_info);
15968                 ndr->depth++;
15969                 if (*r->out.trust_info) {
15970                         ndr_print_netr_TrustInfo(ndr, "trust_info", *r->out.trust_info);
15971                 }
15972                 ndr->depth--;
15973                 ndr->depth--;
15974                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
15975                 ndr->depth--;
15976         }
15977         ndr->depth--;
15978 }
15979
15980 static const struct ndr_interface_call netlogon_calls[] = {
15981         {
15982                 "netr_LogonUasLogon",
15983                 sizeof(struct netr_LogonUasLogon),
15984                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
15985                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
15986                 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
15987                 false,
15988         },
15989         {
15990                 "netr_LogonUasLogoff",
15991                 sizeof(struct netr_LogonUasLogoff),
15992                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
15993                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
15994                 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
15995                 false,
15996         },
15997         {
15998                 "netr_LogonSamLogon",
15999                 sizeof(struct netr_LogonSamLogon),
16000                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
16001                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
16002                 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
16003                 false,
16004         },
16005         {
16006                 "netr_LogonSamLogoff",
16007                 sizeof(struct netr_LogonSamLogoff),
16008                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
16009                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
16010                 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
16011                 false,
16012         },
16013         {
16014                 "netr_ServerReqChallenge",
16015                 sizeof(struct netr_ServerReqChallenge),
16016                 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
16017                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
16018                 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
16019                 false,
16020         },
16021         {
16022                 "netr_ServerAuthenticate",
16023                 sizeof(struct netr_ServerAuthenticate),
16024                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
16025                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
16026                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
16027                 false,
16028         },
16029         {
16030                 "netr_ServerPasswordSet",
16031                 sizeof(struct netr_ServerPasswordSet),
16032                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
16033                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
16034                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
16035                 false,
16036         },
16037         {
16038                 "netr_DatabaseDeltas",
16039                 sizeof(struct netr_DatabaseDeltas),
16040                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
16041                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
16042                 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
16043                 false,
16044         },
16045         {
16046                 "netr_DatabaseSync",
16047                 sizeof(struct netr_DatabaseSync),
16048                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
16049                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
16050                 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
16051                 false,
16052         },
16053         {
16054                 "netr_AccountDeltas",
16055                 sizeof(struct netr_AccountDeltas),
16056                 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
16057                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
16058                 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
16059                 false,
16060         },
16061         {
16062                 "netr_AccountSync",
16063                 sizeof(struct netr_AccountSync),
16064                 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
16065                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
16066                 (ndr_print_function_t) ndr_print_netr_AccountSync,
16067                 false,
16068         },
16069         {
16070                 "netr_GetDcName",
16071                 sizeof(struct netr_GetDcName),
16072                 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
16073                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
16074                 (ndr_print_function_t) ndr_print_netr_GetDcName,
16075                 false,
16076         },
16077         {
16078                 "netr_LogonControl",
16079                 sizeof(struct netr_LogonControl),
16080                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
16081                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
16082                 (ndr_print_function_t) ndr_print_netr_LogonControl,
16083                 false,
16084         },
16085         {
16086                 "netr_GetAnyDCName",
16087                 sizeof(struct netr_GetAnyDCName),
16088                 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
16089                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
16090                 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
16091                 false,
16092         },
16093         {
16094                 "netr_LogonControl2",
16095                 sizeof(struct netr_LogonControl2),
16096                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
16097                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
16098                 (ndr_print_function_t) ndr_print_netr_LogonControl2,
16099                 false,
16100         },
16101         {
16102                 "netr_ServerAuthenticate2",
16103                 sizeof(struct netr_ServerAuthenticate2),
16104                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
16105                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
16106                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
16107                 false,
16108         },
16109         {
16110                 "netr_DatabaseSync2",
16111                 sizeof(struct netr_DatabaseSync2),
16112                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
16113                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
16114                 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
16115                 false,
16116         },
16117         {
16118                 "netr_DatabaseRedo",
16119                 sizeof(struct netr_DatabaseRedo),
16120                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
16121                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
16122                 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
16123                 false,
16124         },
16125         {
16126                 "netr_LogonControl2Ex",
16127                 sizeof(struct netr_LogonControl2Ex),
16128                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
16129                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
16130                 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
16131                 false,
16132         },
16133         {
16134                 "netr_NetrEnumerateTrustedDomains",
16135                 sizeof(struct netr_NetrEnumerateTrustedDomains),
16136                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomains,
16137                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomains,
16138                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomains,
16139                 false,
16140         },
16141         {
16142                 "netr_DsRGetDCName",
16143                 sizeof(struct netr_DsRGetDCName),
16144                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
16145                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
16146                 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
16147                 false,
16148         },
16149         {
16150                 "netr_NETRLOGONDUMMYROUTINE1",
16151                 sizeof(struct netr_NETRLOGONDUMMYROUTINE1),
16152                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONDUMMYROUTINE1,
16153                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONDUMMYROUTINE1,
16154                 (ndr_print_function_t) ndr_print_netr_NETRLOGONDUMMYROUTINE1,
16155                 false,
16156         },
16157         {
16158                 "netr_NETRLOGONSETSERVICEBITS",
16159                 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
16160                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
16161                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
16162                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
16163                 false,
16164         },
16165         {
16166                 "netr_LogonGetTrustRid",
16167                 sizeof(struct netr_LogonGetTrustRid),
16168                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetTrustRid,
16169                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetTrustRid,
16170                 (ndr_print_function_t) ndr_print_netr_LogonGetTrustRid,
16171                 false,
16172         },
16173         {
16174                 "netr_NETRLOGONCOMPUTESERVERDIGEST",
16175                 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
16176                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
16177                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
16178                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
16179                 false,
16180         },
16181         {
16182                 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
16183                 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
16184                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
16185                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
16186                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
16187                 false,
16188         },
16189         {
16190                 "netr_ServerAuthenticate3",
16191                 sizeof(struct netr_ServerAuthenticate3),
16192                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
16193                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
16194                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
16195                 false,
16196         },
16197         {
16198                 "netr_DsRGetDCNameEx",
16199                 sizeof(struct netr_DsRGetDCNameEx),
16200                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
16201                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
16202                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
16203                 false,
16204         },
16205         {
16206                 "netr_DsRGetSiteName",
16207                 sizeof(struct netr_DsRGetSiteName),
16208                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
16209                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
16210                 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
16211                 false,
16212         },
16213         {
16214                 "netr_LogonGetDomainInfo",
16215                 sizeof(struct netr_LogonGetDomainInfo),
16216                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
16217                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
16218                 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
16219                 false,
16220         },
16221         {
16222                 "netr_ServerPasswordSet2",
16223                 sizeof(struct netr_ServerPasswordSet2),
16224                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
16225                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
16226                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
16227                 false,
16228         },
16229         {
16230                 "netr_ServerPasswordGet",
16231                 sizeof(struct netr_ServerPasswordGet),
16232                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordGet,
16233                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordGet,
16234                 (ndr_print_function_t) ndr_print_netr_ServerPasswordGet,
16235                 false,
16236         },
16237         {
16238                 "netr_NETRLOGONSENDTOSAM",
16239                 sizeof(struct netr_NETRLOGONSENDTOSAM),
16240                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
16241                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
16242                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
16243                 false,
16244         },
16245         {
16246                 "netr_DsRAddressToSitenamesW",
16247                 sizeof(struct netr_DsRAddressToSitenamesW),
16248                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesW,
16249                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesW,
16250                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesW,
16251                 false,
16252         },
16253         {
16254                 "netr_DsRGetDCNameEx2",
16255                 sizeof(struct netr_DsRGetDCNameEx2),
16256                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
16257                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
16258                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
16259                 false,
16260         },
16261         {
16262                 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
16263                 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
16264                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16265                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16266                 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16267                 false,
16268         },
16269         {
16270                 "netr_NetrEnumerateTrustedDomainsEx",
16271                 sizeof(struct netr_NetrEnumerateTrustedDomainsEx),
16272                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomainsEx,
16273                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomainsEx,
16274                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomainsEx,
16275                 false,
16276         },
16277         {
16278                 "netr_DsRAddressToSitenamesExW",
16279                 sizeof(struct netr_DsRAddressToSitenamesExW),
16280                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesExW,
16281                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesExW,
16282                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesExW,
16283                 false,
16284         },
16285         {
16286                 "netr_DsrGetDcSiteCoverageW",
16287                 sizeof(struct netr_DsrGetDcSiteCoverageW),
16288                 (ndr_push_flags_fn_t) ndr_push_netr_DsrGetDcSiteCoverageW,
16289                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrGetDcSiteCoverageW,
16290                 (ndr_print_function_t) ndr_print_netr_DsrGetDcSiteCoverageW,
16291                 false,
16292         },
16293         {
16294                 "netr_LogonSamLogonEx",
16295                 sizeof(struct netr_LogonSamLogonEx),
16296                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
16297                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
16298                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
16299                 false,
16300         },
16301         {
16302                 "netr_DsrEnumerateDomainTrusts",
16303                 sizeof(struct netr_DsrEnumerateDomainTrusts),
16304                 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
16305                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
16306                 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
16307                 false,
16308         },
16309         {
16310                 "netr_DsrDeregisterDNSHostRecords",
16311                 sizeof(struct netr_DsrDeregisterDNSHostRecords),
16312                 (ndr_push_flags_fn_t) ndr_push_netr_DsrDeregisterDNSHostRecords,
16313                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrDeregisterDNSHostRecords,
16314                 (ndr_print_function_t) ndr_print_netr_DsrDeregisterDNSHostRecords,
16315                 false,
16316         },
16317         {
16318                 "netr_ServerTrustPasswordsGet",
16319                 sizeof(struct netr_ServerTrustPasswordsGet),
16320                 (ndr_push_flags_fn_t) ndr_push_netr_ServerTrustPasswordsGet,
16321                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerTrustPasswordsGet,
16322                 (ndr_print_function_t) ndr_print_netr_ServerTrustPasswordsGet,
16323                 false,
16324         },
16325         {
16326                 "netr_DsRGetForestTrustInformation",
16327                 sizeof(struct netr_DsRGetForestTrustInformation),
16328                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetForestTrustInformation,
16329                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetForestTrustInformation,
16330                 (ndr_print_function_t) ndr_print_netr_DsRGetForestTrustInformation,
16331                 false,
16332         },
16333         {
16334                 "netr_GetForestTrustInformation",
16335                 sizeof(struct netr_GetForestTrustInformation),
16336                 (ndr_push_flags_fn_t) ndr_push_netr_GetForestTrustInformation,
16337                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetForestTrustInformation,
16338                 (ndr_print_function_t) ndr_print_netr_GetForestTrustInformation,
16339                 false,
16340         },
16341         {
16342                 "netr_LogonSamLogonWithFlags",
16343                 sizeof(struct netr_LogonSamLogonWithFlags),
16344                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
16345                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
16346                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
16347                 false,
16348         },
16349         {
16350                 "netr_ServerGetTrustInfo",
16351                 sizeof(struct netr_ServerGetTrustInfo),
16352                 (ndr_push_flags_fn_t) ndr_push_netr_ServerGetTrustInfo,
16353                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerGetTrustInfo,
16354                 (ndr_print_function_t) ndr_print_netr_ServerGetTrustInfo,
16355                 false,
16356         },
16357         { NULL, 0, NULL, NULL, NULL, false }
16358 };
16359
16360 static const char * const netlogon_endpoint_strings[] = {
16361         "ncacn_np:[\\pipe\\netlogon]", 
16362         "ncacn_ip_tcp:", 
16363         "ncalrpc:", 
16364 };
16365
16366 static const struct ndr_interface_string_array netlogon_endpoints = {
16367         .count  = 3,
16368         .names  = netlogon_endpoint_strings
16369 };
16370
16371 static const char * const netlogon_authservice_strings[] = {
16372         "host", 
16373 };
16374
16375 static const struct ndr_interface_string_array netlogon_authservices = {
16376         .count  = 1,
16377         .names  = netlogon_authservice_strings
16378 };
16379
16380
16381 const struct ndr_interface_table ndr_table_netlogon = {
16382         .name           = "netlogon",
16383         .syntax_id      = {
16384                 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
16385                 NDR_NETLOGON_VERSION
16386         },
16387         .helpstring     = NDR_NETLOGON_HELPSTRING,
16388         .num_calls      = 47,
16389         .calls          = netlogon_calls,
16390         .endpoints      = &netlogon_endpoints,
16391         .authservices   = &netlogon_authservices
16392 };
16393