Merge branch 'master' of ssh://git.samba.org/data/git/samba
[ira/wip.git] / librpc / gen_ndr / ndr_netlogon.c
1 /* parser auto-generated by pidl */
2
3 #include "includes.h"
4 #include "../librpc/gen_ndr/ndr_netlogon.h"
5
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_lsa.h"
8 #include "librpc/gen_ndr/ndr_samr.h"
9 #include "librpc/gen_ndr/ndr_security.h"
10 #include "librpc/gen_ndr/ndr_nbt.h"
11 static enum ndr_err_code ndr_push_netr_UasInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasInfo *r)
12 {
13         if (ndr_flags & NDR_SCALARS) {
14                 NDR_CHECK(ndr_push_align(ndr, 4));
15                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
16                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priv));
17                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_flags));
18                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_count));
19                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_pw_count));
20                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logon));
21                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logoff));
22                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->logoff_time));
23                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->kickoff_time));
24                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->password_age));
25                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_can_change));
26                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_must_change));
27                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer));
28                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
29                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->script_path));
30                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
31         }
32         if (ndr_flags & NDR_BUFFERS) {
33                 if (r->account_name) {
34                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
35                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
36                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
37                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
38                 }
39                 if (r->computer) {
40                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
41                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
42                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
43                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer, ndr_charset_length(r->computer, CH_UTF16), sizeof(uint16_t), CH_UTF16));
44                 }
45                 if (r->domain) {
46                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
47                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
48                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
49                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
50                 }
51                 if (r->script_path) {
52                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
53                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
54                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
55                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->script_path, ndr_charset_length(r->script_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
56                 }
57         }
58         return NDR_ERR_SUCCESS;
59 }
60
61 static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasInfo *r)
62 {
63         uint32_t _ptr_account_name;
64         TALLOC_CTX *_mem_save_account_name_0;
65         uint32_t _ptr_computer;
66         TALLOC_CTX *_mem_save_computer_0;
67         uint32_t _ptr_domain;
68         TALLOC_CTX *_mem_save_domain_0;
69         uint32_t _ptr_script_path;
70         TALLOC_CTX *_mem_save_script_path_0;
71         if (ndr_flags & NDR_SCALARS) {
72                 NDR_CHECK(ndr_pull_align(ndr, 4));
73                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
74                 if (_ptr_account_name) {
75                         NDR_PULL_ALLOC(ndr, r->account_name);
76                 } else {
77                         r->account_name = NULL;
78                 }
79                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priv));
80                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_flags));
81                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_count));
82                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_pw_count));
83                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logon));
84                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logoff));
85                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->logoff_time));
86                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->kickoff_time));
87                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->password_age));
88                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_can_change));
89                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_must_change));
90                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer));
91                 if (_ptr_computer) {
92                         NDR_PULL_ALLOC(ndr, r->computer);
93                 } else {
94                         r->computer = NULL;
95                 }
96                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
97                 if (_ptr_domain) {
98                         NDR_PULL_ALLOC(ndr, r->domain);
99                 } else {
100                         r->domain = NULL;
101                 }
102                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_script_path));
103                 if (_ptr_script_path) {
104                         NDR_PULL_ALLOC(ndr, r->script_path);
105                 } else {
106                         r->script_path = NULL;
107                 }
108                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
109         }
110         if (ndr_flags & NDR_BUFFERS) {
111                 if (r->account_name) {
112                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
113                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
114                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
115                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
116                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
117                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name));
118                         }
119                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
120                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
121                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
122                 }
123                 if (r->computer) {
124                         _mem_save_computer_0 = NDR_PULL_GET_MEM_CTX(ndr);
125                         NDR_PULL_SET_MEM_CTX(ndr, r->computer, 0);
126                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer));
127                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer));
128                         if (ndr_get_array_length(ndr, &r->computer) > ndr_get_array_size(ndr, &r->computer)) {
129                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer), ndr_get_array_length(ndr, &r->computer));
130                         }
131                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t)));
132                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t), CH_UTF16));
133                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_0, 0);
134                 }
135                 if (r->domain) {
136                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
137                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
138                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
139                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
140                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
141                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
142                         }
143                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
144                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
145                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
146                 }
147                 if (r->script_path) {
148                         _mem_save_script_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
149                         NDR_PULL_SET_MEM_CTX(ndr, r->script_path, 0);
150                         NDR_CHECK(ndr_pull_array_size(ndr, &r->script_path));
151                         NDR_CHECK(ndr_pull_array_length(ndr, &r->script_path));
152                         if (ndr_get_array_length(ndr, &r->script_path) > ndr_get_array_size(ndr, &r->script_path)) {
153                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->script_path), ndr_get_array_length(ndr, &r->script_path));
154                         }
155                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t)));
156                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->script_path, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t), CH_UTF16));
157                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_script_path_0, 0);
158                 }
159         }
160         return NDR_ERR_SUCCESS;
161 }
162
163 _PUBLIC_ void ndr_print_netr_UasInfo(struct ndr_print *ndr, const char *name, const struct netr_UasInfo *r)
164 {
165         ndr_print_struct(ndr, name, "netr_UasInfo");
166         ndr->depth++;
167         ndr_print_ptr(ndr, "account_name", r->account_name);
168         ndr->depth++;
169         if (r->account_name) {
170                 ndr_print_string(ndr, "account_name", r->account_name);
171         }
172         ndr->depth--;
173         ndr_print_uint32(ndr, "priv", r->priv);
174         ndr_print_uint32(ndr, "auth_flags", r->auth_flags);
175         ndr_print_uint32(ndr, "logon_count", r->logon_count);
176         ndr_print_uint32(ndr, "bad_pw_count", r->bad_pw_count);
177         ndr_print_time_t(ndr, "last_logon", r->last_logon);
178         ndr_print_time_t(ndr, "last_logoff", r->last_logoff);
179         ndr_print_time_t(ndr, "logoff_time", r->logoff_time);
180         ndr_print_time_t(ndr, "kickoff_time", r->kickoff_time);
181         ndr_print_uint32(ndr, "password_age", r->password_age);
182         ndr_print_time_t(ndr, "pw_can_change", r->pw_can_change);
183         ndr_print_time_t(ndr, "pw_must_change", r->pw_must_change);
184         ndr_print_ptr(ndr, "computer", r->computer);
185         ndr->depth++;
186         if (r->computer) {
187                 ndr_print_string(ndr, "computer", r->computer);
188         }
189         ndr->depth--;
190         ndr_print_ptr(ndr, "domain", r->domain);
191         ndr->depth++;
192         if (r->domain) {
193                 ndr_print_string(ndr, "domain", r->domain);
194         }
195         ndr->depth--;
196         ndr_print_ptr(ndr, "script_path", r->script_path);
197         ndr->depth++;
198         if (r->script_path) {
199                 ndr_print_string(ndr, "script_path", r->script_path);
200         }
201         ndr->depth--;
202         ndr_print_uint32(ndr, "unknown", r->unknown);
203         ndr->depth--;
204 }
205
206 static enum ndr_err_code ndr_push_netr_UasLogoffInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasLogoffInfo *r)
207 {
208         if (ndr_flags & NDR_SCALARS) {
209                 NDR_CHECK(ndr_push_align(ndr, 4));
210                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->duration));
211                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
212         }
213         if (ndr_flags & NDR_BUFFERS) {
214         }
215         return NDR_ERR_SUCCESS;
216 }
217
218 static enum ndr_err_code ndr_pull_netr_UasLogoffInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasLogoffInfo *r)
219 {
220         if (ndr_flags & NDR_SCALARS) {
221                 NDR_CHECK(ndr_pull_align(ndr, 4));
222                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->duration));
223                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
224         }
225         if (ndr_flags & NDR_BUFFERS) {
226         }
227         return NDR_ERR_SUCCESS;
228 }
229
230 _PUBLIC_ void ndr_print_netr_UasLogoffInfo(struct ndr_print *ndr, const char *name, const struct netr_UasLogoffInfo *r)
231 {
232         ndr_print_struct(ndr, name, "netr_UasLogoffInfo");
233         ndr->depth++;
234         ndr_print_uint32(ndr, "duration", r->duration);
235         ndr_print_uint16(ndr, "logon_count", r->logon_count);
236         ndr->depth--;
237 }
238
239 _PUBLIC_ enum ndr_err_code ndr_push_netr_AcctLockStr(struct ndr_push *ndr, int ndr_flags, const struct netr_AcctLockStr *r)
240 {
241         if (ndr_flags & NDR_SCALARS) {
242                 NDR_CHECK(ndr_push_align(ndr, 4));
243                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->lockout_duration));
244                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reset_count));
245                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_attempt_lockout));
246                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy));
247         }
248         if (ndr_flags & NDR_BUFFERS) {
249         }
250         return NDR_ERR_SUCCESS;
251 }
252
253 _PUBLIC_ enum ndr_err_code ndr_pull_netr_AcctLockStr(struct ndr_pull *ndr, int ndr_flags, struct netr_AcctLockStr *r)
254 {
255         if (ndr_flags & NDR_SCALARS) {
256                 NDR_CHECK(ndr_pull_align(ndr, 4));
257                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->lockout_duration));
258                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reset_count));
259                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_attempt_lockout));
260                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
261         }
262         if (ndr_flags & NDR_BUFFERS) {
263         }
264         return NDR_ERR_SUCCESS;
265 }
266
267 _PUBLIC_ void ndr_print_netr_AcctLockStr(struct ndr_print *ndr, const char *name, const struct netr_AcctLockStr *r)
268 {
269         ndr_print_struct(ndr, name, "netr_AcctLockStr");
270         ndr->depth++;
271         ndr_print_dlong(ndr, "lockout_duration", r->lockout_duration);
272         ndr_print_udlong(ndr, "reset_count", r->reset_count);
273         ndr_print_uint32(ndr, "bad_attempt_lockout", r->bad_attempt_lockout);
274         ndr_print_uint32(ndr, "dummy", r->dummy);
275         ndr->depth--;
276 }
277
278 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonParameterControl(struct ndr_push *ndr, int ndr_flags, uint32_t r)
279 {
280         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
281         return NDR_ERR_SUCCESS;
282 }
283
284 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonParameterControl(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
285 {
286         uint32_t v;
287         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
288         *r = v;
289         return NDR_ERR_SUCCESS;
290 }
291
292 _PUBLIC_ void ndr_print_netr_LogonParameterControl(struct ndr_print *ndr, const char *name, uint32_t r)
293 {
294         ndr_print_uint32(ndr, name, r);
295         ndr->depth++;
296         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED, r);
297         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS, r);
298         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS, r);
299         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT, r);
300         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH, r);
301         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT, r);
302         ndr->depth--;
303 }
304
305 static enum ndr_err_code ndr_push_netr_IdentityInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_IdentityInfo *r)
306 {
307         if (ndr_flags & NDR_SCALARS) {
308                 NDR_CHECK(ndr_push_align(ndr, 4));
309                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
310                 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr, NDR_SCALARS, r->parameter_control));
311                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_low));
312                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_high));
313                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
314                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstation));
315         }
316         if (ndr_flags & NDR_BUFFERS) {
317                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
318                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
319                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
320         }
321         return NDR_ERR_SUCCESS;
322 }
323
324 static enum ndr_err_code ndr_pull_netr_IdentityInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_IdentityInfo *r)
325 {
326         if (ndr_flags & NDR_SCALARS) {
327                 NDR_CHECK(ndr_pull_align(ndr, 4));
328                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
329                 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr, NDR_SCALARS, &r->parameter_control));
330                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_low));
331                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_high));
332                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
333                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstation));
334         }
335         if (ndr_flags & NDR_BUFFERS) {
336                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
337                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
338                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
339         }
340         return NDR_ERR_SUCCESS;
341 }
342
343 _PUBLIC_ void ndr_print_netr_IdentityInfo(struct ndr_print *ndr, const char *name, const struct netr_IdentityInfo *r)
344 {
345         ndr_print_struct(ndr, name, "netr_IdentityInfo");
346         ndr->depth++;
347         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
348         ndr_print_netr_LogonParameterControl(ndr, "parameter_control", r->parameter_control);
349         ndr_print_uint32(ndr, "logon_id_low", r->logon_id_low);
350         ndr_print_uint32(ndr, "logon_id_high", r->logon_id_high);
351         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
352         ndr_print_lsa_String(ndr, "workstation", &r->workstation);
353         ndr->depth--;
354 }
355
356 static enum ndr_err_code ndr_push_netr_PasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordInfo *r)
357 {
358         if (ndr_flags & NDR_SCALARS) {
359                 NDR_CHECK(ndr_push_align(ndr, 4));
360                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
361                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
362                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
363         }
364         if (ndr_flags & NDR_BUFFERS) {
365                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
366         }
367         return NDR_ERR_SUCCESS;
368 }
369
370 static enum ndr_err_code ndr_pull_netr_PasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordInfo *r)
371 {
372         if (ndr_flags & NDR_SCALARS) {
373                 NDR_CHECK(ndr_pull_align(ndr, 4));
374                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
375                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
376                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
377         }
378         if (ndr_flags & NDR_BUFFERS) {
379                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
380         }
381         return NDR_ERR_SUCCESS;
382 }
383
384 _PUBLIC_ void ndr_print_netr_PasswordInfo(struct ndr_print *ndr, const char *name, const struct netr_PasswordInfo *r)
385 {
386         ndr_print_struct(ndr, name, "netr_PasswordInfo");
387         ndr->depth++;
388         ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
389         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
390         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
391         ndr->depth--;
392 }
393
394 static enum ndr_err_code ndr_push_netr_ChallengeResponse(struct ndr_push *ndr, int ndr_flags, const struct netr_ChallengeResponse *r)
395 {
396         {
397                 uint32_t _flags_save_STRUCT = ndr->flags;
398                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
399                 if (ndr_flags & NDR_SCALARS) {
400                         NDR_CHECK(ndr_push_align(ndr, 4));
401                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
402                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
403                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
404                 }
405                 if (ndr_flags & NDR_BUFFERS) {
406                         if (r->data) {
407                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
408                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
409                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
410                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
411                         }
412                 }
413                 ndr->flags = _flags_save_STRUCT;
414         }
415         return NDR_ERR_SUCCESS;
416 }
417
418 static enum ndr_err_code ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, int ndr_flags, struct netr_ChallengeResponse *r)
419 {
420         uint32_t _ptr_data;
421         TALLOC_CTX *_mem_save_data_0;
422         {
423                 uint32_t _flags_save_STRUCT = ndr->flags;
424                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
425                 if (ndr_flags & NDR_SCALARS) {
426                         NDR_CHECK(ndr_pull_align(ndr, 4));
427                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
428                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
429                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
430                         if (_ptr_data) {
431                                 NDR_PULL_ALLOC(ndr, r->data);
432                         } else {
433                                 r->data = NULL;
434                         }
435                 }
436                 if (ndr_flags & NDR_BUFFERS) {
437                         if (r->data) {
438                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
439                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
440                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
441                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
442                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
443                                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data), ndr_get_array_length(ndr, &r->data));
444                                 }
445                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
446                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
447                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
448                         }
449                         if (r->data) {
450                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
451                         }
452                         if (r->data) {
453                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length));
454                         }
455                 }
456                 ndr->flags = _flags_save_STRUCT;
457         }
458         return NDR_ERR_SUCCESS;
459 }
460
461 _PUBLIC_ void ndr_print_netr_ChallengeResponse(struct ndr_print *ndr, const char *name, const struct netr_ChallengeResponse *r)
462 {
463         ndr_print_struct(ndr, name, "netr_ChallengeResponse");
464         {
465                 uint32_t _flags_save_STRUCT = ndr->flags;
466                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
467                 ndr->depth++;
468                 ndr_print_uint16(ndr, "length", r->length);
469                 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
470                 ndr_print_ptr(ndr, "data", r->data);
471                 ndr->depth++;
472                 if (r->data) {
473                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
474                 }
475                 ndr->depth--;
476                 ndr->depth--;
477                 ndr->flags = _flags_save_STRUCT;
478         }
479 }
480
481 static enum ndr_err_code ndr_push_netr_NetworkInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_NetworkInfo *r)
482 {
483         {
484                 uint32_t _flags_save_STRUCT = ndr->flags;
485                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
486                 if (ndr_flags & NDR_SCALARS) {
487                         NDR_CHECK(ndr_push_align(ndr, 4));
488                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
489                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
490                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
491                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
492                 }
493                 if (ndr_flags & NDR_BUFFERS) {
494                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
495                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
496                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
497                 }
498                 ndr->flags = _flags_save_STRUCT;
499         }
500         return NDR_ERR_SUCCESS;
501 }
502
503 static enum ndr_err_code ndr_pull_netr_NetworkInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_NetworkInfo *r)
504 {
505         {
506                 uint32_t _flags_save_STRUCT = ndr->flags;
507                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
508                 if (ndr_flags & NDR_SCALARS) {
509                         NDR_CHECK(ndr_pull_align(ndr, 4));
510                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
511                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
512                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
513                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
514                 }
515                 if (ndr_flags & NDR_BUFFERS) {
516                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
517                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
518                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
519                 }
520                 ndr->flags = _flags_save_STRUCT;
521         }
522         return NDR_ERR_SUCCESS;
523 }
524
525 _PUBLIC_ void ndr_print_netr_NetworkInfo(struct ndr_print *ndr, const char *name, const struct netr_NetworkInfo *r)
526 {
527         ndr_print_struct(ndr, name, "netr_NetworkInfo");
528         {
529                 uint32_t _flags_save_STRUCT = ndr->flags;
530                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
531                 ndr->depth++;
532                 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
533                 ndr_print_array_uint8(ndr, "challenge", r->challenge, 8);
534                 ndr_print_netr_ChallengeResponse(ndr, "nt", &r->nt);
535                 ndr_print_netr_ChallengeResponse(ndr, "lm", &r->lm);
536                 ndr->depth--;
537                 ndr->flags = _flags_save_STRUCT;
538         }
539 }
540
541 static enum ndr_err_code ndr_push_netr_GenericInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_GenericInfo *r)
542 {
543         {
544                 uint32_t _flags_save_STRUCT = ndr->flags;
545                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
546                 if (ndr_flags & NDR_SCALARS) {
547                         NDR_CHECK(ndr_push_align(ndr, 4));
548                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
549                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->package_name));
550                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
551                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
552                 }
553                 if (ndr_flags & NDR_BUFFERS) {
554                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
555                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
556                         if (r->data) {
557                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
558                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
559                         }
560                 }
561                 ndr->flags = _flags_save_STRUCT;
562         }
563         return NDR_ERR_SUCCESS;
564 }
565
566 static enum ndr_err_code ndr_pull_netr_GenericInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_GenericInfo *r)
567 {
568         uint32_t _ptr_data;
569         TALLOC_CTX *_mem_save_data_0;
570         {
571                 uint32_t _flags_save_STRUCT = ndr->flags;
572                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
573                 if (ndr_flags & NDR_SCALARS) {
574                         NDR_CHECK(ndr_pull_align(ndr, 4));
575                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
576                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->package_name));
577                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
578                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
579                         if (_ptr_data) {
580                                 NDR_PULL_ALLOC(ndr, r->data);
581                         } else {
582                                 r->data = NULL;
583                         }
584                 }
585                 if (ndr_flags & NDR_BUFFERS) {
586                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
587                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->package_name));
588                         if (r->data) {
589                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
590                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
591                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
592                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
593                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
594                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
595                         }
596                         if (r->data) {
597                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
598                         }
599                 }
600                 ndr->flags = _flags_save_STRUCT;
601         }
602         return NDR_ERR_SUCCESS;
603 }
604
605 _PUBLIC_ void ndr_print_netr_GenericInfo(struct ndr_print *ndr, const char *name, const struct netr_GenericInfo *r)
606 {
607         ndr_print_struct(ndr, name, "netr_GenericInfo");
608         {
609                 uint32_t _flags_save_STRUCT = ndr->flags;
610                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
611                 ndr->depth++;
612                 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
613                 ndr_print_lsa_String(ndr, "package_name", &r->package_name);
614                 ndr_print_uint32(ndr, "length", r->length);
615                 ndr_print_ptr(ndr, "data", r->data);
616                 ndr->depth++;
617                 if (r->data) {
618                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
619                 }
620                 ndr->depth--;
621                 ndr->depth--;
622                 ndr->flags = _flags_save_STRUCT;
623         }
624 }
625
626 static enum ndr_err_code ndr_push_netr_LogonInfoClass(struct ndr_push *ndr, int ndr_flags, enum netr_LogonInfoClass r)
627 {
628         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
629         return NDR_ERR_SUCCESS;
630 }
631
632 static enum ndr_err_code ndr_pull_netr_LogonInfoClass(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonInfoClass *r)
633 {
634         uint16_t v;
635         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
636         *r = v;
637         return NDR_ERR_SUCCESS;
638 }
639
640 _PUBLIC_ void ndr_print_netr_LogonInfoClass(struct ndr_print *ndr, const char *name, enum netr_LogonInfoClass r)
641 {
642         const char *val = NULL;
643
644         switch (r) {
645                 case NetlogonInteractiveInformation: val = "NetlogonInteractiveInformation"; break;
646                 case NetlogonNetworkInformation: val = "NetlogonNetworkInformation"; break;
647                 case NetlogonServiceInformation: val = "NetlogonServiceInformation"; break;
648                 case NetlogonGenericInformation: val = "NetlogonGenericInformation"; break;
649                 case NetlogonInteractiveTransitiveInformation: val = "NetlogonInteractiveTransitiveInformation"; break;
650                 case NetlogonNetworkTransitiveInformation: val = "NetlogonNetworkTransitiveInformation"; break;
651                 case NetlogonServiceTransitiveInformation: val = "NetlogonServiceTransitiveInformation"; break;
652         }
653         ndr_print_enum(ndr, name, "ENUM", val, r);
654 }
655
656 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonLevel(struct ndr_push *ndr, int ndr_flags, const union netr_LogonLevel *r)
657 {
658         if (ndr_flags & NDR_SCALARS) {
659                 int level = ndr_push_get_switch_value(ndr, r);
660                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, level));
661                 switch (level) {
662                         case NetlogonInteractiveInformation: {
663                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
664                         break; }
665
666                         case NetlogonNetworkInformation: {
667                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
668                         break; }
669
670                         case NetlogonServiceInformation: {
671                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
672                         break; }
673
674                         case NetlogonGenericInformation: {
675                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->generic));
676                         break; }
677
678                         case NetlogonInteractiveTransitiveInformation: {
679                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
680                         break; }
681
682                         case NetlogonNetworkTransitiveInformation: {
683                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
684                         break; }
685
686                         case NetlogonServiceTransitiveInformation: {
687                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
688                         break; }
689
690                         default:
691                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
692                 }
693         }
694         if (ndr_flags & NDR_BUFFERS) {
695                 int level = ndr_push_get_switch_value(ndr, r);
696                 switch (level) {
697                         case NetlogonInteractiveInformation:
698                                 if (r->password) {
699                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
700                                 }
701                         break;
702
703                         case NetlogonNetworkInformation:
704                                 if (r->network) {
705                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
706                                 }
707                         break;
708
709                         case NetlogonServiceInformation:
710                                 if (r->password) {
711                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
712                                 }
713                         break;
714
715                         case NetlogonGenericInformation:
716                                 if (r->generic) {
717                                         NDR_CHECK(ndr_push_netr_GenericInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
718                                 }
719                         break;
720
721                         case NetlogonInteractiveTransitiveInformation:
722                                 if (r->password) {
723                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
724                                 }
725                         break;
726
727                         case NetlogonNetworkTransitiveInformation:
728                                 if (r->network) {
729                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
730                                 }
731                         break;
732
733                         case NetlogonServiceTransitiveInformation:
734                                 if (r->password) {
735                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
736                                 }
737                         break;
738
739                         default:
740                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
741                 }
742         }
743         return NDR_ERR_SUCCESS;
744 }
745
746 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonLevel(struct ndr_pull *ndr, int ndr_flags, union netr_LogonLevel *r)
747 {
748         int level;
749         uint16_t _level;
750         TALLOC_CTX *_mem_save_password_0;
751         TALLOC_CTX *_mem_save_network_0;
752         TALLOC_CTX *_mem_save_generic_0;
753         level = ndr_pull_get_switch_value(ndr, r);
754         if (ndr_flags & NDR_SCALARS) {
755                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
756                 if (_level != level) {
757                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
758                 }
759                 switch (level) {
760                         case NetlogonInteractiveInformation: {
761                                 uint32_t _ptr_password;
762                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
763                                 if (_ptr_password) {
764                                         NDR_PULL_ALLOC(ndr, r->password);
765                                 } else {
766                                         r->password = NULL;
767                                 }
768                         break; }
769
770                         case NetlogonNetworkInformation: {
771                                 uint32_t _ptr_network;
772                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
773                                 if (_ptr_network) {
774                                         NDR_PULL_ALLOC(ndr, r->network);
775                                 } else {
776                                         r->network = NULL;
777                                 }
778                         break; }
779
780                         case NetlogonServiceInformation: {
781                                 uint32_t _ptr_password;
782                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
783                                 if (_ptr_password) {
784                                         NDR_PULL_ALLOC(ndr, r->password);
785                                 } else {
786                                         r->password = NULL;
787                                 }
788                         break; }
789
790                         case NetlogonGenericInformation: {
791                                 uint32_t _ptr_generic;
792                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_generic));
793                                 if (_ptr_generic) {
794                                         NDR_PULL_ALLOC(ndr, r->generic);
795                                 } else {
796                                         r->generic = NULL;
797                                 }
798                         break; }
799
800                         case NetlogonInteractiveTransitiveInformation: {
801                                 uint32_t _ptr_password;
802                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
803                                 if (_ptr_password) {
804                                         NDR_PULL_ALLOC(ndr, r->password);
805                                 } else {
806                                         r->password = NULL;
807                                 }
808                         break; }
809
810                         case NetlogonNetworkTransitiveInformation: {
811                                 uint32_t _ptr_network;
812                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
813                                 if (_ptr_network) {
814                                         NDR_PULL_ALLOC(ndr, r->network);
815                                 } else {
816                                         r->network = NULL;
817                                 }
818                         break; }
819
820                         case NetlogonServiceTransitiveInformation: {
821                                 uint32_t _ptr_password;
822                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
823                                 if (_ptr_password) {
824                                         NDR_PULL_ALLOC(ndr, r->password);
825                                 } else {
826                                         r->password = NULL;
827                                 }
828                         break; }
829
830                         default:
831                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
832                 }
833         }
834         if (ndr_flags & NDR_BUFFERS) {
835                 switch (level) {
836                         case NetlogonInteractiveInformation:
837                                 if (r->password) {
838                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
839                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
840                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
841                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
842                                 }
843                         break;
844
845                         case NetlogonNetworkInformation:
846                                 if (r->network) {
847                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
848                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
849                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
850                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
851                                 }
852                         break;
853
854                         case NetlogonServiceInformation:
855                                 if (r->password) {
856                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
857                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
858                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
859                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
860                                 }
861                         break;
862
863                         case NetlogonGenericInformation:
864                                 if (r->generic) {
865                                         _mem_save_generic_0 = NDR_PULL_GET_MEM_CTX(ndr);
866                                         NDR_PULL_SET_MEM_CTX(ndr, r->generic, 0);
867                                         NDR_CHECK(ndr_pull_netr_GenericInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
868                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_generic_0, 0);
869                                 }
870                         break;
871
872                         case NetlogonInteractiveTransitiveInformation:
873                                 if (r->password) {
874                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
875                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
876                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
877                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
878                                 }
879                         break;
880
881                         case NetlogonNetworkTransitiveInformation:
882                                 if (r->network) {
883                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
884                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
885                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
886                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
887                                 }
888                         break;
889
890                         case NetlogonServiceTransitiveInformation:
891                                 if (r->password) {
892                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
893                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
894                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
895                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
896                                 }
897                         break;
898
899                         default:
900                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
901                 }
902         }
903         return NDR_ERR_SUCCESS;
904 }
905
906 _PUBLIC_ void ndr_print_netr_LogonLevel(struct ndr_print *ndr, const char *name, const union netr_LogonLevel *r)
907 {
908         int level;
909         level = ndr_print_get_switch_value(ndr, r);
910         ndr_print_union(ndr, name, level, "netr_LogonLevel");
911         switch (level) {
912                 case NetlogonInteractiveInformation:
913                         ndr_print_ptr(ndr, "password", r->password);
914                         ndr->depth++;
915                         if (r->password) {
916                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
917                         }
918                         ndr->depth--;
919                 break;
920
921                 case NetlogonNetworkInformation:
922                         ndr_print_ptr(ndr, "network", r->network);
923                         ndr->depth++;
924                         if (r->network) {
925                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
926                         }
927                         ndr->depth--;
928                 break;
929
930                 case NetlogonServiceInformation:
931                         ndr_print_ptr(ndr, "password", r->password);
932                         ndr->depth++;
933                         if (r->password) {
934                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
935                         }
936                         ndr->depth--;
937                 break;
938
939                 case NetlogonGenericInformation:
940                         ndr_print_ptr(ndr, "generic", r->generic);
941                         ndr->depth++;
942                         if (r->generic) {
943                                 ndr_print_netr_GenericInfo(ndr, "generic", r->generic);
944                         }
945                         ndr->depth--;
946                 break;
947
948                 case NetlogonInteractiveTransitiveInformation:
949                         ndr_print_ptr(ndr, "password", r->password);
950                         ndr->depth++;
951                         if (r->password) {
952                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
953                         }
954                         ndr->depth--;
955                 break;
956
957                 case NetlogonNetworkTransitiveInformation:
958                         ndr_print_ptr(ndr, "network", r->network);
959                         ndr->depth++;
960                         if (r->network) {
961                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
962                         }
963                         ndr->depth--;
964                 break;
965
966                 case NetlogonServiceTransitiveInformation:
967                         ndr_print_ptr(ndr, "password", r->password);
968                         ndr->depth++;
969                         if (r->password) {
970                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
971                         }
972                         ndr->depth--;
973                 break;
974
975                 default:
976                         ndr_print_bad_level(ndr, name, level);
977         }
978 }
979
980 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_UserSessionKey *r)
981 {
982         {
983                 uint32_t _flags_save_STRUCT = ndr->flags;
984                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
985                 if (ndr_flags & NDR_SCALARS) {
986                         NDR_CHECK(ndr_push_align(ndr, 1));
987                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 16));
988                 }
989                 if (ndr_flags & NDR_BUFFERS) {
990                 }
991                 ndr->flags = _flags_save_STRUCT;
992         }
993         return NDR_ERR_SUCCESS;
994 }
995
996 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r)
997 {
998         {
999                 uint32_t _flags_save_STRUCT = ndr->flags;
1000                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1001                 if (ndr_flags & NDR_SCALARS) {
1002                         NDR_CHECK(ndr_pull_align(ndr, 1));
1003                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16));
1004                 }
1005                 if (ndr_flags & NDR_BUFFERS) {
1006                 }
1007                 ndr->flags = _flags_save_STRUCT;
1008         }
1009         return NDR_ERR_SUCCESS;
1010 }
1011
1012 _PUBLIC_ void ndr_print_netr_UserSessionKey(struct ndr_print *ndr, const char *name, const struct netr_UserSessionKey *r)
1013 {
1014         ndr_print_struct(ndr, name, "netr_UserSessionKey");
1015         {
1016                 uint32_t _flags_save_STRUCT = ndr->flags;
1017                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1018                 ndr->depth++;
1019                 ndr_print_array_uint8(ndr, "key", r->key, 16);
1020                 ndr->depth--;
1021                 ndr->flags = _flags_save_STRUCT;
1022         }
1023 }
1024
1025 _PUBLIC_ enum ndr_err_code ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_LMSessionKey *r)
1026 {
1027         {
1028                 uint32_t _flags_save_STRUCT = ndr->flags;
1029                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1030                 if (ndr_flags & NDR_SCALARS) {
1031                         NDR_CHECK(ndr_push_align(ndr, 1));
1032                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 8));
1033                 }
1034                 if (ndr_flags & NDR_BUFFERS) {
1035                 }
1036                 ndr->flags = _flags_save_STRUCT;
1037         }
1038         return NDR_ERR_SUCCESS;
1039 }
1040
1041 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r)
1042 {
1043         {
1044                 uint32_t _flags_save_STRUCT = ndr->flags;
1045                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1046                 if (ndr_flags & NDR_SCALARS) {
1047                         NDR_CHECK(ndr_pull_align(ndr, 1));
1048                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8));
1049                 }
1050                 if (ndr_flags & NDR_BUFFERS) {
1051                 }
1052                 ndr->flags = _flags_save_STRUCT;
1053         }
1054         return NDR_ERR_SUCCESS;
1055 }
1056
1057 _PUBLIC_ void ndr_print_netr_LMSessionKey(struct ndr_print *ndr, const char *name, const struct netr_LMSessionKey *r)
1058 {
1059         ndr_print_struct(ndr, name, "netr_LMSessionKey");
1060         {
1061                 uint32_t _flags_save_STRUCT = ndr->flags;
1062                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1063                 ndr->depth++;
1064                 ndr_print_array_uint8(ndr, "key", r->key, 8);
1065                 ndr->depth--;
1066                 ndr->flags = _flags_save_STRUCT;
1067         }
1068 }
1069
1070 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1071 {
1072         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1073         return NDR_ERR_SUCCESS;
1074 }
1075
1076 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1077 {
1078         uint32_t v;
1079         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1080         *r = v;
1081         return NDR_ERR_SUCCESS;
1082 }
1083
1084 _PUBLIC_ void ndr_print_netr_UserFlags(struct ndr_print *ndr, const char *name, uint32_t r)
1085 {
1086         ndr_print_uint32(ndr, name, r);
1087         ndr->depth++;
1088         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST, r);
1089         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION, r);
1090         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT, r);
1091         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD, r);
1092         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS, r);
1093         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY, r);
1094         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT, r);
1095         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED, r);
1096         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS, r);
1097         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED, r);
1098         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON, r);
1099         ndr->depth--;
1100 }
1101
1102 static enum ndr_err_code ndr_push_netr_SamBaseInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_SamBaseInfo *r)
1103 {
1104         uint32_t cntr_unknown_0;
1105         if (ndr_flags & NDR_SCALARS) {
1106                 NDR_CHECK(ndr_push_align(ndr, 4));
1107                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
1108                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
1109                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
1110                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
1111                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
1112                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
1113                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1114                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1115                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
1116                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
1117                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
1118                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
1119                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
1120                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
1121                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
1122                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
1123                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1124                 NDR_CHECK(ndr_push_netr_UserFlags(ndr, NDR_SCALARS, r->user_flags));
1125                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
1126                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
1127                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
1128                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
1129                 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
1130                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
1131                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1132                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
1133                 }
1134         }
1135         if (ndr_flags & NDR_BUFFERS) {
1136                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1137                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1138                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1139                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1140                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1141                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1142                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1143                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1144                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1145                 if (r->domain_sid) {
1146                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1147                 }
1148         }
1149         return NDR_ERR_SUCCESS;
1150 }
1151
1152 static enum ndr_err_code ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_SamBaseInfo *r)
1153 {
1154         uint32_t _ptr_domain_sid;
1155         TALLOC_CTX *_mem_save_domain_sid_0;
1156         uint32_t cntr_unknown_0;
1157         if (ndr_flags & NDR_SCALARS) {
1158                 NDR_CHECK(ndr_pull_align(ndr, 4));
1159                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
1160                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
1161                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
1162                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
1163                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
1164                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
1165                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1166                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1167                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
1168                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
1169                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
1170                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
1171                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
1172                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
1173                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
1174                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
1175                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1176                 NDR_CHECK(ndr_pull_netr_UserFlags(ndr, NDR_SCALARS, &r->user_flags));
1177                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
1178                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
1179                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
1180                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
1181                 if (_ptr_domain_sid) {
1182                         NDR_PULL_ALLOC(ndr, r->domain_sid);
1183                 } else {
1184                         r->domain_sid = NULL;
1185                 }
1186                 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
1187                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
1188                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1189                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
1190                 }
1191         }
1192         if (ndr_flags & NDR_BUFFERS) {
1193                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1194                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1195                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1196                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1197                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1198                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1199                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1200                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1201                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1202                 if (r->domain_sid) {
1203                         _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1204                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1205                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1206                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1207                 }
1208         }
1209         return NDR_ERR_SUCCESS;
1210 }
1211
1212 _PUBLIC_ void ndr_print_netr_SamBaseInfo(struct ndr_print *ndr, const char *name, const struct netr_SamBaseInfo *r)
1213 {
1214         uint32_t cntr_unknown_0;
1215         ndr_print_struct(ndr, name, "netr_SamBaseInfo");
1216         ndr->depth++;
1217         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
1218         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
1219         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
1220         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
1221         ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
1222         ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
1223         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
1224         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
1225         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
1226         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
1227         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
1228         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
1229         ndr_print_uint16(ndr, "logon_count", r->logon_count);
1230         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
1231         ndr_print_uint32(ndr, "rid", r->rid);
1232         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
1233         ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
1234         ndr_print_netr_UserFlags(ndr, "user_flags", r->user_flags);
1235         ndr_print_netr_UserSessionKey(ndr, "key", &r->key);
1236         ndr_print_lsa_StringLarge(ndr, "logon_server", &r->logon_server);
1237         ndr_print_lsa_StringLarge(ndr, "domain", &r->domain);
1238         ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
1239         ndr->depth++;
1240         if (r->domain_sid) {
1241                 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
1242         }
1243         ndr->depth--;
1244         ndr_print_netr_LMSessionKey(ndr, "LMSessKey", &r->LMSessKey);
1245         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
1246         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", (int)7);
1247         ndr->depth++;
1248         for (cntr_unknown_0=0;cntr_unknown_0<7;cntr_unknown_0++) {
1249                 char *idx_0=NULL;
1250                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
1251                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
1252                         free(idx_0);
1253                 }
1254         }
1255         ndr->depth--;
1256         ndr->depth--;
1257 }
1258
1259 static enum ndr_err_code ndr_push_netr_SamInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo2 *r)
1260 {
1261         if (ndr_flags & NDR_SCALARS) {
1262                 NDR_CHECK(ndr_push_align(ndr, 4));
1263                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1264         }
1265         if (ndr_flags & NDR_BUFFERS) {
1266                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1267         }
1268         return NDR_ERR_SUCCESS;
1269 }
1270
1271 static enum ndr_err_code ndr_pull_netr_SamInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo2 *r)
1272 {
1273         if (ndr_flags & NDR_SCALARS) {
1274                 NDR_CHECK(ndr_pull_align(ndr, 4));
1275                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1276         }
1277         if (ndr_flags & NDR_BUFFERS) {
1278                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1279         }
1280         return NDR_ERR_SUCCESS;
1281 }
1282
1283 _PUBLIC_ void ndr_print_netr_SamInfo2(struct ndr_print *ndr, const char *name, const struct netr_SamInfo2 *r)
1284 {
1285         ndr_print_struct(ndr, name, "netr_SamInfo2");
1286         ndr->depth++;
1287         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1288         ndr->depth--;
1289 }
1290
1291 static enum ndr_err_code ndr_push_netr_SidAttr(struct ndr_push *ndr, int ndr_flags, const struct netr_SidAttr *r)
1292 {
1293         if (ndr_flags & NDR_SCALARS) {
1294                 NDR_CHECK(ndr_push_align(ndr, 4));
1295                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
1296                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
1297         }
1298         if (ndr_flags & NDR_BUFFERS) {
1299                 if (r->sid) {
1300                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1301                 }
1302         }
1303         return NDR_ERR_SUCCESS;
1304 }
1305
1306 static enum ndr_err_code ndr_pull_netr_SidAttr(struct ndr_pull *ndr, int ndr_flags, struct netr_SidAttr *r)
1307 {
1308         uint32_t _ptr_sid;
1309         TALLOC_CTX *_mem_save_sid_0;
1310         if (ndr_flags & NDR_SCALARS) {
1311                 NDR_CHECK(ndr_pull_align(ndr, 4));
1312                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
1313                 if (_ptr_sid) {
1314                         NDR_PULL_ALLOC(ndr, r->sid);
1315                 } else {
1316                         r->sid = NULL;
1317                 }
1318                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
1319         }
1320         if (ndr_flags & NDR_BUFFERS) {
1321                 if (r->sid) {
1322                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1323                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
1324                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1325                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
1326                 }
1327         }
1328         return NDR_ERR_SUCCESS;
1329 }
1330
1331 _PUBLIC_ void ndr_print_netr_SidAttr(struct ndr_print *ndr, const char *name, const struct netr_SidAttr *r)
1332 {
1333         ndr_print_struct(ndr, name, "netr_SidAttr");
1334         ndr->depth++;
1335         ndr_print_ptr(ndr, "sid", r->sid);
1336         ndr->depth++;
1337         if (r->sid) {
1338                 ndr_print_dom_sid2(ndr, "sid", r->sid);
1339         }
1340         ndr->depth--;
1341         ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
1342         ndr->depth--;
1343 }
1344
1345 _PUBLIC_ enum ndr_err_code ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo3 *r)
1346 {
1347         uint32_t cntr_sids_1;
1348         if (ndr_flags & NDR_SCALARS) {
1349                 NDR_CHECK(ndr_push_align(ndr, 4));
1350                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1351                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1352                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1353         }
1354         if (ndr_flags & NDR_BUFFERS) {
1355                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1356                 if (r->sids) {
1357                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1358                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1359                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1360                         }
1361                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1362                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1363                         }
1364                 }
1365         }
1366         return NDR_ERR_SUCCESS;
1367 }
1368
1369 _PUBLIC_ enum ndr_err_code ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r)
1370 {
1371         uint32_t _ptr_sids;
1372         uint32_t cntr_sids_1;
1373         TALLOC_CTX *_mem_save_sids_0;
1374         TALLOC_CTX *_mem_save_sids_1;
1375         if (ndr_flags & NDR_SCALARS) {
1376                 NDR_CHECK(ndr_pull_align(ndr, 4));
1377                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1378                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1379                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1380                 if (_ptr_sids) {
1381                         NDR_PULL_ALLOC(ndr, r->sids);
1382                 } else {
1383                         r->sids = NULL;
1384                 }
1385         }
1386         if (ndr_flags & NDR_BUFFERS) {
1387                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1388                 if (r->sids) {
1389                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1390                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1391                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1392                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1393                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1394                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1395                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1396                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1397                         }
1398                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1399                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1400                         }
1401                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1402                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1403                 }
1404                 if (r->sids) {
1405                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1406                 }
1407         }
1408         return NDR_ERR_SUCCESS;
1409 }
1410
1411 _PUBLIC_ void ndr_print_netr_SamInfo3(struct ndr_print *ndr, const char *name, const struct netr_SamInfo3 *r)
1412 {
1413         uint32_t cntr_sids_1;
1414         ndr_print_struct(ndr, name, "netr_SamInfo3");
1415         ndr->depth++;
1416         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1417         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1418         ndr_print_ptr(ndr, "sids", r->sids);
1419         ndr->depth++;
1420         if (r->sids) {
1421                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1422                 ndr->depth++;
1423                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1424                         char *idx_1=NULL;
1425                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1426                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1427                                 free(idx_1);
1428                         }
1429                 }
1430                 ndr->depth--;
1431         }
1432         ndr->depth--;
1433         ndr->depth--;
1434 }
1435
1436 static enum ndr_err_code ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo6 *r)
1437 {
1438         uint32_t cntr_sids_1;
1439         uint32_t cntr_unknown4_0;
1440         if (ndr_flags & NDR_SCALARS) {
1441                 NDR_CHECK(ndr_push_align(ndr, 4));
1442                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1443                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1444                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1445                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
1446                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principle));
1447                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1448                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4[cntr_unknown4_0]));
1449                 }
1450         }
1451         if (ndr_flags & NDR_BUFFERS) {
1452                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1453                 if (r->sids) {
1454                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1455                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1456                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1457                         }
1458                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1459                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1460                         }
1461                 }
1462                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1463                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1464         }
1465         return NDR_ERR_SUCCESS;
1466 }
1467
1468 static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r)
1469 {
1470         uint32_t _ptr_sids;
1471         uint32_t cntr_sids_1;
1472         TALLOC_CTX *_mem_save_sids_0;
1473         TALLOC_CTX *_mem_save_sids_1;
1474         uint32_t cntr_unknown4_0;
1475         if (ndr_flags & NDR_SCALARS) {
1476                 NDR_CHECK(ndr_pull_align(ndr, 4));
1477                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1478                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1479                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1480                 if (_ptr_sids) {
1481                         NDR_PULL_ALLOC(ndr, r->sids);
1482                 } else {
1483                         r->sids = NULL;
1484                 }
1485                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
1486                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle));
1487                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1488                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0]));
1489                 }
1490         }
1491         if (ndr_flags & NDR_BUFFERS) {
1492                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1493                 if (r->sids) {
1494                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1495                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1496                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1497                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1498                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1499                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1500                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1501                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1502                         }
1503                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1504                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1505                         }
1506                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1507                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1508                 }
1509                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1510                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1511                 if (r->sids) {
1512                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1513                 }
1514         }
1515         return NDR_ERR_SUCCESS;
1516 }
1517
1518 _PUBLIC_ void ndr_print_netr_SamInfo6(struct ndr_print *ndr, const char *name, const struct netr_SamInfo6 *r)
1519 {
1520         uint32_t cntr_sids_1;
1521         uint32_t cntr_unknown4_0;
1522         ndr_print_struct(ndr, name, "netr_SamInfo6");
1523         ndr->depth++;
1524         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1525         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1526         ndr_print_ptr(ndr, "sids", r->sids);
1527         ndr->depth++;
1528         if (r->sids) {
1529                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->sidcount);
1530                 ndr->depth++;
1531                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1532                         char *idx_1=NULL;
1533                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1534                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1535                                 free(idx_1);
1536                         }
1537                 }
1538                 ndr->depth--;
1539         }
1540         ndr->depth--;
1541         ndr_print_lsa_String(ndr, "forest", &r->forest);
1542         ndr_print_lsa_String(ndr, "principle", &r->principle);
1543         ndr->print(ndr, "%s: ARRAY(%d)", "unknown4", (int)20);
1544         ndr->depth++;
1545         for (cntr_unknown4_0=0;cntr_unknown4_0<20;cntr_unknown4_0++) {
1546                 char *idx_0=NULL;
1547                 if (asprintf(&idx_0, "[%d]", cntr_unknown4_0) != -1) {
1548                         ndr_print_uint32(ndr, "unknown4", r->unknown4[cntr_unknown4_0]);
1549                         free(idx_0);
1550                 }
1551         }
1552         ndr->depth--;
1553         ndr->depth--;
1554 }
1555
1556 static enum ndr_err_code ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PacInfo *r)
1557 {
1558         uint32_t cntr_expansionroom_0;
1559         if (ndr_flags & NDR_SCALARS) {
1560                 NDR_CHECK(ndr_push_align(ndr, 4));
1561                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1562                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1563                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1564                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1565                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1566                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1567                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth));
1568                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1569                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1570                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->expansionroom[cntr_expansionroom_0]));
1571                 }
1572                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1573                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1574                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1575                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1576         }
1577         if (ndr_flags & NDR_BUFFERS) {
1578                 if (r->pac) {
1579                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1580                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pac, r->pac_size));
1581                 }
1582                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1583                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1584                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1585                 if (r->auth) {
1586                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1587                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->auth, r->auth_size));
1588                 }
1589                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1590                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1591                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1592                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1593         }
1594         return NDR_ERR_SUCCESS;
1595 }
1596
1597 static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r)
1598 {
1599         uint32_t _ptr_pac;
1600         TALLOC_CTX *_mem_save_pac_0;
1601         uint32_t _ptr_auth;
1602         TALLOC_CTX *_mem_save_auth_0;
1603         uint32_t cntr_expansionroom_0;
1604         if (ndr_flags & NDR_SCALARS) {
1605                 NDR_CHECK(ndr_pull_align(ndr, 4));
1606                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pac_size));
1607                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1608                 if (_ptr_pac) {
1609                         NDR_PULL_ALLOC(ndr, r->pac);
1610                 } else {
1611                         r->pac = NULL;
1612                 }
1613                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1614                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1615                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1616                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_size));
1617                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_auth));
1618                 if (_ptr_auth) {
1619                         NDR_PULL_ALLOC(ndr, r->auth);
1620                 } else {
1621                         r->auth = NULL;
1622                 }
1623                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1624                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1625                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0]));
1626                 }
1627                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1628                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1629                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1630                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1631         }
1632         if (ndr_flags & NDR_BUFFERS) {
1633                 if (r->pac) {
1634                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1635                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1636                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pac));
1637                         NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac));
1638                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac)));
1639                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1640                 }
1641                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1642                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1643                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1644                 if (r->auth) {
1645                         _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr);
1646                         NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0);
1647                         NDR_CHECK(ndr_pull_array_size(ndr, &r->auth));
1648                         NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth));
1649                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth)));
1650                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0);
1651                 }
1652                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1653                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1654                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1655                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1656                 if (r->pac) {
1657                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pac, r->pac_size));
1658                 }
1659                 if (r->auth) {
1660                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->auth, r->auth_size));
1661                 }
1662         }
1663         return NDR_ERR_SUCCESS;
1664 }
1665
1666 _PUBLIC_ void ndr_print_netr_PacInfo(struct ndr_print *ndr, const char *name, const struct netr_PacInfo *r)
1667 {
1668         uint32_t cntr_expansionroom_0;
1669         ndr_print_struct(ndr, name, "netr_PacInfo");
1670         ndr->depth++;
1671         ndr_print_uint32(ndr, "pac_size", r->pac_size);
1672         ndr_print_ptr(ndr, "pac", r->pac);
1673         ndr->depth++;
1674         if (r->pac) {
1675                 ndr_print_array_uint8(ndr, "pac", r->pac, r->pac_size);
1676         }
1677         ndr->depth--;
1678         ndr_print_lsa_String(ndr, "logon_domain", &r->logon_domain);
1679         ndr_print_lsa_String(ndr, "logon_server", &r->logon_server);
1680         ndr_print_lsa_String(ndr, "principal_name", &r->principal_name);
1681         ndr_print_uint32(ndr, "auth_size", r->auth_size);
1682         ndr_print_ptr(ndr, "auth", r->auth);
1683         ndr->depth++;
1684         if (r->auth) {
1685                 ndr_print_array_uint8(ndr, "auth", r->auth, r->auth_size);
1686         }
1687         ndr->depth--;
1688         ndr_print_netr_UserSessionKey(ndr, "user_session_key", &r->user_session_key);
1689         ndr->print(ndr, "%s: ARRAY(%d)", "expansionroom", (int)10);
1690         ndr->depth++;
1691         for (cntr_expansionroom_0=0;cntr_expansionroom_0<10;cntr_expansionroom_0++) {
1692                 char *idx_0=NULL;
1693                 if (asprintf(&idx_0, "[%d]", cntr_expansionroom_0) != -1) {
1694                         ndr_print_uint32(ndr, "expansionroom", r->expansionroom[cntr_expansionroom_0]);
1695                         free(idx_0);
1696                 }
1697         }
1698         ndr->depth--;
1699         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1700         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1701         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1702         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1703         ndr->depth--;
1704 }
1705
1706 static enum ndr_err_code ndr_push_netr_GenericInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_GenericInfo2 *r)
1707 {
1708         {
1709                 uint32_t _flags_save_STRUCT = ndr->flags;
1710                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1711                 if (ndr_flags & NDR_SCALARS) {
1712                         NDR_CHECK(ndr_push_align(ndr, 4));
1713                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
1714                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
1715                 }
1716                 if (ndr_flags & NDR_BUFFERS) {
1717                         if (r->data) {
1718                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
1719                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
1720                         }
1721                 }
1722                 ndr->flags = _flags_save_STRUCT;
1723         }
1724         return NDR_ERR_SUCCESS;
1725 }
1726
1727 static enum ndr_err_code ndr_pull_netr_GenericInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_GenericInfo2 *r)
1728 {
1729         uint32_t _ptr_data;
1730         TALLOC_CTX *_mem_save_data_0;
1731         {
1732                 uint32_t _flags_save_STRUCT = ndr->flags;
1733                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1734                 if (ndr_flags & NDR_SCALARS) {
1735                         NDR_CHECK(ndr_pull_align(ndr, 4));
1736                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
1737                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
1738                         if (_ptr_data) {
1739                                 NDR_PULL_ALLOC(ndr, r->data);
1740                         } else {
1741                                 r->data = NULL;
1742                         }
1743                 }
1744                 if (ndr_flags & NDR_BUFFERS) {
1745                         if (r->data) {
1746                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
1747                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
1748                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
1749                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
1750                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
1751                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
1752                         }
1753                         if (r->data) {
1754                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
1755                         }
1756                 }
1757                 ndr->flags = _flags_save_STRUCT;
1758         }
1759         return NDR_ERR_SUCCESS;
1760 }
1761
1762 _PUBLIC_ void ndr_print_netr_GenericInfo2(struct ndr_print *ndr, const char *name, const struct netr_GenericInfo2 *r)
1763 {
1764         ndr_print_struct(ndr, name, "netr_GenericInfo2");
1765         {
1766                 uint32_t _flags_save_STRUCT = ndr->flags;
1767                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1768                 ndr->depth++;
1769                 ndr_print_uint32(ndr, "length", r->length);
1770                 ndr_print_ptr(ndr, "data", r->data);
1771                 ndr->depth++;
1772                 if (r->data) {
1773                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
1774                 }
1775                 ndr->depth--;
1776                 ndr->depth--;
1777                 ndr->flags = _flags_save_STRUCT;
1778         }
1779 }
1780
1781 _PUBLIC_ enum ndr_err_code ndr_push_netr_Validation(struct ndr_push *ndr, int ndr_flags, const union netr_Validation *r)
1782 {
1783         if (ndr_flags & NDR_SCALARS) {
1784                 int level = ndr_push_get_switch_value(ndr, r);
1785                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
1786                 switch (level) {
1787                         case NetlogonValidationSamInfo: {
1788                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam2));
1789                         break; }
1790
1791                         case NetlogonValidationSamInfo2: {
1792                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam3));
1793                         break; }
1794
1795                         case 4: {
1796                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1797                         break; }
1798
1799                         case NetlogonValidationGenericInfo2: {
1800                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->generic));
1801                         break; }
1802
1803                         case NetlogonValidationSamInfo4: {
1804                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam6));
1805                         break; }
1806
1807                         default:
1808                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1809                 }
1810         }
1811         if (ndr_flags & NDR_BUFFERS) {
1812                 int level = ndr_push_get_switch_value(ndr, r);
1813                 switch (level) {
1814                         case NetlogonValidationSamInfo:
1815                                 if (r->sam2) {
1816                                         NDR_CHECK(ndr_push_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1817                                 }
1818                         break;
1819
1820                         case NetlogonValidationSamInfo2:
1821                                 if (r->sam3) {
1822                                         NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1823                                 }
1824                         break;
1825
1826                         case 4:
1827                                 if (r->pac) {
1828                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1829                                 }
1830                         break;
1831
1832                         case NetlogonValidationGenericInfo2:
1833                                 if (r->generic) {
1834                                         NDR_CHECK(ndr_push_netr_GenericInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
1835                                 }
1836                         break;
1837
1838                         case NetlogonValidationSamInfo4:
1839                                 if (r->sam6) {
1840                                         NDR_CHECK(ndr_push_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1841                                 }
1842                         break;
1843
1844                         default:
1845                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1846                 }
1847         }
1848         return NDR_ERR_SUCCESS;
1849 }
1850
1851 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int ndr_flags, union netr_Validation *r)
1852 {
1853         int level;
1854         uint16_t _level;
1855         TALLOC_CTX *_mem_save_sam2_0;
1856         TALLOC_CTX *_mem_save_sam3_0;
1857         TALLOC_CTX *_mem_save_pac_0;
1858         TALLOC_CTX *_mem_save_generic_0;
1859         TALLOC_CTX *_mem_save_sam6_0;
1860         level = ndr_pull_get_switch_value(ndr, r);
1861         if (ndr_flags & NDR_SCALARS) {
1862                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1863                 if (_level != level) {
1864                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1865                 }
1866                 switch (level) {
1867                         case NetlogonValidationSamInfo: {
1868                                 uint32_t _ptr_sam2;
1869                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2));
1870                                 if (_ptr_sam2) {
1871                                         NDR_PULL_ALLOC(ndr, r->sam2);
1872                                 } else {
1873                                         r->sam2 = NULL;
1874                                 }
1875                         break; }
1876
1877                         case NetlogonValidationSamInfo2: {
1878                                 uint32_t _ptr_sam3;
1879                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3));
1880                                 if (_ptr_sam3) {
1881                                         NDR_PULL_ALLOC(ndr, r->sam3);
1882                                 } else {
1883                                         r->sam3 = NULL;
1884                                 }
1885                         break; }
1886
1887                         case 4: {
1888                                 uint32_t _ptr_pac;
1889                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1890                                 if (_ptr_pac) {
1891                                         NDR_PULL_ALLOC(ndr, r->pac);
1892                                 } else {
1893                                         r->pac = NULL;
1894                                 }
1895                         break; }
1896
1897                         case NetlogonValidationGenericInfo2: {
1898                                 uint32_t _ptr_generic;
1899                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_generic));
1900                                 if (_ptr_generic) {
1901                                         NDR_PULL_ALLOC(ndr, r->generic);
1902                                 } else {
1903                                         r->generic = NULL;
1904                                 }
1905                         break; }
1906
1907                         case NetlogonValidationSamInfo4: {
1908                                 uint32_t _ptr_sam6;
1909                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6));
1910                                 if (_ptr_sam6) {
1911                                         NDR_PULL_ALLOC(ndr, r->sam6);
1912                                 } else {
1913                                         r->sam6 = NULL;
1914                                 }
1915                         break; }
1916
1917                         default:
1918                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1919                 }
1920         }
1921         if (ndr_flags & NDR_BUFFERS) {
1922                 switch (level) {
1923                         case NetlogonValidationSamInfo:
1924                                 if (r->sam2) {
1925                                         _mem_save_sam2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1926                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam2, 0);
1927                                         NDR_CHECK(ndr_pull_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1928                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam2_0, 0);
1929                                 }
1930                         break;
1931
1932                         case NetlogonValidationSamInfo2:
1933                                 if (r->sam3) {
1934                                         _mem_save_sam3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1935                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam3, 0);
1936                                         NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1937                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam3_0, 0);
1938                                 }
1939                         break;
1940
1941                         case 4:
1942                                 if (r->pac) {
1943                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1944                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1945                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1946                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1947                                 }
1948                         break;
1949
1950                         case NetlogonValidationGenericInfo2:
1951                                 if (r->generic) {
1952                                         _mem_save_generic_0 = NDR_PULL_GET_MEM_CTX(ndr);
1953                                         NDR_PULL_SET_MEM_CTX(ndr, r->generic, 0);
1954                                         NDR_CHECK(ndr_pull_netr_GenericInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->generic));
1955                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_generic_0, 0);
1956                                 }
1957                         break;
1958
1959                         case NetlogonValidationSamInfo4:
1960                                 if (r->sam6) {
1961                                         _mem_save_sam6_0 = NDR_PULL_GET_MEM_CTX(ndr);
1962                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam6, 0);
1963                                         NDR_CHECK(ndr_pull_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1964                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam6_0, 0);
1965                                 }
1966                         break;
1967
1968                         default:
1969                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1970                 }
1971         }
1972         return NDR_ERR_SUCCESS;
1973 }
1974
1975 _PUBLIC_ void ndr_print_netr_Validation(struct ndr_print *ndr, const char *name, const union netr_Validation *r)
1976 {
1977         int level;
1978         level = ndr_print_get_switch_value(ndr, r);
1979         ndr_print_union(ndr, name, level, "netr_Validation");
1980         switch (level) {
1981                 case NetlogonValidationSamInfo:
1982                         ndr_print_ptr(ndr, "sam2", r->sam2);
1983                         ndr->depth++;
1984                         if (r->sam2) {
1985                                 ndr_print_netr_SamInfo2(ndr, "sam2", r->sam2);
1986                         }
1987                         ndr->depth--;
1988                 break;
1989
1990                 case NetlogonValidationSamInfo2:
1991                         ndr_print_ptr(ndr, "sam3", r->sam3);
1992                         ndr->depth++;
1993                         if (r->sam3) {
1994                                 ndr_print_netr_SamInfo3(ndr, "sam3", r->sam3);
1995                         }
1996                         ndr->depth--;
1997                 break;
1998
1999                 case 4:
2000                         ndr_print_ptr(ndr, "pac", r->pac);
2001                         ndr->depth++;
2002                         if (r->pac) {
2003                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
2004                         }
2005                         ndr->depth--;
2006                 break;
2007
2008                 case NetlogonValidationGenericInfo2:
2009                         ndr_print_ptr(ndr, "generic", r->generic);
2010                         ndr->depth++;
2011                         if (r->generic) {
2012                                 ndr_print_netr_GenericInfo2(ndr, "generic", r->generic);
2013                         }
2014                         ndr->depth--;
2015                 break;
2016
2017                 case NetlogonValidationSamInfo4:
2018                         ndr_print_ptr(ndr, "sam6", r->sam6);
2019                         ndr->depth++;
2020                         if (r->sam6) {
2021                                 ndr_print_netr_SamInfo6(ndr, "sam6", r->sam6);
2022                         }
2023                         ndr->depth--;
2024                 break;
2025
2026                 default:
2027                         ndr_print_bad_level(ndr, name, level);
2028         }
2029 }
2030
2031 _PUBLIC_ enum ndr_err_code ndr_push_netr_Credential(struct ndr_push *ndr, int ndr_flags, const struct netr_Credential *r)
2032 {
2033         {
2034                 uint32_t _flags_save_STRUCT = ndr->flags;
2035                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2036                 if (ndr_flags & NDR_SCALARS) {
2037                         NDR_CHECK(ndr_push_align(ndr, 1));
2038                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 8));
2039                 }
2040                 if (ndr_flags & NDR_BUFFERS) {
2041                 }
2042                 ndr->flags = _flags_save_STRUCT;
2043         }
2044         return NDR_ERR_SUCCESS;
2045 }
2046
2047 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r)
2048 {
2049         {
2050                 uint32_t _flags_save_STRUCT = ndr->flags;
2051                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2052                 if (ndr_flags & NDR_SCALARS) {
2053                         NDR_CHECK(ndr_pull_align(ndr, 1));
2054                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8));
2055                 }
2056                 if (ndr_flags & NDR_BUFFERS) {
2057                 }
2058                 ndr->flags = _flags_save_STRUCT;
2059         }
2060         return NDR_ERR_SUCCESS;
2061 }
2062
2063 _PUBLIC_ void ndr_print_netr_Credential(struct ndr_print *ndr, const char *name, const struct netr_Credential *r)
2064 {
2065         ndr_print_struct(ndr, name, "netr_Credential");
2066         {
2067                 uint32_t _flags_save_STRUCT = ndr->flags;
2068                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2069                 ndr->depth++;
2070                 ndr_print_array_uint8(ndr, "data", r->data, 8);
2071                 ndr->depth--;
2072                 ndr->flags = _flags_save_STRUCT;
2073         }
2074 }
2075
2076 _PUBLIC_ enum ndr_err_code ndr_push_netr_Authenticator(struct ndr_push *ndr, int ndr_flags, const struct netr_Authenticator *r)
2077 {
2078         if (ndr_flags & NDR_SCALARS) {
2079                 NDR_CHECK(ndr_push_align(ndr, 4));
2080                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, &r->cred));
2081                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
2082         }
2083         if (ndr_flags & NDR_BUFFERS) {
2084         }
2085         return NDR_ERR_SUCCESS;
2086 }
2087
2088 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Authenticator(struct ndr_pull *ndr, int ndr_flags, struct netr_Authenticator *r)
2089 {
2090         if (ndr_flags & NDR_SCALARS) {
2091                 NDR_CHECK(ndr_pull_align(ndr, 4));
2092                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, &r->cred));
2093                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
2094         }
2095         if (ndr_flags & NDR_BUFFERS) {
2096         }
2097         return NDR_ERR_SUCCESS;
2098 }
2099
2100 _PUBLIC_ void ndr_print_netr_Authenticator(struct ndr_print *ndr, const char *name, const struct netr_Authenticator *r)
2101 {
2102         ndr_print_struct(ndr, name, "netr_Authenticator");
2103         ndr->depth++;
2104         ndr_print_netr_Credential(ndr, "cred", &r->cred);
2105         ndr_print_time_t(ndr, "timestamp", r->timestamp);
2106         ndr->depth--;
2107 }
2108
2109 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_USER *r)
2110 {
2111         if (ndr_flags & NDR_SCALARS) {
2112                 NDR_CHECK(ndr_push_align(ndr, 4));
2113                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
2114                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2115                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2116                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2117                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2118                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2119                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2120                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2121                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2122         }
2123         if (ndr_flags & NDR_BUFFERS) {
2124                 if (r->account_name) {
2125                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
2126                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
2127                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
2128                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
2129                 }
2130                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2131                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2132                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2133                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2134         }
2135         return NDR_ERR_SUCCESS;
2136 }
2137
2138 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r)
2139 {
2140         uint32_t _ptr_account_name;
2141         TALLOC_CTX *_mem_save_account_name_0;
2142         if (ndr_flags & NDR_SCALARS) {
2143                 NDR_CHECK(ndr_pull_align(ndr, 4));
2144                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
2145                 if (_ptr_account_name) {
2146                         NDR_PULL_ALLOC(ndr, r->account_name);
2147                 } else {
2148                         r->account_name = NULL;
2149                 }
2150                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2151                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2152                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2153                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2154                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2155                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2156                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2157                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2158         }
2159         if (ndr_flags & NDR_BUFFERS) {
2160                 if (r->account_name) {
2161                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2162                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
2163                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
2164                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
2165                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
2166                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name));
2167                         }
2168                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
2169                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
2170                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
2171                 }
2172                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2173                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2174                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2175                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2176         }
2177         return NDR_ERR_SUCCESS;
2178 }
2179
2180 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_USER *r)
2181 {
2182         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_USER");
2183         ndr->depth++;
2184         ndr_print_ptr(ndr, "account_name", r->account_name);
2185         ndr->depth++;
2186         if (r->account_name) {
2187                 ndr_print_string(ndr, "account_name", r->account_name);
2188         }
2189         ndr->depth--;
2190         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2191         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2192         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2193         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2194         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2195         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2196         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2197         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2198         ndr->depth--;
2199 }
2200
2201 static enum ndr_err_code ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY16 *r)
2202 {
2203         if (ndr_flags & NDR_SCALARS) {
2204                 NDR_CHECK(ndr_push_align(ndr, 4));
2205                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
2206                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
2207                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
2208                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2209         }
2210         if (ndr_flags & NDR_BUFFERS) {
2211         }
2212         return NDR_ERR_SUCCESS;
2213 }
2214
2215 static enum ndr_err_code ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY16 *r)
2216 {
2217         if (ndr_flags & NDR_SCALARS) {
2218                 NDR_CHECK(ndr_pull_align(ndr, 4));
2219                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
2220                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
2221                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
2222                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2223         }
2224         if (ndr_flags & NDR_BUFFERS) {
2225         }
2226         return NDR_ERR_SUCCESS;
2227 }
2228
2229 _PUBLIC_ void ndr_print_netr_USER_KEY16(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY16 *r)
2230 {
2231         ndr_print_struct(ndr, name, "netr_USER_KEY16");
2232         ndr->depth++;
2233         ndr_print_uint16(ndr, "length", r->length);
2234         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
2235         ndr_print_uint32(ndr, "flags", r->flags);
2236         ndr_print_samr_Password(ndr, "pwd", &r->pwd);
2237         ndr->depth--;
2238 }
2239
2240 static enum ndr_err_code ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordHistory *r)
2241 {
2242         if (ndr_flags & NDR_SCALARS) {
2243                 NDR_CHECK(ndr_push_align(ndr, 4));
2244                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2245                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2246                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_flags));
2247                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2248                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2249                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lm_flags));
2250                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2251                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2252         }
2253         if (ndr_flags & NDR_BUFFERS) {
2254         }
2255         return NDR_ERR_SUCCESS;
2256 }
2257
2258 static enum ndr_err_code ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *r)
2259 {
2260         if (ndr_flags & NDR_SCALARS) {
2261                 NDR_CHECK(ndr_pull_align(ndr, 4));
2262                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_length));
2263                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_size));
2264                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_flags));
2265                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length));
2266                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size));
2267                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags));
2268                 NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length);
2269                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2270                 NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length);
2271                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2272         }
2273         if (ndr_flags & NDR_BUFFERS) {
2274         }
2275         return NDR_ERR_SUCCESS;
2276 }
2277
2278 _PUBLIC_ void ndr_print_netr_PasswordHistory(struct ndr_print *ndr, const char *name, const struct netr_PasswordHistory *r)
2279 {
2280         ndr_print_struct(ndr, name, "netr_PasswordHistory");
2281         ndr->depth++;
2282         ndr_print_uint16(ndr, "nt_length", r->nt_length);
2283         ndr_print_uint16(ndr, "nt_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->nt_length:r->nt_size);
2284         ndr_print_uint32(ndr, "nt_flags", r->nt_flags);
2285         ndr_print_uint16(ndr, "lm_length", r->lm_length);
2286         ndr_print_uint16(ndr, "lm_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->lm_length:r->lm_size);
2287         ndr_print_uint32(ndr, "lm_flags", r->lm_flags);
2288         ndr_print_array_uint8(ndr, "nt_history", r->nt_history, r->nt_length);
2289         ndr_print_array_uint8(ndr, "lm_history", r->lm_history, r->lm_length);
2290         ndr->depth--;
2291 }
2292
2293 static enum ndr_err_code ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS2 *r)
2294 {
2295         if (ndr_flags & NDR_SCALARS) {
2296                 NDR_CHECK(ndr_push_align(ndr, 4));
2297                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2298                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2299                 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2300         }
2301         if (ndr_flags & NDR_BUFFERS) {
2302         }
2303         return NDR_ERR_SUCCESS;
2304 }
2305
2306 static enum ndr_err_code ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS2 *r)
2307 {
2308         if (ndr_flags & NDR_SCALARS) {
2309                 NDR_CHECK(ndr_pull_align(ndr, 4));
2310                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2311                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2312                 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2313         }
2314         if (ndr_flags & NDR_BUFFERS) {
2315         }
2316         return NDR_ERR_SUCCESS;
2317 }
2318
2319 _PUBLIC_ void ndr_print_netr_USER_KEYS2(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS2 *r)
2320 {
2321         ndr_print_struct(ndr, name, "netr_USER_KEYS2");
2322         ndr->depth++;
2323         ndr_print_netr_USER_KEY16(ndr, "lmpassword", &r->lmpassword);
2324         ndr_print_netr_USER_KEY16(ndr, "ntpassword", &r->ntpassword);
2325         ndr_print_netr_PasswordHistory(ndr, "history", &r->history);
2326         ndr->depth--;
2327 }
2328
2329 static enum ndr_err_code ndr_push_netr_USER_KEY_UNION(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY_UNION *r)
2330 {
2331         if (ndr_flags & NDR_SCALARS) {
2332                 NDR_CHECK(ndr_push_align(ndr, 4));
2333                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2334         }
2335         if (ndr_flags & NDR_BUFFERS) {
2336         }
2337         return NDR_ERR_SUCCESS;
2338 }
2339
2340 static enum ndr_err_code ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY_UNION *r)
2341 {
2342         if (ndr_flags & NDR_SCALARS) {
2343                 NDR_CHECK(ndr_pull_align(ndr, 4));
2344                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2345         }
2346         if (ndr_flags & NDR_BUFFERS) {
2347         }
2348         return NDR_ERR_SUCCESS;
2349 }
2350
2351 _PUBLIC_ void ndr_print_netr_USER_KEY_UNION(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY_UNION *r)
2352 {
2353         ndr_print_struct(ndr, name, "netr_USER_KEY_UNION");
2354         ndr->depth++;
2355         ndr_print_netr_USER_KEYS2(ndr, "keys2", &r->keys2);
2356         ndr->depth--;
2357 }
2358
2359 _PUBLIC_ enum ndr_err_code ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS *r)
2360 {
2361         if (ndr_flags & NDR_SCALARS) {
2362                 NDR_CHECK(ndr_push_align(ndr, 4));
2363                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2364                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2365         }
2366         if (ndr_flags & NDR_BUFFERS) {
2367         }
2368         return NDR_ERR_SUCCESS;
2369 }
2370
2371 _PUBLIC_ enum ndr_err_code ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS *r)
2372 {
2373         if (ndr_flags & NDR_SCALARS) {
2374                 NDR_CHECK(ndr_pull_align(ndr, 4));
2375                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2376                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2377         }
2378         if (ndr_flags & NDR_BUFFERS) {
2379         }
2380         return NDR_ERR_SUCCESS;
2381 }
2382
2383 _PUBLIC_ void ndr_print_netr_USER_KEYS(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS *r)
2384 {
2385         ndr_print_struct(ndr, name, "netr_USER_KEYS");
2386         ndr->depth++;
2387         ndr_print_uint32(ndr, "version", r->version);
2388         ndr_print_netr_USER_KEY_UNION(ndr, "keys", &r->keys);
2389         ndr->depth--;
2390 }
2391
2392 static enum ndr_err_code ndr_push_netr_USER_PRIVATE_INFO(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_PRIVATE_INFO *r)
2393 {
2394         if (ndr_flags & NDR_SCALARS) {
2395                 NDR_CHECK(ndr_push_align(ndr, 4));
2396                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->SensitiveDataFlag));
2397                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2398                 {
2399                         uint32_t _flags_save_uint8 = ndr->flags;
2400                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2401                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->SensitiveData));
2402                         ndr->flags = _flags_save_uint8;
2403                 }
2404         }
2405         if (ndr_flags & NDR_BUFFERS) {
2406                 {
2407                         uint32_t _flags_save_uint8 = ndr->flags;
2408                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2409                         if (r->SensitiveData) {
2410                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2411                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, r->DataLength));
2412                         }
2413                         ndr->flags = _flags_save_uint8;
2414                 }
2415         }
2416         return NDR_ERR_SUCCESS;
2417 }
2418
2419 static enum ndr_err_code ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r)
2420 {
2421         uint32_t _ptr_SensitiveData;
2422         TALLOC_CTX *_mem_save_SensitiveData_0;
2423         if (ndr_flags & NDR_SCALARS) {
2424                 NDR_CHECK(ndr_pull_align(ndr, 4));
2425                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->SensitiveDataFlag));
2426                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataLength));
2427                 {
2428                         uint32_t _flags_save_uint8 = ndr->flags;
2429                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2430                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_SensitiveData));
2431                         if (_ptr_SensitiveData) {
2432                                 NDR_PULL_ALLOC(ndr, r->SensitiveData);
2433                         } else {
2434                                 r->SensitiveData = NULL;
2435                         }
2436                         ndr->flags = _flags_save_uint8;
2437                 }
2438         }
2439         if (ndr_flags & NDR_BUFFERS) {
2440                 {
2441                         uint32_t _flags_save_uint8 = ndr->flags;
2442                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2443                         if (r->SensitiveData) {
2444                                 _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr);
2445                                 NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0);
2446                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData));
2447                                 NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData));
2448                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)));
2449                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0);
2450                         }
2451                         ndr->flags = _flags_save_uint8;
2452                 }
2453                 if (r->SensitiveData) {
2454                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->SensitiveData, r->DataLength));
2455                 }
2456         }
2457         return NDR_ERR_SUCCESS;
2458 }
2459
2460 _PUBLIC_ void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print *ndr, const char *name, const struct netr_USER_PRIVATE_INFO *r)
2461 {
2462         ndr_print_struct(ndr, name, "netr_USER_PRIVATE_INFO");
2463         ndr->depth++;
2464         ndr_print_uint8(ndr, "SensitiveDataFlag", r->SensitiveDataFlag);
2465         ndr_print_uint32(ndr, "DataLength", r->DataLength);
2466         ndr_print_ptr(ndr, "SensitiveData", r->SensitiveData);
2467         ndr->depth++;
2468         if (r->SensitiveData) {
2469                 ndr_print_array_uint8(ndr, "SensitiveData", r->SensitiveData, r->DataLength);
2470         }
2471         ndr->depth--;
2472         ndr->depth--;
2473 }
2474
2475 static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_USER *r)
2476 {
2477         if (ndr_flags & NDR_SCALARS) {
2478                 NDR_CHECK(ndr_push_align(ndr, 4));
2479                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2480                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2481                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2482                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2483                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2484                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2485                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2486                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2487                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2488                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2489                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2490                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2491                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2492                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2493                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2494                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2495                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2496                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2497                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2498                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_present));
2499                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present));
2500                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2501                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2502                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2503                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2504                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2505                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2506                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2507                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2508                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2509                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2510                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2511                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2512                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2513                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2514                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2515                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2516         }
2517         if (ndr_flags & NDR_BUFFERS) {
2518                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2519                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2520                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2521                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2522                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2523                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2524                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2525                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2526                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2527                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2528                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2529                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2530                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2531                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2532                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2533                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2534         }
2535         return NDR_ERR_SUCCESS;
2536 }
2537
2538 static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_USER *r)
2539 {
2540         if (ndr_flags & NDR_SCALARS) {
2541                 NDR_CHECK(ndr_pull_align(ndr, 4));
2542                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2543                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2544                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2545                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2546                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2547                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2548                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2549                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2550                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2551                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2552                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2553                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2554                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2555                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2556                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2557                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2558                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2559                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2560                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2561                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_present));
2562                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present));
2563                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
2564                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2565                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->parameters));
2566                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
2567                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
2568                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2569                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2570                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2571                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2572                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2573                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2574                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2575                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2576                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2577                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2578                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2579         }
2580         if (ndr_flags & NDR_BUFFERS) {
2581                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2582                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2583                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2584                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2585                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2586                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2587                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2588                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2589                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2590                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->parameters));
2591                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2592                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2593                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2594                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2595                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2596                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2597         }
2598         return NDR_ERR_SUCCESS;
2599 }
2600
2601 _PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_USER *r)
2602 {
2603         ndr_print_struct(ndr, name, "netr_DELTA_USER");
2604         ndr->depth++;
2605         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2606         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2607         ndr_print_uint32(ndr, "rid", r->rid);
2608         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2609         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2610         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2611         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2612         ndr_print_lsa_String(ndr, "description", &r->description);
2613         ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2614         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2615         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2616         ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2617         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2618         ndr_print_uint16(ndr, "logon_count", r->logon_count);
2619         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2620         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2621         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2622         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
2623         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
2624         ndr_print_uint8(ndr, "nt_password_present", r->nt_password_present);
2625         ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present);
2626         ndr_print_uint8(ndr, "password_expired", r->password_expired);
2627         ndr_print_lsa_String(ndr, "comment", &r->comment);
2628         ndr_print_lsa_BinaryString(ndr, "parameters", &r->parameters);
2629         ndr_print_uint16(ndr, "country_code", r->country_code);
2630         ndr_print_uint16(ndr, "code_page", r->code_page);
2631         ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info);
2632         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2633         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2634         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2635         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2636         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2637         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2638         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2639         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2640         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2641         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2642         ndr->depth--;
2643 }
2644
2645 static enum ndr_err_code ndr_push_netr_DELTA_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DOMAIN *r)
2646 {
2647         if (ndr_flags & NDR_SCALARS) {
2648                 NDR_CHECK(ndr_push_align(ndr, 4));
2649                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2650                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->oem_information));
2651                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->force_logoff_time));
2652                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
2653                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
2654                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
2655                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
2656                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2657                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
2658                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2659                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2660                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2661                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2662                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2663                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2664                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_to_chgpass));
2665                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2666                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2667                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2668         }
2669         if (ndr_flags & NDR_BUFFERS) {
2670                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2671                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->oem_information));
2672                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2673                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2674                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2675                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2676                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2677         }
2678         return NDR_ERR_SUCCESS;
2679 }
2680
2681 static enum ndr_err_code ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DOMAIN *r)
2682 {
2683         if (ndr_flags & NDR_SCALARS) {
2684                 NDR_CHECK(ndr_pull_align(ndr, 4));
2685                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2686                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->oem_information));
2687                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->force_logoff_time));
2688                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
2689                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
2690                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
2691                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
2692                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
2693                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
2694                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2695                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2696                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2697                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2698                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2699                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2700                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_to_chgpass));
2701                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2702                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2703                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2704         }
2705         if (ndr_flags & NDR_BUFFERS) {
2706                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2707                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->oem_information));
2708                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2709                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2710                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2711                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2712                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2713         }
2714         return NDR_ERR_SUCCESS;
2715 }
2716
2717 _PUBLIC_ void ndr_print_netr_DELTA_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DOMAIN *r)
2718 {
2719         ndr_print_struct(ndr, name, "netr_DELTA_DOMAIN");
2720         ndr->depth++;
2721         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
2722         ndr_print_lsa_String(ndr, "oem_information", &r->oem_information);
2723         ndr_print_dlong(ndr, "force_logoff_time", r->force_logoff_time);
2724         ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
2725         ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
2726         ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
2727         ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
2728         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
2729         ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
2730         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2731         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2732         ndr_print_lsa_BinaryString(ndr, "account_lockout", &r->account_lockout);
2733         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2734         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2735         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2736         ndr_print_uint32(ndr, "logon_to_chgpass", r->logon_to_chgpass);
2737         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2738         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2739         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2740         ndr->depth--;
2741 }
2742
2743 static enum ndr_err_code ndr_push_netr_DELTA_GROUP(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP *r)
2744 {
2745         if (ndr_flags & NDR_SCALARS) {
2746                 NDR_CHECK(ndr_push_align(ndr, 4));
2747                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2748                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2749                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
2750                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2751                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2752                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2753                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2754                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2755                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2756                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2757                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2758                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2759                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2760                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2761         }
2762         if (ndr_flags & NDR_BUFFERS) {
2763                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2764                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2765                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2766                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2767                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2768                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2769                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2770         }
2771         return NDR_ERR_SUCCESS;
2772 }
2773
2774 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP *r)
2775 {
2776         if (ndr_flags & NDR_SCALARS) {
2777                 NDR_CHECK(ndr_pull_align(ndr, 4));
2778                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2779                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2780                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
2781                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2782                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2783                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2784                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2785                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2786                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2787                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2788                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2789                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2790                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2791                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2792         }
2793         if (ndr_flags & NDR_BUFFERS) {
2794                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2795                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2796                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2797                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2798                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2799                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2800                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2801         }
2802         return NDR_ERR_SUCCESS;
2803 }
2804
2805 _PUBLIC_ void ndr_print_netr_DELTA_GROUP(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP *r)
2806 {
2807         ndr_print_struct(ndr, name, "netr_DELTA_GROUP");
2808         ndr->depth++;
2809         ndr_print_lsa_String(ndr, "group_name", &r->group_name);
2810         ndr_print_uint32(ndr, "rid", r->rid);
2811         ndr_print_uint32(ndr, "attributes", r->attributes);
2812         ndr_print_lsa_String(ndr, "description", &r->description);
2813         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2814         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2815         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2816         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2817         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2818         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2819         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2820         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2821         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2822         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2823         ndr->depth--;
2824 }
2825
2826 static enum ndr_err_code ndr_push_netr_DELTA_RENAME(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_RENAME *r)
2827 {
2828         if (ndr_flags & NDR_SCALARS) {
2829                 NDR_CHECK(ndr_push_align(ndr, 4));
2830                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2831                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2832                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2833                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2834                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2835                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2836                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2837                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2838                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2839                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2840         }
2841         if (ndr_flags & NDR_BUFFERS) {
2842                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2843                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2844                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2845                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2846                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2847                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2848         }
2849         return NDR_ERR_SUCCESS;
2850 }
2851
2852 static enum ndr_err_code ndr_pull_netr_DELTA_RENAME(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_RENAME *r)
2853 {
2854         if (ndr_flags & NDR_SCALARS) {
2855                 NDR_CHECK(ndr_pull_align(ndr, 4));
2856                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2857                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2858                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2859                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2860                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2861                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2862                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2863                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2864                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2865                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2866         }
2867         if (ndr_flags & NDR_BUFFERS) {
2868                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2869                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2870                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2871                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2872                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2873                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2874         }
2875         return NDR_ERR_SUCCESS;
2876 }
2877
2878 _PUBLIC_ void ndr_print_netr_DELTA_RENAME(struct ndr_print *ndr, const char *name, const struct netr_DELTA_RENAME *r)
2879 {
2880         ndr_print_struct(ndr, name, "netr_DELTA_RENAME");
2881         ndr->depth++;
2882         ndr_print_lsa_String(ndr, "OldName", &r->OldName);
2883         ndr_print_lsa_String(ndr, "NewName", &r->NewName);
2884         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2885         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2886         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2887         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2888         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2889         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2890         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2891         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2892         ndr->depth--;
2893 }
2894
2895 static enum ndr_err_code ndr_push_netr_DELTA_GROUP_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP_MEMBER *r)
2896 {
2897         uint32_t cntr_rids_1;
2898         uint32_t cntr_attribs_1;
2899         if (ndr_flags & NDR_SCALARS) {
2900                 NDR_CHECK(ndr_push_align(ndr, 4));
2901                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
2902                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribs));
2903                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2904                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2905                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2906                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2907                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2908         }
2909         if (ndr_flags & NDR_BUFFERS) {
2910                 if (r->rids) {
2911                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2912                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2913                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
2914                         }
2915                 }
2916                 if (r->attribs) {
2917                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2918                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2919                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribs[cntr_attribs_1]));
2920                         }
2921                 }
2922         }
2923         return NDR_ERR_SUCCESS;
2924 }
2925
2926 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r)
2927 {
2928         uint32_t _ptr_rids;
2929         uint32_t cntr_rids_1;
2930         TALLOC_CTX *_mem_save_rids_0;
2931         TALLOC_CTX *_mem_save_rids_1;
2932         uint32_t _ptr_attribs;
2933         uint32_t cntr_attribs_1;
2934         TALLOC_CTX *_mem_save_attribs_0;
2935         TALLOC_CTX *_mem_save_attribs_1;
2936         if (ndr_flags & NDR_SCALARS) {
2937                 NDR_CHECK(ndr_pull_align(ndr, 4));
2938                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
2939                 if (_ptr_rids) {
2940                         NDR_PULL_ALLOC(ndr, r->rids);
2941                 } else {
2942                         r->rids = NULL;
2943                 }
2944                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribs));
2945                 if (_ptr_attribs) {
2946                         NDR_PULL_ALLOC(ndr, r->attribs);
2947                 } else {
2948                         r->attribs = NULL;
2949                 }
2950                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
2951                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2952                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2953                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2954                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2955         }
2956         if (ndr_flags & NDR_BUFFERS) {
2957                 if (r->rids) {
2958                         _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
2959                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2960                         NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
2961                         NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
2962                         _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
2963                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2964                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2965                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
2966                         }
2967                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
2968                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
2969                 }
2970                 if (r->attribs) {
2971                         _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr);
2972                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2973                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs));
2974                         NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs));
2975                         _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr);
2976                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2977                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2978                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1]));
2979                         }
2980                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0);
2981                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_0, 0);
2982                 }
2983                 if (r->rids) {
2984                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
2985                 }
2986                 if (r->attribs) {
2987                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attribs, r->num_rids));
2988                 }
2989         }
2990         return NDR_ERR_SUCCESS;
2991 }
2992
2993 _PUBLIC_ void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP_MEMBER *r)
2994 {
2995         uint32_t cntr_rids_1;
2996         uint32_t cntr_attribs_1;
2997         ndr_print_struct(ndr, name, "netr_DELTA_GROUP_MEMBER");
2998         ndr->depth++;
2999         ndr_print_ptr(ndr, "rids", r->rids);
3000         ndr->depth++;
3001         if (r->rids) {
3002                 ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->num_rids);
3003                 ndr->depth++;
3004                 for (cntr_rids_1=0;cntr_rids_1<r->num_rids;cntr_rids_1++) {
3005                         char *idx_1=NULL;
3006                         if (asprintf(&idx_1, "[%d]", cntr_rids_1) != -1) {
3007                                 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
3008                                 free(idx_1);
3009                         }
3010                 }
3011                 ndr->depth--;
3012         }
3013         ndr->depth--;
3014         ndr_print_ptr(ndr, "attribs", r->attribs);
3015         ndr->depth++;
3016         if (r->attribs) {
3017                 ndr->print(ndr, "%s: ARRAY(%d)", "attribs", (int)r->num_rids);
3018                 ndr->depth++;
3019                 for (cntr_attribs_1=0;cntr_attribs_1<r->num_rids;cntr_attribs_1++) {
3020                         char *idx_1=NULL;
3021                         if (asprintf(&idx_1, "[%d]", cntr_attribs_1) != -1) {
3022                                 ndr_print_uint32(ndr, "attribs", r->attribs[cntr_attribs_1]);
3023                                 free(idx_1);
3024                         }
3025                 }
3026                 ndr->depth--;
3027         }
3028         ndr->depth--;
3029         ndr_print_uint32(ndr, "num_rids", r->num_rids);
3030         ndr_print_uint32(ndr, "unknown1", r->unknown1);
3031         ndr_print_uint32(ndr, "unknown2", r->unknown2);
3032         ndr_print_uint32(ndr, "unknown3", r->unknown3);
3033         ndr_print_uint32(ndr, "unknown4", r->unknown4);
3034         ndr->depth--;
3035 }
3036
3037 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS *r)
3038 {
3039         if (ndr_flags & NDR_SCALARS) {
3040                 NDR_CHECK(ndr_push_align(ndr, 4));
3041                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
3042                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
3043                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3044                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3045                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
3046                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3047                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3048                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3049                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3050                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3051                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3052                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3053         }
3054         if (ndr_flags & NDR_BUFFERS) {
3055                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
3056                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3057                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
3058                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3059                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3060                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3061         }
3062         return NDR_ERR_SUCCESS;
3063 }
3064
3065 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS *r)
3066 {
3067         if (ndr_flags & NDR_SCALARS) {
3068                 NDR_CHECK(ndr_pull_align(ndr, 4));
3069                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
3070                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
3071                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3072                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3073                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
3074                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3075                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3076                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3077                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3078                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3079                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3080                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3081         }
3082         if (ndr_flags & NDR_BUFFERS) {
3083                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
3084                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3085                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
3086                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3087                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3088                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3089         }
3090         return NDR_ERR_SUCCESS;
3091 }
3092
3093 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS *r)
3094 {
3095         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS");
3096         ndr->depth++;
3097         ndr_print_lsa_String(ndr, "alias_name", &r->alias_name);
3098         ndr_print_uint32(ndr, "rid", r->rid);
3099         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3100         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3101         ndr_print_lsa_String(ndr, "description", &r->description);
3102         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3103         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3104         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3105         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3106         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3107         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3108         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3109         ndr->depth--;
3110 }
3111
3112 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS_MEMBER *r)
3113 {
3114         if (ndr_flags & NDR_SCALARS) {
3115                 NDR_CHECK(ndr_push_align(ndr, 4));
3116                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
3117                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
3118                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
3119                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
3120                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
3121         }
3122         if (ndr_flags & NDR_BUFFERS) {
3123                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
3124         }
3125         return NDR_ERR_SUCCESS;
3126 }
3127
3128 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS_MEMBER *r)
3129 {
3130         if (ndr_flags & NDR_SCALARS) {
3131                 NDR_CHECK(ndr_pull_align(ndr, 4));
3132                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
3133                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
3134                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
3135                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
3136                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
3137         }
3138         if (ndr_flags & NDR_BUFFERS) {
3139                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
3140         }
3141         return NDR_ERR_SUCCESS;
3142 }
3143
3144 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS_MEMBER *r)
3145 {
3146         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS_MEMBER");
3147         ndr->depth++;
3148         ndr_print_lsa_SidArray(ndr, "sids", &r->sids);
3149         ndr_print_uint32(ndr, "unknown1", r->unknown1);
3150         ndr_print_uint32(ndr, "unknown2", r->unknown2);
3151         ndr_print_uint32(ndr, "unknown3", r->unknown3);
3152         ndr_print_uint32(ndr, "unknown4", r->unknown4);
3153         ndr->depth--;
3154 }
3155
3156 static enum ndr_err_code ndr_push_netr_QUOTA_LIMITS(struct ndr_push *ndr, int ndr_flags, const struct netr_QUOTA_LIMITS *r)
3157 {
3158         if (ndr_flags & NDR_SCALARS) {
3159                 NDR_CHECK(ndr_push_align(ndr, 4));
3160                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagedpoollimit));
3161                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonpagedpoollimit));
3162                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minimumworkingsetsize));
3163                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maximumworkingsetsize));
3164                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagefilelimit));
3165                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timelimit));
3166         }
3167         if (ndr_flags & NDR_BUFFERS) {
3168         }
3169         return NDR_ERR_SUCCESS;
3170 }
3171
3172 static enum ndr_err_code ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull *ndr, int ndr_flags, struct netr_QUOTA_LIMITS *r)
3173 {
3174         if (ndr_flags & NDR_SCALARS) {
3175                 NDR_CHECK(ndr_pull_align(ndr, 4));
3176                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagedpoollimit));
3177                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonpagedpoollimit));
3178                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minimumworkingsetsize));
3179                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maximumworkingsetsize));
3180                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagefilelimit));
3181                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timelimit));
3182         }
3183         if (ndr_flags & NDR_BUFFERS) {
3184         }
3185         return NDR_ERR_SUCCESS;
3186 }
3187
3188 _PUBLIC_ void ndr_print_netr_QUOTA_LIMITS(struct ndr_print *ndr, const char *name, const struct netr_QUOTA_LIMITS *r)
3189 {
3190         ndr_print_struct(ndr, name, "netr_QUOTA_LIMITS");
3191         ndr->depth++;
3192         ndr_print_uint32(ndr, "pagedpoollimit", r->pagedpoollimit);
3193         ndr_print_uint32(ndr, "nonpagedpoollimit", r->nonpagedpoollimit);
3194         ndr_print_uint32(ndr, "minimumworkingsetsize", r->minimumworkingsetsize);
3195         ndr_print_uint32(ndr, "maximumworkingsetsize", r->maximumworkingsetsize);
3196         ndr_print_uint32(ndr, "pagefilelimit", r->pagefilelimit);
3197         ndr_print_NTTIME(ndr, "timelimit", r->timelimit);
3198         ndr->depth--;
3199 }
3200
3201 static enum ndr_err_code ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_POLICY *r)
3202 {
3203         uint32_t cntr_eventauditoptions_1;
3204         if (ndr_flags & NDR_SCALARS) {
3205                 NDR_CHECK(ndr_push_align(ndr, 4));
3206                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlogsize));
3207                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->auditretentionperiod));
3208                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auditingmode));
3209                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount));
3210                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->eventauditoptions));
3211                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3212                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
3213                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3214                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
3215                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time));
3216                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3217                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3218                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3219                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3220                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3221                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3222                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3223                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3224                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3225                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3226         }
3227         if (ndr_flags & NDR_BUFFERS) {
3228                 if (r->eventauditoptions) {
3229                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount + 1));
3230                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3231                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventauditoptions[cntr_eventauditoptions_1]));
3232                         }
3233                 }
3234                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3235                 if (r->sid) {
3236                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3237                 }
3238                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3239                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3240                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3241                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3242                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3243         }
3244         return NDR_ERR_SUCCESS;
3245 }
3246
3247 static enum ndr_err_code ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r)
3248 {
3249         uint32_t _ptr_eventauditoptions;
3250         uint32_t cntr_eventauditoptions_1;
3251         TALLOC_CTX *_mem_save_eventauditoptions_0;
3252         TALLOC_CTX *_mem_save_eventauditoptions_1;
3253         uint32_t _ptr_sid;
3254         TALLOC_CTX *_mem_save_sid_0;
3255         if (ndr_flags & NDR_SCALARS) {
3256                 NDR_CHECK(ndr_pull_align(ndr, 4));
3257                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlogsize));
3258                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->auditretentionperiod));
3259                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auditingmode));
3260                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxauditeventcount));
3261                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eventauditoptions));
3262                 if (_ptr_eventauditoptions) {
3263                         NDR_PULL_ALLOC(ndr, r->eventauditoptions);
3264                 } else {
3265                         r->eventauditoptions = NULL;
3266                 }
3267                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3268                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
3269                 if (_ptr_sid) {
3270                         NDR_PULL_ALLOC(ndr, r->sid);
3271                 } else {
3272                         r->sid = NULL;
3273                 }
3274                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3275                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
3276                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time));
3277                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3278                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3279                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3280                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3281                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3282                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3283                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3284                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3285                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3286                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3287         }
3288         if (ndr_flags & NDR_BUFFERS) {
3289                 if (r->eventauditoptions) {
3290                         _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr);
3291                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3292                         NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions));
3293                         NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions));
3294                         _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr);
3295                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3296                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3297                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1]));
3298                         }
3299                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0);
3300                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_0, 0);
3301                 }
3302                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3303                 if (r->sid) {
3304                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
3305                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
3306                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3307                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
3308                 }
3309                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3310                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3311                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3312                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3313                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3314                 if (r->eventauditoptions) {
3315                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eventauditoptions, r->maxauditeventcount + 1));
3316                 }
3317         }
3318         return NDR_ERR_SUCCESS;
3319 }
3320
3321 _PUBLIC_ void ndr_print_netr_DELTA_POLICY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_POLICY *r)
3322 {
3323         uint32_t cntr_eventauditoptions_1;
3324         ndr_print_struct(ndr, name, "netr_DELTA_POLICY");
3325         ndr->depth++;
3326         ndr_print_uint32(ndr, "maxlogsize", r->maxlogsize);
3327         ndr_print_NTTIME(ndr, "auditretentionperiod", r->auditretentionperiod);
3328         ndr_print_uint8(ndr, "auditingmode", r->auditingmode);
3329         ndr_print_uint32(ndr, "maxauditeventcount", r->maxauditeventcount);
3330         ndr_print_ptr(ndr, "eventauditoptions", r->eventauditoptions);
3331         ndr->depth++;
3332         if (r->eventauditoptions) {
3333                 ndr->print(ndr, "%s: ARRAY(%d)", "eventauditoptions", (int)r->maxauditeventcount + 1);
3334                 ndr->depth++;
3335                 for (cntr_eventauditoptions_1=0;cntr_eventauditoptions_1<r->maxauditeventcount + 1;cntr_eventauditoptions_1++) {
3336                         char *idx_1=NULL;
3337                         if (asprintf(&idx_1, "[%d]", cntr_eventauditoptions_1) != -1) {
3338                                 ndr_print_uint32(ndr, "eventauditoptions", r->eventauditoptions[cntr_eventauditoptions_1]);
3339                                 free(idx_1);
3340                         }
3341                 }
3342                 ndr->depth--;
3343         }
3344         ndr->depth--;
3345         ndr_print_lsa_String(ndr, "primary_domain_name", &r->primary_domain_name);
3346         ndr_print_ptr(ndr, "sid", r->sid);
3347         ndr->depth++;
3348         if (r->sid) {
3349                 ndr_print_dom_sid2(ndr, "sid", r->sid);
3350         }
3351         ndr->depth--;
3352         ndr_print_netr_QUOTA_LIMITS(ndr, "quota_limits", &r->quota_limits);
3353         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
3354         ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
3355         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3356         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3357         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3358         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3359         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3360         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3361         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3362         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3363         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3364         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3365         ndr->depth--;
3366 }
3367
3368 static enum ndr_err_code ndr_push_netr_DELTA_TRUSTED_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3369 {
3370         uint32_t cntr_controller_names_1;
3371         if (ndr_flags & NDR_SCALARS) {
3372                 NDR_CHECK(ndr_push_align(ndr, 4));
3373                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3374                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3375                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->controller_names));
3376                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3377                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3378                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3379                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3380                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3381                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3382                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_offset));
3383                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3384                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3385                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3386         }
3387         if (ndr_flags & NDR_BUFFERS) {
3388                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3389                 if (r->controller_names) {
3390                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3391                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3392                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3393                         }
3394                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3395                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3396                         }
3397                 }
3398                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3399                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3400                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3401                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3402                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3403         }
3404         return NDR_ERR_SUCCESS;
3405 }
3406
3407 static enum ndr_err_code ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r)
3408 {
3409         uint32_t _ptr_controller_names;
3410         uint32_t cntr_controller_names_1;
3411         TALLOC_CTX *_mem_save_controller_names_0;
3412         TALLOC_CTX *_mem_save_controller_names_1;
3413         if (ndr_flags & NDR_SCALARS) {
3414                 NDR_CHECK(ndr_pull_align(ndr, 4));
3415                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3416                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_controllers));
3417                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_controller_names));
3418                 if (_ptr_controller_names) {
3419                         NDR_PULL_ALLOC(ndr, r->controller_names);
3420                 } else {
3421                         r->controller_names = NULL;
3422                 }
3423                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3424                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3425                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3426                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3427                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3428                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3429                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_offset));
3430                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3431                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3432                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3433         }
3434         if (ndr_flags & NDR_BUFFERS) {
3435                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3436                 if (r->controller_names) {
3437                         _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
3438                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3439                         NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names));
3440                         NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names));
3441                         _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
3442                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3443                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3444                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3445                         }
3446                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3447                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3448                         }
3449                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0);
3450                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_0, 0);
3451                 }
3452                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3453                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3454                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3455                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3456                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3457                 if (r->controller_names) {
3458                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->controller_names, r->num_controllers));
3459                 }
3460         }
3461         return NDR_ERR_SUCCESS;
3462 }
3463
3464 _PUBLIC_ void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3465 {
3466         uint32_t cntr_controller_names_1;
3467         ndr_print_struct(ndr, name, "netr_DELTA_TRUSTED_DOMAIN");
3468         ndr->depth++;
3469         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
3470         ndr_print_uint32(ndr, "num_controllers", r->num_controllers);
3471         ndr_print_ptr(ndr, "controller_names", r->controller_names);
3472         ndr->depth++;
3473         if (r->controller_names) {
3474                 ndr->print(ndr, "%s: ARRAY(%d)", "controller_names", (int)r->num_controllers);
3475                 ndr->depth++;
3476                 for (cntr_controller_names_1=0;cntr_controller_names_1<r->num_controllers;cntr_controller_names_1++) {
3477                         char *idx_1=NULL;
3478                         if (asprintf(&idx_1, "[%d]", cntr_controller_names_1) != -1) {
3479                                 ndr_print_lsa_String(ndr, "controller_names", &r->controller_names[cntr_controller_names_1]);
3480                                 free(idx_1);
3481                         }
3482                 }
3483                 ndr->depth--;
3484         }
3485         ndr->depth--;
3486         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3487         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3488         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3489         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3490         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3491         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3492         ndr_print_uint32(ndr, "posix_offset", r->posix_offset);
3493         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3494         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3495         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3496         ndr->depth--;
3497 }
3498
3499 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_TRUST(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_TRUST *r)
3500 {
3501         if (ndr_flags & NDR_SCALARS) {
3502                 NDR_CHECK(ndr_push_align(ndr, 2));
3503                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3504         }
3505         if (ndr_flags & NDR_BUFFERS) {
3506         }
3507         return NDR_ERR_SUCCESS;
3508 }
3509
3510 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_TRUST *r)
3511 {
3512         if (ndr_flags & NDR_SCALARS) {
3513                 NDR_CHECK(ndr_pull_align(ndr, 2));
3514                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3515         }
3516         if (ndr_flags & NDR_BUFFERS) {
3517         }
3518         return NDR_ERR_SUCCESS;
3519 }
3520
3521 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_TRUST *r)
3522 {
3523         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_TRUST");
3524         ndr->depth++;
3525         ndr_print_uint16(ndr, "unknown", r->unknown);
3526         ndr->depth--;
3527 }
3528
3529 static enum ndr_err_code ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ACCOUNT *r)
3530 {
3531         uint32_t cntr_privilege_attrib_1;
3532         uint32_t cntr_privilege_name_1;
3533         if (ndr_flags & NDR_SCALARS) {
3534                 NDR_CHECK(ndr_push_align(ndr, 4));
3535                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3536                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_control));
3537                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_attrib));
3538                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_name));
3539                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3540                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->system_flags));
3541                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3542                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3543                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3544                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3545                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3546                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3547                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3548                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3549                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3550                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3551         }
3552         if (ndr_flags & NDR_BUFFERS) {
3553                 if (r->privilege_attrib) {
3554                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3555                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3556                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_attrib[cntr_privilege_attrib_1]));
3557                         }
3558                 }
3559                 if (r->privilege_name) {
3560                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3561                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3562                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3563                         }
3564                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3565                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3566                         }
3567                 }
3568                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3569                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3570                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3571                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3572                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3573         }
3574         return NDR_ERR_SUCCESS;
3575 }
3576
3577 static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r)
3578 {
3579         uint32_t _ptr_privilege_attrib;
3580         uint32_t cntr_privilege_attrib_1;
3581         TALLOC_CTX *_mem_save_privilege_attrib_0;
3582         TALLOC_CTX *_mem_save_privilege_attrib_1;
3583         uint32_t _ptr_privilege_name;
3584         uint32_t cntr_privilege_name_1;
3585         TALLOC_CTX *_mem_save_privilege_name_0;
3586         TALLOC_CTX *_mem_save_privilege_name_1;
3587         if (ndr_flags & NDR_SCALARS) {
3588                 NDR_CHECK(ndr_pull_align(ndr, 4));
3589                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_entries));
3590                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_control));
3591                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_attrib));
3592                 if (_ptr_privilege_attrib) {
3593                         NDR_PULL_ALLOC(ndr, r->privilege_attrib);
3594                 } else {
3595                         r->privilege_attrib = NULL;
3596                 }
3597                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_name));
3598                 if (_ptr_privilege_name) {
3599                         NDR_PULL_ALLOC(ndr, r->privilege_name);
3600                 } else {
3601                         r->privilege_name = NULL;
3602                 }
3603                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3604                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->system_flags));
3605                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3606                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3607                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3608                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3609                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3610                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3611                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3612                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3613                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3614                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3615         }
3616         if (ndr_flags & NDR_BUFFERS) {
3617                 if (r->privilege_attrib) {
3618                         _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
3619                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3620                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib));
3621                         NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib));
3622                         _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr);
3623                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3624                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3625                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1]));
3626                         }
3627                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0);
3628                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_0, 0);
3629                 }
3630                 if (r->privilege_name) {
3631                         _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3632                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3633                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name));
3634                         NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name));
3635                         _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
3636                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3637                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3638                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3639                         }
3640                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3641                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3642                         }
3643                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0);
3644                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_0, 0);
3645                 }
3646                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3647                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3648                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3649                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3650                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3651                 if (r->privilege_attrib) {
3652                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_attrib, r->privilege_entries));
3653                 }
3654                 if (r->privilege_name) {
3655                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_name, r->privilege_entries));
3656                 }
3657         }
3658         return NDR_ERR_SUCCESS;
3659 }
3660
3661 _PUBLIC_ void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ACCOUNT *r)
3662 {
3663         uint32_t cntr_privilege_attrib_1;
3664         uint32_t cntr_privilege_name_1;
3665         ndr_print_struct(ndr, name, "netr_DELTA_ACCOUNT");
3666         ndr->depth++;
3667         ndr_print_uint32(ndr, "privilege_entries", r->privilege_entries);
3668         ndr_print_uint32(ndr, "privilege_control", r->privilege_control);
3669         ndr_print_ptr(ndr, "privilege_attrib", r->privilege_attrib);
3670         ndr->depth++;
3671         if (r->privilege_attrib) {
3672                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_attrib", (int)r->privilege_entries);
3673                 ndr->depth++;
3674                 for (cntr_privilege_attrib_1=0;cntr_privilege_attrib_1<r->privilege_entries;cntr_privilege_attrib_1++) {
3675                         char *idx_1=NULL;
3676                         if (asprintf(&idx_1, "[%d]", cntr_privilege_attrib_1) != -1) {
3677                                 ndr_print_uint32(ndr, "privilege_attrib", r->privilege_attrib[cntr_privilege_attrib_1]);
3678                                 free(idx_1);
3679                         }
3680                 }
3681                 ndr->depth--;
3682         }
3683         ndr->depth--;
3684         ndr_print_ptr(ndr, "privilege_name", r->privilege_name);
3685         ndr->depth++;
3686         if (r->privilege_name) {
3687                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_name", (int)r->privilege_entries);
3688                 ndr->depth++;
3689                 for (cntr_privilege_name_1=0;cntr_privilege_name_1<r->privilege_entries;cntr_privilege_name_1++) {
3690                         char *idx_1=NULL;
3691                         if (asprintf(&idx_1, "[%d]", cntr_privilege_name_1) != -1) {
3692                                 ndr_print_lsa_String(ndr, "privilege_name", &r->privilege_name[cntr_privilege_name_1]);
3693                                 free(idx_1);
3694                         }
3695                 }
3696                 ndr->depth--;
3697         }
3698         ndr->depth--;
3699         ndr_print_netr_QUOTA_LIMITS(ndr, "quotalimits", &r->quotalimits);
3700         ndr_print_uint32(ndr, "system_flags", r->system_flags);
3701         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3702         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3703         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3704         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3705         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3706         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3707         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3708         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3709         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3710         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3711         ndr->depth--;
3712 }
3713
3714 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_ACCOUNT *r)
3715 {
3716         if (ndr_flags & NDR_SCALARS) {
3717                 NDR_CHECK(ndr_push_align(ndr, 2));
3718                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3719         }
3720         if (ndr_flags & NDR_BUFFERS) {
3721         }
3722         return NDR_ERR_SUCCESS;
3723 }
3724
3725 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_ACCOUNT *r)
3726 {
3727         if (ndr_flags & NDR_SCALARS) {
3728                 NDR_CHECK(ndr_pull_align(ndr, 2));
3729                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3730         }
3731         if (ndr_flags & NDR_BUFFERS) {
3732         }
3733         return NDR_ERR_SUCCESS;
3734 }
3735
3736 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_ACCOUNT *r)
3737 {
3738         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_ACCOUNT");
3739         ndr->depth++;
3740         ndr_print_uint16(ndr, "unknown", r->unknown);
3741         ndr->depth--;
3742 }
3743
3744 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_SECRET *r)
3745 {
3746         if (ndr_flags & NDR_SCALARS) {
3747                 NDR_CHECK(ndr_push_align(ndr, 2));
3748                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3749         }
3750         if (ndr_flags & NDR_BUFFERS) {
3751         }
3752         return NDR_ERR_SUCCESS;
3753 }
3754
3755 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_SECRET *r)
3756 {
3757         if (ndr_flags & NDR_SCALARS) {
3758                 NDR_CHECK(ndr_pull_align(ndr, 2));
3759                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3760         }
3761         if (ndr_flags & NDR_BUFFERS) {
3762         }
3763         return NDR_ERR_SUCCESS;
3764 }
3765
3766 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_SECRET *r)
3767 {
3768         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_SECRET");
3769         ndr->depth++;
3770         ndr_print_uint16(ndr, "unknown", r->unknown);
3771         ndr->depth--;
3772 }
3773
3774 static enum ndr_err_code ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int ndr_flags, const struct netr_CIPHER_VALUE *r)
3775 {
3776         if (ndr_flags & NDR_SCALARS) {
3777                 NDR_CHECK(ndr_push_align(ndr, 4));
3778                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3779                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3780                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cipher_data));
3781         }
3782         if (ndr_flags & NDR_BUFFERS) {
3783                 if (r->cipher_data) {
3784                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3785                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3786                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3787                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->cipher_data, r->len));
3788                 }
3789         }
3790         return NDR_ERR_SUCCESS;
3791 }
3792
3793 static enum ndr_err_code ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r)
3794 {
3795         uint32_t _ptr_cipher_data;
3796         TALLOC_CTX *_mem_save_cipher_data_0;
3797         if (ndr_flags & NDR_SCALARS) {
3798                 NDR_CHECK(ndr_pull_align(ndr, 4));
3799                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
3800                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlen));
3801                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cipher_data));
3802                 if (_ptr_cipher_data) {
3803                         NDR_PULL_ALLOC(ndr, r->cipher_data);
3804                 } else {
3805                         r->cipher_data = NULL;
3806                 }
3807         }
3808         if (ndr_flags & NDR_BUFFERS) {
3809                 if (r->cipher_data) {
3810                         _mem_save_cipher_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
3811                         NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0);
3812                         NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data));
3813                         NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data));
3814                         if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) {
3815                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->cipher_data), ndr_get_array_length(ndr, &r->cipher_data));
3816                         }
3817                         NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data));
3818                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data)));
3819                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0);
3820                 }
3821                 if (r->cipher_data) {
3822                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cipher_data, r->maxlen));
3823                 }
3824                 if (r->cipher_data) {
3825                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->cipher_data, r->len));
3826                 }
3827         }
3828         return NDR_ERR_SUCCESS;
3829 }
3830
3831 _PUBLIC_ void ndr_print_netr_CIPHER_VALUE(struct ndr_print *ndr, const char *name, const struct netr_CIPHER_VALUE *r)
3832 {
3833         ndr_print_struct(ndr, name, "netr_CIPHER_VALUE");
3834         ndr->depth++;
3835         ndr_print_uint32(ndr, "len", r->len);
3836         ndr_print_uint32(ndr, "maxlen", r->maxlen);
3837         ndr_print_ptr(ndr, "cipher_data", r->cipher_data);
3838         ndr->depth++;
3839         if (r->cipher_data) {
3840                 ndr_print_array_uint8(ndr, "cipher_data", r->cipher_data, r->len);
3841         }
3842         ndr->depth--;
3843         ndr->depth--;
3844 }
3845
3846 static enum ndr_err_code ndr_push_netr_DELTA_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_SECRET *r)
3847 {
3848         if (ndr_flags & NDR_SCALARS) {
3849                 NDR_CHECK(ndr_push_align(ndr, 4));
3850                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3851                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->current_cipher_set_time));
3852                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3853                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_cipher_set_time));
3854                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3855                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3856                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3857                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3858                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3859                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3860                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3861                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3862                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3863                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3864         }
3865         if (ndr_flags & NDR_BUFFERS) {
3866                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3867                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3868                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3869                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3870                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3871                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3872                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3873         }
3874         return NDR_ERR_SUCCESS;
3875 }
3876
3877 static enum ndr_err_code ndr_pull_netr_DELTA_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_SECRET *r)
3878 {
3879         if (ndr_flags & NDR_SCALARS) {
3880                 NDR_CHECK(ndr_pull_align(ndr, 4));
3881                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3882                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->current_cipher_set_time));
3883                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3884                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_cipher_set_time));
3885                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3886                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3887                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3888                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3889                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3890                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3891                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3892                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3893                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3894                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3895         }
3896         if (ndr_flags & NDR_BUFFERS) {
3897                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3898                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3899                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3900                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3901                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3902                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3903                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3904         }
3905         return NDR_ERR_SUCCESS;
3906 }
3907
3908 _PUBLIC_ void ndr_print_netr_DELTA_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_SECRET *r)
3909 {
3910         ndr_print_struct(ndr, name, "netr_DELTA_SECRET");
3911         ndr->depth++;
3912         ndr_print_netr_CIPHER_VALUE(ndr, "current_cipher", &r->current_cipher);
3913         ndr_print_NTTIME(ndr, "current_cipher_set_time", r->current_cipher_set_time);
3914         ndr_print_netr_CIPHER_VALUE(ndr, "old_cipher", &r->old_cipher);
3915         ndr_print_NTTIME(ndr, "old_cipher_set_time", r->old_cipher_set_time);
3916         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3917         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3918         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3919         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3920         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3921         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3922         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3923         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3924         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3925         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3926         ndr->depth--;
3927 }
3928
3929 static enum ndr_err_code ndr_push_netr_DeltaEnum(struct ndr_push *ndr, int ndr_flags, enum netr_DeltaEnum r)
3930 {
3931         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
3932         return NDR_ERR_SUCCESS;
3933 }
3934
3935 static enum ndr_err_code ndr_pull_netr_DeltaEnum(struct ndr_pull *ndr, int ndr_flags, enum netr_DeltaEnum *r)
3936 {
3937         uint16_t v;
3938         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
3939         *r = v;
3940         return NDR_ERR_SUCCESS;
3941 }
3942
3943 _PUBLIC_ void ndr_print_netr_DeltaEnum(struct ndr_print *ndr, const char *name, enum netr_DeltaEnum r)
3944 {
3945         const char *val = NULL;
3946
3947         switch (r) {
3948                 case NETR_DELTA_DOMAIN: val = "NETR_DELTA_DOMAIN"; break;
3949                 case NETR_DELTA_GROUP: val = "NETR_DELTA_GROUP"; break;
3950                 case NETR_DELTA_DELETE_GROUP: val = "NETR_DELTA_DELETE_GROUP"; break;
3951                 case NETR_DELTA_RENAME_GROUP: val = "NETR_DELTA_RENAME_GROUP"; break;
3952                 case NETR_DELTA_USER: val = "NETR_DELTA_USER"; break;
3953                 case NETR_DELTA_DELETE_USER: val = "NETR_DELTA_DELETE_USER"; break;
3954                 case NETR_DELTA_RENAME_USER: val = "NETR_DELTA_RENAME_USER"; break;
3955                 case NETR_DELTA_GROUP_MEMBER: val = "NETR_DELTA_GROUP_MEMBER"; break;
3956                 case NETR_DELTA_ALIAS: val = "NETR_DELTA_ALIAS"; break;
3957                 case NETR_DELTA_DELETE_ALIAS: val = "NETR_DELTA_DELETE_ALIAS"; break;
3958                 case NETR_DELTA_RENAME_ALIAS: val = "NETR_DELTA_RENAME_ALIAS"; break;
3959                 case NETR_DELTA_ALIAS_MEMBER: val = "NETR_DELTA_ALIAS_MEMBER"; break;
3960                 case NETR_DELTA_POLICY: val = "NETR_DELTA_POLICY"; break;
3961                 case NETR_DELTA_TRUSTED_DOMAIN: val = "NETR_DELTA_TRUSTED_DOMAIN"; break;
3962                 case NETR_DELTA_DELETE_TRUST: val = "NETR_DELTA_DELETE_TRUST"; break;
3963                 case NETR_DELTA_ACCOUNT: val = "NETR_DELTA_ACCOUNT"; break;
3964                 case NETR_DELTA_DELETE_ACCOUNT: val = "NETR_DELTA_DELETE_ACCOUNT"; break;
3965                 case NETR_DELTA_SECRET: val = "NETR_DELTA_SECRET"; break;
3966                 case NETR_DELTA_DELETE_SECRET: val = "NETR_DELTA_DELETE_SECRET"; break;
3967                 case NETR_DELTA_DELETE_GROUP2: val = "NETR_DELTA_DELETE_GROUP2"; break;
3968                 case NETR_DELTA_DELETE_USER2: val = "NETR_DELTA_DELETE_USER2"; break;
3969                 case NETR_DELTA_MODIFY_COUNT: val = "NETR_DELTA_MODIFY_COUNT"; break;
3970         }
3971         ndr_print_enum(ndr, name, "ENUM", val, r);
3972 }
3973
3974 static enum ndr_err_code ndr_push_netr_DELTA_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_UNION *r)
3975 {
3976         if (ndr_flags & NDR_SCALARS) {
3977                 int level = ndr_push_get_switch_value(ndr, r);
3978                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
3979                 switch (level) {
3980                         case NETR_DELTA_DOMAIN: {
3981                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
3982                         break; }
3983
3984                         case NETR_DELTA_GROUP: {
3985                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group));
3986                         break; }
3987
3988                         case NETR_DELTA_DELETE_GROUP: {
3989                         break; }
3990
3991                         case NETR_DELTA_RENAME_GROUP: {
3992                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_group));
3993                         break; }
3994
3995                         case NETR_DELTA_USER: {
3996                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
3997                         break; }
3998
3999                         case NETR_DELTA_DELETE_USER: {
4000                         break; }
4001
4002                         case NETR_DELTA_RENAME_USER: {
4003                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_user));
4004                         break; }
4005
4006                         case NETR_DELTA_GROUP_MEMBER: {
4007                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_member));
4008                         break; }
4009
4010                         case NETR_DELTA_ALIAS: {
4011                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias));
4012                         break; }
4013
4014                         case NETR_DELTA_DELETE_ALIAS: {
4015                         break; }
4016
4017                         case NETR_DELTA_RENAME_ALIAS: {
4018                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_alias));
4019                         break; }
4020
4021                         case NETR_DELTA_ALIAS_MEMBER: {
4022                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias_member));
4023                         break; }
4024
4025                         case NETR_DELTA_POLICY: {
4026                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
4027                         break; }
4028
4029                         case NETR_DELTA_TRUSTED_DOMAIN: {
4030                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain));
4031                         break; }
4032
4033                         case NETR_DELTA_DELETE_TRUST: {
4034                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4035                         break; }
4036
4037                         case NETR_DELTA_ACCOUNT: {
4038                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account));
4039                         break; }
4040
4041                         case NETR_DELTA_DELETE_ACCOUNT: {
4042                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4043                         break; }
4044
4045                         case NETR_DELTA_SECRET: {
4046                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret));
4047                         break; }
4048
4049                         case NETR_DELTA_DELETE_SECRET: {
4050                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4051                         break; }
4052
4053                         case NETR_DELTA_DELETE_GROUP2: {
4054                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_group));
4055                         break; }
4056
4057                         case NETR_DELTA_DELETE_USER2: {
4058                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_user));
4059                         break; }
4060
4061                         case NETR_DELTA_MODIFY_COUNT: {
4062                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->modified_count));
4063                         break; }
4064
4065                         default:
4066                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4067                 }
4068         }
4069         if (ndr_flags & NDR_BUFFERS) {
4070                 int level = ndr_push_get_switch_value(ndr, r);
4071                 switch (level) {
4072                         case NETR_DELTA_DOMAIN:
4073                                 if (r->domain) {
4074                                         NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4075                                 }
4076                         break;
4077
4078                         case NETR_DELTA_GROUP:
4079                                 if (r->group) {
4080                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4081                                 }
4082                         break;
4083
4084                         case NETR_DELTA_DELETE_GROUP:
4085                         break;
4086
4087                         case NETR_DELTA_RENAME_GROUP:
4088                                 if (r->rename_group) {
4089                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4090                                 }
4091                         break;
4092
4093                         case NETR_DELTA_USER:
4094                                 if (r->user) {
4095                                         NDR_CHECK(ndr_push_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4096                                 }
4097                         break;
4098
4099                         case NETR_DELTA_DELETE_USER:
4100                         break;
4101
4102                         case NETR_DELTA_RENAME_USER:
4103                                 if (r->rename_user) {
4104                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4105                                 }
4106                         break;
4107
4108                         case NETR_DELTA_GROUP_MEMBER:
4109                                 if (r->group_member) {
4110                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4111                                 }
4112                         break;
4113
4114                         case NETR_DELTA_ALIAS:
4115                                 if (r->alias) {
4116                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4117                                 }
4118                         break;
4119
4120                         case NETR_DELTA_DELETE_ALIAS:
4121                         break;
4122
4123                         case NETR_DELTA_RENAME_ALIAS:
4124                                 if (r->rename_alias) {
4125                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4126                                 }
4127                         break;
4128
4129                         case NETR_DELTA_ALIAS_MEMBER:
4130                                 if (r->alias_member) {
4131                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4132                                 }
4133                         break;
4134
4135                         case NETR_DELTA_POLICY:
4136                                 if (r->policy) {
4137                                         NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4138                                 }
4139                         break;
4140
4141                         case NETR_DELTA_TRUSTED_DOMAIN:
4142                                 if (r->trusted_domain) {
4143                                         NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4144                                 }
4145                         break;
4146
4147                         case NETR_DELTA_DELETE_TRUST:
4148                         break;
4149
4150                         case NETR_DELTA_ACCOUNT:
4151                                 if (r->account) {
4152                                         NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4153                                 }
4154                         break;
4155
4156                         case NETR_DELTA_DELETE_ACCOUNT:
4157                         break;
4158
4159                         case NETR_DELTA_SECRET:
4160                                 if (r->secret) {
4161                                         NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4162                                 }
4163                         break;
4164
4165                         case NETR_DELTA_DELETE_SECRET:
4166                         break;
4167
4168                         case NETR_DELTA_DELETE_GROUP2:
4169                                 if (r->delete_group) {
4170                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4171                                 }
4172                         break;
4173
4174                         case NETR_DELTA_DELETE_USER2:
4175                                 if (r->delete_user) {
4176                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4177                                 }
4178                         break;
4179
4180                         case NETR_DELTA_MODIFY_COUNT:
4181                                 if (r->modified_count) {
4182                                         NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->modified_count));
4183                                 }
4184                         break;
4185
4186                         default:
4187                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4188                 }
4189         }
4190         return NDR_ERR_SUCCESS;
4191 }
4192
4193 static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_UNION *r)
4194 {
4195         int level;
4196         uint16_t _level;
4197         TALLOC_CTX *_mem_save_domain_0;
4198         TALLOC_CTX *_mem_save_group_0;
4199         TALLOC_CTX *_mem_save_rename_group_0;
4200         TALLOC_CTX *_mem_save_user_0;
4201         TALLOC_CTX *_mem_save_rename_user_0;
4202         TALLOC_CTX *_mem_save_group_member_0;
4203         TALLOC_CTX *_mem_save_alias_0;
4204         TALLOC_CTX *_mem_save_rename_alias_0;
4205         TALLOC_CTX *_mem_save_alias_member_0;
4206         TALLOC_CTX *_mem_save_policy_0;
4207         TALLOC_CTX *_mem_save_trusted_domain_0;
4208         TALLOC_CTX *_mem_save_account_0;
4209         TALLOC_CTX *_mem_save_secret_0;
4210         TALLOC_CTX *_mem_save_delete_group_0;
4211         TALLOC_CTX *_mem_save_delete_user_0;
4212         TALLOC_CTX *_mem_save_modified_count_0;
4213         level = ndr_pull_get_switch_value(ndr, r);
4214         if (ndr_flags & NDR_SCALARS) {
4215                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4216                 if (_level != level) {
4217                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4218                 }
4219                 switch (level) {
4220                         case NETR_DELTA_DOMAIN: {
4221                                 uint32_t _ptr_domain;
4222                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
4223                                 if (_ptr_domain) {
4224                                         NDR_PULL_ALLOC(ndr, r->domain);
4225                                 } else {
4226                                         r->domain = NULL;
4227                                 }
4228                         break; }
4229
4230                         case NETR_DELTA_GROUP: {
4231                                 uint32_t _ptr_group;
4232                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group));
4233                                 if (_ptr_group) {
4234                                         NDR_PULL_ALLOC(ndr, r->group);
4235                                 } else {
4236                                         r->group = NULL;
4237                                 }
4238                         break; }
4239
4240                         case NETR_DELTA_DELETE_GROUP: {
4241                         break; }
4242
4243                         case NETR_DELTA_RENAME_GROUP: {
4244                                 uint32_t _ptr_rename_group;
4245                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group));
4246                                 if (_ptr_rename_group) {
4247                                         NDR_PULL_ALLOC(ndr, r->rename_group);
4248                                 } else {
4249                                         r->rename_group = NULL;
4250                                 }
4251                         break; }
4252
4253                         case NETR_DELTA_USER: {
4254                                 uint32_t _ptr_user;
4255                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
4256                                 if (_ptr_user) {
4257                                         NDR_PULL_ALLOC(ndr, r->user);
4258                                 } else {
4259                                         r->user = NULL;
4260                                 }
4261                         break; }
4262
4263                         case NETR_DELTA_DELETE_USER: {
4264                         break; }
4265
4266                         case NETR_DELTA_RENAME_USER: {
4267                                 uint32_t _ptr_rename_user;
4268                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user));
4269                                 if (_ptr_rename_user) {
4270                                         NDR_PULL_ALLOC(ndr, r->rename_user);
4271                                 } else {
4272                                         r->rename_user = NULL;
4273                                 }
4274                         break; }
4275
4276                         case NETR_DELTA_GROUP_MEMBER: {
4277                                 uint32_t _ptr_group_member;
4278                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member));
4279                                 if (_ptr_group_member) {
4280                                         NDR_PULL_ALLOC(ndr, r->group_member);
4281                                 } else {
4282                                         r->group_member = NULL;
4283                                 }
4284                         break; }
4285
4286                         case NETR_DELTA_ALIAS: {
4287                                 uint32_t _ptr_alias;
4288                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias));
4289                                 if (_ptr_alias) {
4290                                         NDR_PULL_ALLOC(ndr, r->alias);
4291                                 } else {
4292                                         r->alias = NULL;
4293                                 }
4294                         break; }
4295
4296                         case NETR_DELTA_DELETE_ALIAS: {
4297                         break; }
4298
4299                         case NETR_DELTA_RENAME_ALIAS: {
4300                                 uint32_t _ptr_rename_alias;
4301                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias));
4302                                 if (_ptr_rename_alias) {
4303                                         NDR_PULL_ALLOC(ndr, r->rename_alias);
4304                                 } else {
4305                                         r->rename_alias = NULL;
4306                                 }
4307                         break; }
4308
4309                         case NETR_DELTA_ALIAS_MEMBER: {
4310                                 uint32_t _ptr_alias_member;
4311                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member));
4312                                 if (_ptr_alias_member) {
4313                                         NDR_PULL_ALLOC(ndr, r->alias_member);
4314                                 } else {
4315                                         r->alias_member = NULL;
4316                                 }
4317                         break; }
4318
4319                         case NETR_DELTA_POLICY: {
4320                                 uint32_t _ptr_policy;
4321                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
4322                                 if (_ptr_policy) {
4323                                         NDR_PULL_ALLOC(ndr, r->policy);
4324                                 } else {
4325                                         r->policy = NULL;
4326                                 }
4327                         break; }
4328
4329                         case NETR_DELTA_TRUSTED_DOMAIN: {
4330                                 uint32_t _ptr_trusted_domain;
4331                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain));
4332                                 if (_ptr_trusted_domain) {
4333                                         NDR_PULL_ALLOC(ndr, r->trusted_domain);
4334                                 } else {
4335                                         r->trusted_domain = NULL;
4336                                 }
4337                         break; }
4338
4339                         case NETR_DELTA_DELETE_TRUST: {
4340                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4341                         break; }
4342
4343                         case NETR_DELTA_ACCOUNT: {
4344                                 uint32_t _ptr_account;
4345                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account));
4346                                 if (_ptr_account) {
4347                                         NDR_PULL_ALLOC(ndr, r->account);
4348                                 } else {
4349                                         r->account = NULL;
4350                                 }
4351                         break; }
4352
4353                         case NETR_DELTA_DELETE_ACCOUNT: {
4354                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4355                         break; }
4356
4357                         case NETR_DELTA_SECRET: {
4358                                 uint32_t _ptr_secret;
4359                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret));
4360                                 if (_ptr_secret) {
4361                                         NDR_PULL_ALLOC(ndr, r->secret);
4362                                 } else {
4363                                         r->secret = NULL;
4364                                 }
4365                         break; }
4366
4367                         case NETR_DELTA_DELETE_SECRET: {
4368                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4369                         break; }
4370
4371                         case NETR_DELTA_DELETE_GROUP2: {
4372                                 uint32_t _ptr_delete_group;
4373                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group));
4374                                 if (_ptr_delete_group) {
4375                                         NDR_PULL_ALLOC(ndr, r->delete_group);
4376                                 } else {
4377                                         r->delete_group = NULL;
4378                                 }
4379                         break; }
4380
4381                         case NETR_DELTA_DELETE_USER2: {
4382                                 uint32_t _ptr_delete_user;
4383                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user));
4384                                 if (_ptr_delete_user) {
4385                                         NDR_PULL_ALLOC(ndr, r->delete_user);
4386                                 } else {
4387                                         r->delete_user = NULL;
4388                                 }
4389                         break; }
4390
4391                         case NETR_DELTA_MODIFY_COUNT: {
4392                                 uint32_t _ptr_modified_count;
4393                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count));
4394                                 if (_ptr_modified_count) {
4395                                         NDR_PULL_ALLOC(ndr, r->modified_count);
4396                                 } else {
4397                                         r->modified_count = NULL;
4398                                 }
4399                         break; }
4400
4401                         default:
4402                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4403                 }
4404         }
4405         if (ndr_flags & NDR_BUFFERS) {
4406                 switch (level) {
4407                         case NETR_DELTA_DOMAIN:
4408                                 if (r->domain) {
4409                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4410                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
4411                                         NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4412                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
4413                                 }
4414                         break;
4415
4416                         case NETR_DELTA_GROUP:
4417                                 if (r->group) {
4418                                         _mem_save_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4419                                         NDR_PULL_SET_MEM_CTX(ndr, r->group, 0);
4420                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4421                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_0, 0);
4422                                 }
4423                         break;
4424
4425                         case NETR_DELTA_DELETE_GROUP:
4426                         break;
4427
4428                         case NETR_DELTA_RENAME_GROUP:
4429                                 if (r->rename_group) {
4430                                         _mem_save_rename_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4431                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_group, 0);
4432                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4433                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_group_0, 0);
4434                                 }
4435                         break;
4436
4437                         case NETR_DELTA_USER:
4438                                 if (r->user) {
4439                                         _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4440                                         NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
4441                                         NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4442                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
4443                                 }
4444                         break;
4445
4446                         case NETR_DELTA_DELETE_USER:
4447                         break;
4448
4449                         case NETR_DELTA_RENAME_USER:
4450                                 if (r->rename_user) {
4451                                         _mem_save_rename_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4452                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_user, 0);
4453                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4454                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_user_0, 0);
4455                                 }
4456                         break;
4457
4458                         case NETR_DELTA_GROUP_MEMBER:
4459                                 if (r->group_member) {
4460                                         _mem_save_group_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4461                                         NDR_PULL_SET_MEM_CTX(ndr, r->group_member, 0);
4462                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4463                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_member_0, 0);
4464                                 }
4465                         break;
4466
4467                         case NETR_DELTA_ALIAS:
4468                                 if (r->alias) {
4469                                         _mem_save_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4470                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias, 0);
4471                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4472                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_0, 0);
4473                                 }
4474                         break;
4475
4476                         case NETR_DELTA_DELETE_ALIAS:
4477                         break;
4478
4479                         case NETR_DELTA_RENAME_ALIAS:
4480                                 if (r->rename_alias) {
4481                                         _mem_save_rename_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4482                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_alias, 0);
4483                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4484                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_alias_0, 0);
4485                                 }
4486                         break;
4487
4488                         case NETR_DELTA_ALIAS_MEMBER:
4489                                 if (r->alias_member) {
4490                                         _mem_save_alias_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4491                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias_member, 0);
4492                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4493                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_member_0, 0);
4494                                 }
4495                         break;
4496
4497                         case NETR_DELTA_POLICY:
4498                                 if (r->policy) {
4499                                         _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
4500                                         NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
4501                                         NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4502                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
4503                                 }
4504                         break;
4505
4506                         case NETR_DELTA_TRUSTED_DOMAIN:
4507                                 if (r->trusted_domain) {
4508                                         _mem_save_trusted_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4509                                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain, 0);
4510                                         NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4511                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_0, 0);
4512                                 }
4513                         break;
4514
4515                         case NETR_DELTA_DELETE_TRUST:
4516                         break;
4517
4518                         case NETR_DELTA_ACCOUNT:
4519                                 if (r->account) {
4520                                         _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
4521                                         NDR_PULL_SET_MEM_CTX(ndr, r->account, 0);
4522                                         NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4523                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0);
4524                                 }
4525                         break;
4526
4527                         case NETR_DELTA_DELETE_ACCOUNT:
4528                         break;
4529
4530                         case NETR_DELTA_SECRET:
4531                                 if (r->secret) {
4532                                         _mem_save_secret_0 = NDR_PULL_GET_MEM_CTX(ndr);
4533                                         NDR_PULL_SET_MEM_CTX(ndr, r->secret, 0);
4534                                         NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4535                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_0, 0);
4536                                 }
4537                         break;
4538
4539                         case NETR_DELTA_DELETE_SECRET:
4540                         break;
4541
4542                         case NETR_DELTA_DELETE_GROUP2:
4543                                 if (r->delete_group) {
4544                                         _mem_save_delete_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4545                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_group, 0);
4546                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4547                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_group_0, 0);
4548                                 }
4549                         break;
4550
4551                         case NETR_DELTA_DELETE_USER2:
4552                                 if (r->delete_user) {
4553                                         _mem_save_delete_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4554                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_user, 0);
4555                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4556                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_user_0, 0);
4557                                 }
4558                         break;
4559
4560                         case NETR_DELTA_MODIFY_COUNT:
4561                                 if (r->modified_count) {
4562                                         _mem_save_modified_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
4563                                         NDR_PULL_SET_MEM_CTX(ndr, r->modified_count, 0);
4564                                         NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->modified_count));
4565                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_modified_count_0, 0);
4566                                 }
4567                         break;
4568
4569                         default:
4570                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4571                 }
4572         }
4573         return NDR_ERR_SUCCESS;
4574 }
4575
4576 _PUBLIC_ void ndr_print_netr_DELTA_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_UNION *r)
4577 {
4578         int level;
4579         level = ndr_print_get_switch_value(ndr, r);
4580         ndr_print_union(ndr, name, level, "netr_DELTA_UNION");
4581         switch (level) {
4582                 case NETR_DELTA_DOMAIN:
4583                         ndr_print_ptr(ndr, "domain", r->domain);
4584                         ndr->depth++;
4585                         if (r->domain) {
4586                                 ndr_print_netr_DELTA_DOMAIN(ndr, "domain", r->domain);
4587                         }
4588                         ndr->depth--;
4589                 break;
4590
4591                 case NETR_DELTA_GROUP:
4592                         ndr_print_ptr(ndr, "group", r->group);
4593                         ndr->depth++;
4594                         if (r->group) {
4595                                 ndr_print_netr_DELTA_GROUP(ndr, "group", r->group);
4596                         }
4597                         ndr->depth--;
4598                 break;
4599
4600                 case NETR_DELTA_DELETE_GROUP:
4601                 break;
4602
4603                 case NETR_DELTA_RENAME_GROUP:
4604                         ndr_print_ptr(ndr, "rename_group", r->rename_group);
4605                         ndr->depth++;
4606                         if (r->rename_group) {
4607                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_group", r->rename_group);
4608                         }
4609                         ndr->depth--;
4610                 break;
4611
4612                 case NETR_DELTA_USER:
4613                         ndr_print_ptr(ndr, "user", r->user);
4614                         ndr->depth++;
4615                         if (r->user) {
4616                                 ndr_print_netr_DELTA_USER(ndr, "user", r->user);
4617                         }
4618                         ndr->depth--;
4619                 break;
4620
4621                 case NETR_DELTA_DELETE_USER:
4622                 break;
4623
4624                 case NETR_DELTA_RENAME_USER:
4625                         ndr_print_ptr(ndr, "rename_user", r->rename_user);
4626                         ndr->depth++;
4627                         if (r->rename_user) {
4628                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_user", r->rename_user);
4629                         }
4630                         ndr->depth--;
4631                 break;
4632
4633                 case NETR_DELTA_GROUP_MEMBER:
4634                         ndr_print_ptr(ndr, "group_member", r->group_member);
4635                         ndr->depth++;
4636                         if (r->group_member) {
4637                                 ndr_print_netr_DELTA_GROUP_MEMBER(ndr, "group_member", r->group_member);
4638                         }
4639                         ndr->depth--;
4640                 break;
4641
4642                 case NETR_DELTA_ALIAS:
4643                         ndr_print_ptr(ndr, "alias", r->alias);
4644                         ndr->depth++;
4645                         if (r->alias) {
4646                                 ndr_print_netr_DELTA_ALIAS(ndr, "alias", r->alias);
4647                         }
4648                         ndr->depth--;
4649                 break;
4650
4651                 case NETR_DELTA_DELETE_ALIAS:
4652                 break;
4653
4654                 case NETR_DELTA_RENAME_ALIAS:
4655                         ndr_print_ptr(ndr, "rename_alias", r->rename_alias);
4656                         ndr->depth++;
4657                         if (r->rename_alias) {
4658                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_alias", r->rename_alias);
4659                         }
4660                         ndr->depth--;
4661                 break;
4662
4663                 case NETR_DELTA_ALIAS_MEMBER:
4664                         ndr_print_ptr(ndr, "alias_member", r->alias_member);
4665                         ndr->depth++;
4666                         if (r->alias_member) {
4667                                 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr, "alias_member", r->alias_member);
4668                         }
4669                         ndr->depth--;
4670                 break;
4671
4672                 case NETR_DELTA_POLICY:
4673                         ndr_print_ptr(ndr, "policy", r->policy);
4674                         ndr->depth++;
4675                         if (r->policy) {
4676                                 ndr_print_netr_DELTA_POLICY(ndr, "policy", r->policy);
4677                         }
4678                         ndr->depth--;
4679                 break;
4680
4681                 case NETR_DELTA_TRUSTED_DOMAIN:
4682                         ndr_print_ptr(ndr, "trusted_domain", r->trusted_domain);
4683                         ndr->depth++;
4684                         if (r->trusted_domain) {
4685                                 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr, "trusted_domain", r->trusted_domain);
4686                         }
4687                         ndr->depth--;
4688                 break;
4689
4690                 case NETR_DELTA_DELETE_TRUST:
4691                         ndr_print_netr_DELTA_DELETE_TRUST(ndr, "delete_trust", &r->delete_trust);
4692                 break;
4693
4694                 case NETR_DELTA_ACCOUNT:
4695                         ndr_print_ptr(ndr, "account", r->account);
4696                         ndr->depth++;
4697                         if (r->account) {
4698                                 ndr_print_netr_DELTA_ACCOUNT(ndr, "account", r->account);
4699                         }
4700                         ndr->depth--;
4701                 break;
4702
4703                 case NETR_DELTA_DELETE_ACCOUNT:
4704                         ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr, "delete_account", &r->delete_account);
4705                 break;
4706
4707                 case NETR_DELTA_SECRET:
4708                         ndr_print_ptr(ndr, "secret", r->secret);
4709                         ndr->depth++;
4710                         if (r->secret) {
4711                                 ndr_print_netr_DELTA_SECRET(ndr, "secret", r->secret);
4712                         }
4713                         ndr->depth--;
4714                 break;
4715
4716                 case NETR_DELTA_DELETE_SECRET:
4717                         ndr_print_netr_DELTA_DELETE_SECRET(ndr, "delete_secret", &r->delete_secret);
4718                 break;
4719
4720                 case NETR_DELTA_DELETE_GROUP2:
4721                         ndr_print_ptr(ndr, "delete_group", r->delete_group);
4722                         ndr->depth++;
4723                         if (r->delete_group) {
4724                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_group", r->delete_group);
4725                         }
4726                         ndr->depth--;
4727                 break;
4728
4729                 case NETR_DELTA_DELETE_USER2:
4730                         ndr_print_ptr(ndr, "delete_user", r->delete_user);
4731                         ndr->depth++;
4732                         if (r->delete_user) {
4733                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_user", r->delete_user);
4734                         }
4735                         ndr->depth--;
4736                 break;
4737
4738                 case NETR_DELTA_MODIFY_COUNT:
4739                         ndr_print_ptr(ndr, "modified_count", r->modified_count);
4740                         ndr->depth++;
4741                         if (r->modified_count) {
4742                                 ndr_print_udlong(ndr, "modified_count", *r->modified_count);
4743                         }
4744                         ndr->depth--;
4745                 break;
4746
4747                 default:
4748                         ndr_print_bad_level(ndr, name, level);
4749         }
4750 }
4751
4752 static enum ndr_err_code ndr_push_netr_DELTA_ID_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_ID_UNION *r)
4753 {
4754         if (ndr_flags & NDR_SCALARS) {
4755                 int level = ndr_push_get_switch_value(ndr, r);
4756                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
4757                 switch (level) {
4758                         case NETR_DELTA_DOMAIN: {
4759                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4760                         break; }
4761
4762                         case NETR_DELTA_GROUP: {
4763                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4764                         break; }
4765
4766                         case NETR_DELTA_DELETE_GROUP: {
4767                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4768                         break; }
4769
4770                         case NETR_DELTA_RENAME_GROUP: {
4771                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4772                         break; }
4773
4774                         case NETR_DELTA_USER: {
4775                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4776                         break; }
4777
4778                         case NETR_DELTA_DELETE_USER: {
4779                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4780                         break; }
4781
4782                         case NETR_DELTA_RENAME_USER: {
4783                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4784                         break; }
4785
4786                         case NETR_DELTA_GROUP_MEMBER: {
4787                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4788                         break; }
4789
4790                         case NETR_DELTA_ALIAS: {
4791                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4792                         break; }
4793
4794                         case NETR_DELTA_DELETE_ALIAS: {
4795                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4796                         break; }
4797
4798                         case NETR_DELTA_RENAME_ALIAS: {
4799                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4800                         break; }
4801
4802                         case NETR_DELTA_ALIAS_MEMBER: {
4803                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4804                         break; }
4805
4806                         case NETR_DELTA_POLICY: {
4807                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4808                         break; }
4809
4810                         case NETR_DELTA_TRUSTED_DOMAIN: {
4811                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4812                         break; }
4813
4814                         case NETR_DELTA_DELETE_TRUST: {
4815                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4816                         break; }
4817
4818                         case NETR_DELTA_ACCOUNT: {
4819                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4820                         break; }
4821
4822                         case NETR_DELTA_DELETE_ACCOUNT: {
4823                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4824                         break; }
4825
4826                         case NETR_DELTA_SECRET: {
4827                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4828                         break; }
4829
4830                         case NETR_DELTA_DELETE_SECRET: {
4831                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4832                         break; }
4833
4834                         case NETR_DELTA_DELETE_GROUP2: {
4835                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4836                         break; }
4837
4838                         case NETR_DELTA_DELETE_USER2: {
4839                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4840                         break; }
4841
4842                         case NETR_DELTA_MODIFY_COUNT: {
4843                         break; }
4844
4845                         default:
4846                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4847                 }
4848         }
4849         if (ndr_flags & NDR_BUFFERS) {
4850                 int level = ndr_push_get_switch_value(ndr, r);
4851                 switch (level) {
4852                         case NETR_DELTA_DOMAIN:
4853                         break;
4854
4855                         case NETR_DELTA_GROUP:
4856                         break;
4857
4858                         case NETR_DELTA_DELETE_GROUP:
4859                         break;
4860
4861                         case NETR_DELTA_RENAME_GROUP:
4862                         break;
4863
4864                         case NETR_DELTA_USER:
4865                         break;
4866
4867                         case NETR_DELTA_DELETE_USER:
4868                         break;
4869
4870                         case NETR_DELTA_RENAME_USER:
4871                         break;
4872
4873                         case NETR_DELTA_GROUP_MEMBER:
4874                         break;
4875
4876                         case NETR_DELTA_ALIAS:
4877                         break;
4878
4879                         case NETR_DELTA_DELETE_ALIAS:
4880                         break;
4881
4882                         case NETR_DELTA_RENAME_ALIAS:
4883                         break;
4884
4885                         case NETR_DELTA_ALIAS_MEMBER:
4886                         break;
4887
4888                         case NETR_DELTA_POLICY:
4889                                 if (r->sid) {
4890                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4891                                 }
4892                         break;
4893
4894                         case NETR_DELTA_TRUSTED_DOMAIN:
4895                                 if (r->sid) {
4896                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4897                                 }
4898                         break;
4899
4900                         case NETR_DELTA_DELETE_TRUST:
4901                                 if (r->sid) {
4902                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4903                                 }
4904                         break;
4905
4906                         case NETR_DELTA_ACCOUNT:
4907                                 if (r->sid) {
4908                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4909                                 }
4910                         break;
4911
4912                         case NETR_DELTA_DELETE_ACCOUNT:
4913                                 if (r->sid) {
4914                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4915                                 }
4916                         break;
4917
4918                         case NETR_DELTA_SECRET:
4919                                 if (r->name) {
4920                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4921                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4922                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4923                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4924                                 }
4925                         break;
4926
4927                         case NETR_DELTA_DELETE_SECRET:
4928                                 if (r->name) {
4929                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4930                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4931                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4932                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4933                                 }
4934                         break;
4935
4936                         case NETR_DELTA_DELETE_GROUP2:
4937                         break;
4938
4939                         case NETR_DELTA_DELETE_USER2:
4940                         break;
4941
4942                         case NETR_DELTA_MODIFY_COUNT:
4943                         break;
4944
4945                         default:
4946                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4947                 }
4948         }
4949         return NDR_ERR_SUCCESS;
4950 }
4951
4952 static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_ID_UNION *r)
4953 {
4954         int level;
4955         uint16_t _level;
4956         TALLOC_CTX *_mem_save_sid_0;
4957         TALLOC_CTX *_mem_save_name_0;
4958         level = ndr_pull_get_switch_value(ndr, r);
4959         if (ndr_flags & NDR_SCALARS) {
4960                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4961                 if (_level != level) {
4962                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4963                 }
4964                 switch (level) {
4965                         case NETR_DELTA_DOMAIN: {
4966                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4967                         break; }
4968
4969                         case NETR_DELTA_GROUP: {
4970                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4971                         break; }
4972
4973                         case NETR_DELTA_DELETE_GROUP: {
4974                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4975                         break; }
4976
4977                         case NETR_DELTA_RENAME_GROUP: {
4978                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4979                         break; }
4980
4981                         case NETR_DELTA_USER: {
4982                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4983                         break; }
4984
4985                         case NETR_DELTA_DELETE_USER: {
4986                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4987                         break; }
4988
4989                         case NETR_DELTA_RENAME_USER: {
4990                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4991                         break; }
4992
4993                         case NETR_DELTA_GROUP_MEMBER: {
4994                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4995                         break; }
4996
4997                         case NETR_DELTA_ALIAS: {
4998                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4999                         break; }
5000
5001                         case NETR_DELTA_DELETE_ALIAS: {
5002                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5003                         break; }
5004
5005                         case NETR_DELTA_RENAME_ALIAS: {
5006                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5007                         break; }
5008
5009                         case NETR_DELTA_ALIAS_MEMBER: {
5010                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5011                         break; }
5012
5013                         case NETR_DELTA_POLICY: {
5014                                 uint32_t _ptr_sid;
5015                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5016                                 if (_ptr_sid) {
5017                                         NDR_PULL_ALLOC(ndr, r->sid);
5018                                 } else {
5019                                         r->sid = NULL;
5020                                 }
5021                         break; }
5022
5023                         case NETR_DELTA_TRUSTED_DOMAIN: {
5024                                 uint32_t _ptr_sid;
5025                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5026                                 if (_ptr_sid) {
5027                                         NDR_PULL_ALLOC(ndr, r->sid);
5028                                 } else {
5029                                         r->sid = NULL;
5030                                 }
5031                         break; }
5032
5033                         case NETR_DELTA_DELETE_TRUST: {
5034                                 uint32_t _ptr_sid;
5035                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5036                                 if (_ptr_sid) {
5037                                         NDR_PULL_ALLOC(ndr, r->sid);
5038                                 } else {
5039                                         r->sid = NULL;
5040                                 }
5041                         break; }
5042
5043                         case NETR_DELTA_ACCOUNT: {
5044                                 uint32_t _ptr_sid;
5045                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5046                                 if (_ptr_sid) {
5047                                         NDR_PULL_ALLOC(ndr, r->sid);
5048                                 } else {
5049                                         r->sid = NULL;
5050                                 }
5051                         break; }
5052
5053                         case NETR_DELTA_DELETE_ACCOUNT: {
5054                                 uint32_t _ptr_sid;
5055                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
5056                                 if (_ptr_sid) {
5057                                         NDR_PULL_ALLOC(ndr, r->sid);
5058                                 } else {
5059                                         r->sid = NULL;
5060                                 }
5061                         break; }
5062
5063                         case NETR_DELTA_SECRET: {
5064                                 uint32_t _ptr_name;
5065                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
5066                                 if (_ptr_name) {
5067                                         NDR_PULL_ALLOC(ndr, r->name);
5068                                 } else {
5069                                         r->name = NULL;
5070                                 }
5071                         break; }
5072
5073                         case NETR_DELTA_DELETE_SECRET: {
5074                                 uint32_t _ptr_name;
5075                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
5076                                 if (_ptr_name) {
5077                                         NDR_PULL_ALLOC(ndr, r->name);
5078                                 } else {
5079                                         r->name = NULL;
5080                                 }
5081                         break; }
5082
5083                         case NETR_DELTA_DELETE_GROUP2: {
5084                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5085                         break; }
5086
5087                         case NETR_DELTA_DELETE_USER2: {
5088                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
5089                         break; }
5090
5091                         case NETR_DELTA_MODIFY_COUNT: {
5092                         break; }
5093
5094                         default:
5095                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5096                 }
5097         }
5098         if (ndr_flags & NDR_BUFFERS) {
5099                 switch (level) {
5100                         case NETR_DELTA_DOMAIN:
5101                         break;
5102
5103                         case NETR_DELTA_GROUP:
5104                         break;
5105
5106                         case NETR_DELTA_DELETE_GROUP:
5107                         break;
5108
5109                         case NETR_DELTA_RENAME_GROUP:
5110                         break;
5111
5112                         case NETR_DELTA_USER:
5113                         break;
5114
5115                         case NETR_DELTA_DELETE_USER:
5116                         break;
5117
5118                         case NETR_DELTA_RENAME_USER:
5119                         break;
5120
5121                         case NETR_DELTA_GROUP_MEMBER:
5122                         break;
5123
5124                         case NETR_DELTA_ALIAS:
5125                         break;
5126
5127                         case NETR_DELTA_DELETE_ALIAS:
5128                         break;
5129
5130                         case NETR_DELTA_RENAME_ALIAS:
5131                         break;
5132
5133                         case NETR_DELTA_ALIAS_MEMBER:
5134                         break;
5135
5136                         case NETR_DELTA_POLICY:
5137                                 if (r->sid) {
5138                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5139                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5140                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5141                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5142                                 }
5143                         break;
5144
5145                         case NETR_DELTA_TRUSTED_DOMAIN:
5146                                 if (r->sid) {
5147                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5148                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5149                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5150                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5151                                 }
5152                         break;
5153
5154                         case NETR_DELTA_DELETE_TRUST:
5155                                 if (r->sid) {
5156                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5157                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5158                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5159                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5160                                 }
5161                         break;
5162
5163                         case NETR_DELTA_ACCOUNT:
5164                                 if (r->sid) {
5165                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5166                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5167                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5168                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5169                                 }
5170                         break;
5171
5172                         case NETR_DELTA_DELETE_ACCOUNT:
5173                                 if (r->sid) {
5174                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
5175                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
5176                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
5177                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
5178                                 }
5179                         break;
5180
5181                         case NETR_DELTA_SECRET:
5182                                 if (r->name) {
5183                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5184                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5185                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5186                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5187                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5188                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
5189                                         }
5190                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5191                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5192                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5193                                 }
5194                         break;
5195
5196                         case NETR_DELTA_DELETE_SECRET:
5197                                 if (r->name) {
5198                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5199                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5200                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5201                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5202                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5203                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
5204                                         }
5205                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5206                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5207                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5208                                 }
5209                         break;
5210
5211                         case NETR_DELTA_DELETE_GROUP2:
5212                         break;
5213
5214                         case NETR_DELTA_DELETE_USER2:
5215                         break;
5216
5217                         case NETR_DELTA_MODIFY_COUNT:
5218                         break;
5219
5220                         default:
5221                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5222                 }
5223         }
5224         return NDR_ERR_SUCCESS;
5225 }
5226
5227 _PUBLIC_ void ndr_print_netr_DELTA_ID_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_ID_UNION *r)
5228 {
5229         int level;
5230         level = ndr_print_get_switch_value(ndr, r);
5231         ndr_print_union(ndr, name, level, "netr_DELTA_ID_UNION");
5232         switch (level) {
5233                 case NETR_DELTA_DOMAIN:
5234                         ndr_print_uint32(ndr, "rid", r->rid);
5235                 break;
5236
5237                 case NETR_DELTA_GROUP:
5238                         ndr_print_uint32(ndr, "rid", r->rid);
5239                 break;
5240
5241                 case NETR_DELTA_DELETE_GROUP:
5242                         ndr_print_uint32(ndr, "rid", r->rid);
5243                 break;
5244
5245                 case NETR_DELTA_RENAME_GROUP:
5246                         ndr_print_uint32(ndr, "rid", r->rid);
5247                 break;
5248
5249                 case NETR_DELTA_USER:
5250                         ndr_print_uint32(ndr, "rid", r->rid);
5251                 break;
5252
5253                 case NETR_DELTA_DELETE_USER:
5254                         ndr_print_uint32(ndr, "rid", r->rid);
5255                 break;
5256
5257                 case NETR_DELTA_RENAME_USER:
5258                         ndr_print_uint32(ndr, "rid", r->rid);
5259                 break;
5260
5261                 case NETR_DELTA_GROUP_MEMBER:
5262                         ndr_print_uint32(ndr, "rid", r->rid);
5263                 break;
5264
5265                 case NETR_DELTA_ALIAS:
5266                         ndr_print_uint32(ndr, "rid", r->rid);
5267                 break;
5268
5269                 case NETR_DELTA_DELETE_ALIAS:
5270                         ndr_print_uint32(ndr, "rid", r->rid);
5271                 break;
5272
5273                 case NETR_DELTA_RENAME_ALIAS:
5274                         ndr_print_uint32(ndr, "rid", r->rid);
5275                 break;
5276
5277                 case NETR_DELTA_ALIAS_MEMBER:
5278                         ndr_print_uint32(ndr, "rid", r->rid);
5279                 break;
5280
5281                 case NETR_DELTA_POLICY:
5282                         ndr_print_ptr(ndr, "sid", r->sid);
5283                         ndr->depth++;
5284                         if (r->sid) {
5285                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5286                         }
5287                         ndr->depth--;
5288                 break;
5289
5290                 case NETR_DELTA_TRUSTED_DOMAIN:
5291                         ndr_print_ptr(ndr, "sid", r->sid);
5292                         ndr->depth++;
5293                         if (r->sid) {
5294                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5295                         }
5296                         ndr->depth--;
5297                 break;
5298
5299                 case NETR_DELTA_DELETE_TRUST:
5300                         ndr_print_ptr(ndr, "sid", r->sid);
5301                         ndr->depth++;
5302                         if (r->sid) {
5303                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5304                         }
5305                         ndr->depth--;
5306                 break;
5307
5308                 case NETR_DELTA_ACCOUNT:
5309                         ndr_print_ptr(ndr, "sid", r->sid);
5310                         ndr->depth++;
5311                         if (r->sid) {
5312                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5313                         }
5314                         ndr->depth--;
5315                 break;
5316
5317                 case NETR_DELTA_DELETE_ACCOUNT:
5318                         ndr_print_ptr(ndr, "sid", r->sid);
5319                         ndr->depth++;
5320                         if (r->sid) {
5321                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5322                         }
5323                         ndr->depth--;
5324                 break;
5325
5326                 case NETR_DELTA_SECRET:
5327                         ndr_print_ptr(ndr, "name", r->name);
5328                         ndr->depth++;
5329                         if (r->name) {
5330                                 ndr_print_string(ndr, "name", r->name);
5331                         }
5332                         ndr->depth--;
5333                 break;
5334
5335                 case NETR_DELTA_DELETE_SECRET:
5336                         ndr_print_ptr(ndr, "name", r->name);
5337                         ndr->depth++;
5338                         if (r->name) {
5339                                 ndr_print_string(ndr, "name", r->name);
5340                         }
5341                         ndr->depth--;
5342                 break;
5343
5344                 case NETR_DELTA_DELETE_GROUP2:
5345                         ndr_print_uint32(ndr, "rid", r->rid);
5346                 break;
5347
5348                 case NETR_DELTA_DELETE_USER2:
5349                         ndr_print_uint32(ndr, "rid", r->rid);
5350                 break;
5351
5352                 case NETR_DELTA_MODIFY_COUNT:
5353                 break;
5354
5355                 default:
5356                         ndr_print_bad_level(ndr, name, level);
5357         }
5358 }
5359
5360 static enum ndr_err_code ndr_push_netr_DELTA_ENUM(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM *r)
5361 {
5362         if (ndr_flags & NDR_SCALARS) {
5363                 NDR_CHECK(ndr_push_align(ndr, 4));
5364                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, r->delta_type));
5365                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5366                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5367                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_union, r->delta_type));
5368                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5369         }
5370         if (ndr_flags & NDR_BUFFERS) {
5371                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5372                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5373         }
5374         return NDR_ERR_SUCCESS;
5375 }
5376
5377 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM *r)
5378 {
5379         if (ndr_flags & NDR_SCALARS) {
5380                 NDR_CHECK(ndr_pull_align(ndr, 4));
5381                 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr, NDR_SCALARS, &r->delta_type));
5382                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5383                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5384                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_union, r->delta_type));
5385                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5386         }
5387         if (ndr_flags & NDR_BUFFERS) {
5388                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5389                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5390         }
5391         return NDR_ERR_SUCCESS;
5392 }
5393
5394 _PUBLIC_ void ndr_print_netr_DELTA_ENUM(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM *r)
5395 {
5396         ndr_print_struct(ndr, name, "netr_DELTA_ENUM");
5397         ndr->depth++;
5398         ndr_print_netr_DeltaEnum(ndr, "delta_type", r->delta_type);
5399         ndr_print_set_switch_value(ndr, &r->delta_id_union, r->delta_type);
5400         ndr_print_netr_DELTA_ID_UNION(ndr, "delta_id_union", &r->delta_id_union);
5401         ndr_print_set_switch_value(ndr, &r->delta_union, r->delta_type);
5402         ndr_print_netr_DELTA_UNION(ndr, "delta_union", &r->delta_union);
5403         ndr->depth--;
5404 }
5405
5406 static enum ndr_err_code ndr_push_netr_DELTA_ENUM_ARRAY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM_ARRAY *r)
5407 {
5408         uint32_t cntr_delta_enum_1;
5409         if (ndr_flags & NDR_SCALARS) {
5410                 NDR_CHECK(ndr_push_align(ndr, 4));
5411                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5412                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delta_enum));
5413         }
5414         if (ndr_flags & NDR_BUFFERS) {
5415                 if (r->delta_enum) {
5416                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5417                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5418                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5419                         }
5420                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5421                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5422                         }
5423                 }
5424         }
5425         return NDR_ERR_SUCCESS;
5426 }
5427
5428 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r)
5429 {
5430         uint32_t _ptr_delta_enum;
5431         uint32_t cntr_delta_enum_1;
5432         TALLOC_CTX *_mem_save_delta_enum_0;
5433         TALLOC_CTX *_mem_save_delta_enum_1;
5434         if (ndr_flags & NDR_SCALARS) {
5435                 NDR_CHECK(ndr_pull_align(ndr, 4));
5436                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_deltas));
5437                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum));
5438                 if (_ptr_delta_enum) {
5439                         NDR_PULL_ALLOC(ndr, r->delta_enum);
5440                 } else {
5441                         r->delta_enum = NULL;
5442                 }
5443         }
5444         if (ndr_flags & NDR_BUFFERS) {
5445                 if (r->delta_enum) {
5446                         _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr);
5447                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5448                         NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum));
5449                         NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum));
5450                         _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr);
5451                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5452                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5453                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5454                         }
5455                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5456                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5457                         }
5458                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0);
5459                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_0, 0);
5460                 }
5461                 if (r->delta_enum) {
5462                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delta_enum, r->num_deltas));
5463                 }
5464         }
5465         return NDR_ERR_SUCCESS;
5466 }
5467
5468 _PUBLIC_ void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM_ARRAY *r)
5469 {
5470         uint32_t cntr_delta_enum_1;
5471         ndr_print_struct(ndr, name, "netr_DELTA_ENUM_ARRAY");
5472         ndr->depth++;
5473         ndr_print_uint32(ndr, "num_deltas", r->num_deltas);
5474         ndr_print_ptr(ndr, "delta_enum", r->delta_enum);
5475         ndr->depth++;
5476         if (r->delta_enum) {
5477                 ndr->print(ndr, "%s: ARRAY(%d)", "delta_enum", (int)r->num_deltas);
5478                 ndr->depth++;
5479                 for (cntr_delta_enum_1=0;cntr_delta_enum_1<r->num_deltas;cntr_delta_enum_1++) {
5480                         char *idx_1=NULL;
5481                         if (asprintf(&idx_1, "[%d]", cntr_delta_enum_1) != -1) {
5482                                 ndr_print_netr_DELTA_ENUM(ndr, "delta_enum", &r->delta_enum[cntr_delta_enum_1]);
5483                                 free(idx_1);
5484                         }
5485                 }
5486                 ndr->depth--;
5487         }
5488         ndr->depth--;
5489         ndr->depth--;
5490 }
5491
5492 static enum ndr_err_code ndr_push_netr_UAS_INFO_0(struct ndr_push *ndr, int ndr_flags, const struct netr_UAS_INFO_0 *r)
5493 {
5494         {
5495                 uint32_t _flags_save_STRUCT = ndr->flags;
5496                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5497                 if (ndr_flags & NDR_SCALARS) {
5498                         NDR_CHECK(ndr_push_align(ndr, 4));
5499                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5500                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timecreated));
5501                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number));
5502                 }
5503                 if (ndr_flags & NDR_BUFFERS) {
5504                 }
5505                 ndr->flags = _flags_save_STRUCT;
5506         }
5507         return NDR_ERR_SUCCESS;
5508 }
5509
5510 static enum ndr_err_code ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r)
5511 {
5512         {
5513                 uint32_t _flags_save_STRUCT = ndr->flags;
5514                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5515                 if (ndr_flags & NDR_SCALARS) {
5516                         NDR_CHECK(ndr_pull_align(ndr, 4));
5517                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5518                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated));
5519                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number));
5520                 }
5521                 if (ndr_flags & NDR_BUFFERS) {
5522                 }
5523                 ndr->flags = _flags_save_STRUCT;
5524         }
5525         return NDR_ERR_SUCCESS;
5526 }
5527
5528 _PUBLIC_ void ndr_print_netr_UAS_INFO_0(struct ndr_print *ndr, const char *name, const struct netr_UAS_INFO_0 *r)
5529 {
5530         ndr_print_struct(ndr, name, "netr_UAS_INFO_0");
5531         {
5532                 uint32_t _flags_save_STRUCT = ndr->flags;
5533                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5534                 ndr->depth++;
5535                 ndr_print_array_uint8(ndr, "computer_name", r->computer_name, 16);
5536                 ndr_print_uint32(ndr, "timecreated", r->timecreated);
5537                 ndr_print_uint32(ndr, "serial_number", r->serial_number);
5538                 ndr->depth--;
5539                 ndr->flags = _flags_save_STRUCT;
5540         }
5541 }
5542
5543 static enum ndr_err_code ndr_push_netr_AccountBuffer(struct ndr_push *ndr, int ndr_flags, const struct netr_AccountBuffer *r)
5544 {
5545         if (ndr_flags & NDR_SCALARS) {
5546                 NDR_CHECK(ndr_push_align(ndr, 4));
5547                 {
5548                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5549                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5550                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
5551                         ndr->flags = _flags_save_DATA_BLOB;
5552                 }
5553         }
5554         if (ndr_flags & NDR_BUFFERS) {
5555         }
5556         return NDR_ERR_SUCCESS;
5557 }
5558
5559 static enum ndr_err_code ndr_pull_netr_AccountBuffer(struct ndr_pull *ndr, int ndr_flags, struct netr_AccountBuffer *r)
5560 {
5561         if (ndr_flags & NDR_SCALARS) {
5562                 NDR_CHECK(ndr_pull_align(ndr, 4));
5563                 {
5564                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5565                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5566                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
5567                         ndr->flags = _flags_save_DATA_BLOB;
5568                 }
5569         }
5570         if (ndr_flags & NDR_BUFFERS) {
5571         }
5572         return NDR_ERR_SUCCESS;
5573 }
5574
5575 _PUBLIC_ void ndr_print_netr_AccountBuffer(struct ndr_print *ndr, const char *name, const struct netr_AccountBuffer *r)
5576 {
5577         ndr_print_struct(ndr, name, "netr_AccountBuffer");
5578         ndr->depth++;
5579         ndr_print_DATA_BLOB(ndr, "blob", r->blob);
5580         ndr->depth--;
5581 }
5582
5583 static enum ndr_err_code ndr_push_netr_InfoFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
5584 {
5585         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5586         return NDR_ERR_SUCCESS;
5587 }
5588
5589 static enum ndr_err_code ndr_pull_netr_InfoFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
5590 {
5591         uint32_t v;
5592         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5593         *r = v;
5594         return NDR_ERR_SUCCESS;
5595 }
5596
5597 _PUBLIC_ void ndr_print_netr_InfoFlags(struct ndr_print *ndr, const char *name, uint32_t r)
5598 {
5599         ndr_print_uint32(ndr, name, r);
5600         ndr->depth++;
5601         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_NEEDED", NETLOGON_CTRL_REPL_NEEDED, r);
5602         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_IN_PROGRESS", NETLOGON_CTRL_REPL_IN_PROGRESS, r);
5603         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_FULL_SYNC", NETLOGON_CTRL_REPL_FULL_SYNC, r);
5604         ndr->depth--;
5605 }
5606
5607 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_1(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_1 *r)
5608 {
5609         if (ndr_flags & NDR_SCALARS) {
5610                 NDR_CHECK(ndr_push_align(ndr, 4));
5611                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5612                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5613         }
5614         if (ndr_flags & NDR_BUFFERS) {
5615         }
5616         return NDR_ERR_SUCCESS;
5617 }
5618
5619 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_1 *r)
5620 {
5621         if (ndr_flags & NDR_SCALARS) {
5622                 NDR_CHECK(ndr_pull_align(ndr, 4));
5623                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5624                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5625         }
5626         if (ndr_flags & NDR_BUFFERS) {
5627         }
5628         return NDR_ERR_SUCCESS;
5629 }
5630
5631 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_1 *r)
5632 {
5633         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_1");
5634         ndr->depth++;
5635         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5636         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5637         ndr->depth--;
5638 }
5639
5640 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_2(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_2 *r)
5641 {
5642         if (ndr_flags & NDR_SCALARS) {
5643                 NDR_CHECK(ndr_push_align(ndr, 4));
5644                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5645                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5646                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_dc_name));
5647                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->tc_connection_status));
5648         }
5649         if (ndr_flags & NDR_BUFFERS) {
5650                 if (r->trusted_dc_name) {
5651                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5652                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5653                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5654                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->trusted_dc_name, ndr_charset_length(r->trusted_dc_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5655                 }
5656         }
5657         return NDR_ERR_SUCCESS;
5658 }
5659
5660 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r)
5661 {
5662         uint32_t _ptr_trusted_dc_name;
5663         TALLOC_CTX *_mem_save_trusted_dc_name_0;
5664         if (ndr_flags & NDR_SCALARS) {
5665                 NDR_CHECK(ndr_pull_align(ndr, 4));
5666                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5667                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5668                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_dc_name));
5669                 if (_ptr_trusted_dc_name) {
5670                         NDR_PULL_ALLOC(ndr, r->trusted_dc_name);
5671                 } else {
5672                         r->trusted_dc_name = NULL;
5673                 }
5674                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->tc_connection_status));
5675         }
5676         if (ndr_flags & NDR_BUFFERS) {
5677                 if (r->trusted_dc_name) {
5678                         _mem_save_trusted_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5679                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0);
5680                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5681                         NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5682                         if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5683                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->trusted_dc_name), ndr_get_array_length(ndr, &r->trusted_dc_name));
5684                         }
5685                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5686                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->trusted_dc_name, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t), CH_UTF16));
5687                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0);
5688                 }
5689         }
5690         return NDR_ERR_SUCCESS;
5691 }
5692
5693 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_2 *r)
5694 {
5695         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_2");
5696         ndr->depth++;
5697         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5698         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5699         ndr_print_ptr(ndr, "trusted_dc_name", r->trusted_dc_name);
5700         ndr->depth++;
5701         if (r->trusted_dc_name) {
5702                 ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5703         }
5704         ndr->depth--;
5705         ndr_print_uint32(ndr, "tc_connection_status", r->tc_connection_status);
5706         ndr->depth--;
5707 }
5708
5709 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_3(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_3 *r)
5710 {
5711         if (ndr_flags & NDR_SCALARS) {
5712                 NDR_CHECK(ndr_push_align(ndr, 4));
5713                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5714                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_attempts));
5715                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
5716                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
5717                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
5718                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
5719                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
5720         }
5721         if (ndr_flags & NDR_BUFFERS) {
5722         }
5723         return NDR_ERR_SUCCESS;
5724 }
5725
5726 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_3 *r)
5727 {
5728         if (ndr_flags & NDR_SCALARS) {
5729                 NDR_CHECK(ndr_pull_align(ndr, 4));
5730                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5731                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_attempts));
5732                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
5733                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
5734                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
5735                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
5736                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
5737         }
5738         if (ndr_flags & NDR_BUFFERS) {
5739         }
5740         return NDR_ERR_SUCCESS;
5741 }
5742
5743 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_3 *r)
5744 {
5745         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_3");
5746         ndr->depth++;
5747         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5748         ndr_print_uint32(ndr, "logon_attempts", r->logon_attempts);
5749         ndr_print_uint32(ndr, "unknown1", r->unknown1);
5750         ndr_print_uint32(ndr, "unknown2", r->unknown2);
5751         ndr_print_uint32(ndr, "unknown3", r->unknown3);
5752         ndr_print_uint32(ndr, "unknown4", r->unknown4);
5753         ndr_print_uint32(ndr, "unknown5", r->unknown5);
5754         ndr->depth--;
5755 }
5756
5757 static enum ndr_err_code ndr_push_netr_CONTROL_QUERY_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_QUERY_INFORMATION *r)
5758 {
5759         if (ndr_flags & NDR_SCALARS) {
5760                 int level = ndr_push_get_switch_value(ndr, r);
5761                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5762                 switch (level) {
5763                         case 1: {
5764                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5765                         break; }
5766
5767                         case 2: {
5768                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5769                         break; }
5770
5771                         case 3: {
5772                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5773                         break; }
5774
5775                         default:
5776                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5777                 }
5778         }
5779         if (ndr_flags & NDR_BUFFERS) {
5780                 int level = ndr_push_get_switch_value(ndr, r);
5781                 switch (level) {
5782                         case 1:
5783                                 if (r->info1) {
5784                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5785                                 }
5786                         break;
5787
5788                         case 2:
5789                                 if (r->info2) {
5790                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5791                                 }
5792                         break;
5793
5794                         case 3:
5795                                 if (r->info3) {
5796                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5797                                 }
5798                         break;
5799
5800                         default:
5801                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5802                 }
5803         }
5804         return NDR_ERR_SUCCESS;
5805 }
5806
5807 static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_QUERY_INFORMATION *r)
5808 {
5809         int level;
5810         uint32_t _level;
5811         TALLOC_CTX *_mem_save_info1_0;
5812         TALLOC_CTX *_mem_save_info2_0;
5813         TALLOC_CTX *_mem_save_info3_0;
5814         level = ndr_pull_get_switch_value(ndr, r);
5815         if (ndr_flags & NDR_SCALARS) {
5816                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5817                 if (_level != level) {
5818                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5819                 }
5820                 switch (level) {
5821                         case 1: {
5822                                 uint32_t _ptr_info1;
5823                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5824                                 if (_ptr_info1) {
5825                                         NDR_PULL_ALLOC(ndr, r->info1);
5826                                 } else {
5827                                         r->info1 = NULL;
5828                                 }
5829                         break; }
5830
5831                         case 2: {
5832                                 uint32_t _ptr_info2;
5833                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5834                                 if (_ptr_info2) {
5835                                         NDR_PULL_ALLOC(ndr, r->info2);
5836                                 } else {
5837                                         r->info2 = NULL;
5838                                 }
5839                         break; }
5840
5841                         case 3: {
5842                                 uint32_t _ptr_info3;
5843                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5844                                 if (_ptr_info3) {
5845                                         NDR_PULL_ALLOC(ndr, r->info3);
5846                                 } else {
5847                                         r->info3 = NULL;
5848                                 }
5849                         break; }
5850
5851                         default:
5852                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5853                 }
5854         }
5855         if (ndr_flags & NDR_BUFFERS) {
5856                 switch (level) {
5857                         case 1:
5858                                 if (r->info1) {
5859                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5860                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5861                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5862                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5863                                 }
5864                         break;
5865
5866                         case 2:
5867                                 if (r->info2) {
5868                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5869                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5870                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5871                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5872                                 }
5873                         break;
5874
5875                         case 3:
5876                                 if (r->info3) {
5877                                         _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5878                                         NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5879                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5880                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5881                                 }
5882                         break;
5883
5884                         default:
5885                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5886                 }
5887         }
5888         return NDR_ERR_SUCCESS;
5889 }
5890
5891 _PUBLIC_ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_QUERY_INFORMATION *r)
5892 {
5893         int level;
5894         level = ndr_print_get_switch_value(ndr, r);
5895         ndr_print_union(ndr, name, level, "netr_CONTROL_QUERY_INFORMATION");
5896         switch (level) {
5897                 case 1:
5898                         ndr_print_ptr(ndr, "info1", r->info1);
5899                         ndr->depth++;
5900                         if (r->info1) {
5901                                 ndr_print_netr_NETLOGON_INFO_1(ndr, "info1", r->info1);
5902                         }
5903                         ndr->depth--;
5904                 break;
5905
5906                 case 2:
5907                         ndr_print_ptr(ndr, "info2", r->info2);
5908                         ndr->depth++;
5909                         if (r->info2) {
5910                                 ndr_print_netr_NETLOGON_INFO_2(ndr, "info2", r->info2);
5911                         }
5912                         ndr->depth--;
5913                 break;
5914
5915                 case 3:
5916                         ndr_print_ptr(ndr, "info3", r->info3);
5917                         ndr->depth++;
5918                         if (r->info3) {
5919                                 ndr_print_netr_NETLOGON_INFO_3(ndr, "info3", r->info3);
5920                         }
5921                         ndr->depth--;
5922                 break;
5923
5924                 default:
5925                         ndr_print_bad_level(ndr, name, level);
5926         }
5927 }
5928
5929 static enum ndr_err_code ndr_push_netr_LogonControlCode(struct ndr_push *ndr, int ndr_flags, enum netr_LogonControlCode r)
5930 {
5931         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5932         return NDR_ERR_SUCCESS;
5933 }
5934
5935 static enum ndr_err_code ndr_pull_netr_LogonControlCode(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonControlCode *r)
5936 {
5937         uint32_t v;
5938         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5939         *r = v;
5940         return NDR_ERR_SUCCESS;
5941 }
5942
5943 _PUBLIC_ void ndr_print_netr_LogonControlCode(struct ndr_print *ndr, const char *name, enum netr_LogonControlCode r)
5944 {
5945         const char *val = NULL;
5946
5947         switch (r) {
5948                 case NETLOGON_CONTROL_SYNC: val = "NETLOGON_CONTROL_SYNC"; break;
5949                 case NETLOGON_CONTROL_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break;
5950                 case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break;
5951                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
5952                 case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break;
5953         }
5954         ndr_print_enum(ndr, name, "ENUM", val, r);
5955 }
5956
5957 static enum ndr_err_code ndr_push_netr_CONTROL_DATA_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_DATA_INFORMATION *r)
5958 {
5959         if (ndr_flags & NDR_SCALARS) {
5960                 int level = ndr_push_get_switch_value(ndr, r);
5961                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5962                 switch (level) {
5963                         case NETLOGON_CONTROL_REDISCOVER: {
5964                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5965                         break; }
5966
5967                         case NETLOGON_CONTROL_TC_QUERY: {
5968                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5969                         break; }
5970
5971                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5972                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5973                         break; }
5974
5975                         case NETLOGON_CONTROL_SET_DBFLAG: {
5976                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level));
5977                         break; }
5978
5979                         default:
5980                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5981                 }
5982         }
5983         if (ndr_flags & NDR_BUFFERS) {
5984                 int level = ndr_push_get_switch_value(ndr, r);
5985                 switch (level) {
5986                         case NETLOGON_CONTROL_REDISCOVER:
5987                                 if (r->domain) {
5988                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5989                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5990                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5991                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5992                                 }
5993                         break;
5994
5995                         case NETLOGON_CONTROL_TC_QUERY:
5996                                 if (r->domain) {
5997                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5998                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5999                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6000                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6001                                 }
6002                         break;
6003
6004                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6005                                 if (r->domain) {
6006                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6007                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6008                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
6009                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6010                                 }
6011                         break;
6012
6013                         case NETLOGON_CONTROL_SET_DBFLAG:
6014                         break;
6015
6016                         default:
6017                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6018                 }
6019         }
6020         return NDR_ERR_SUCCESS;
6021 }
6022
6023 static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r)
6024 {
6025         int level;
6026         uint32_t _level;
6027         TALLOC_CTX *_mem_save_domain_0;
6028         level = ndr_pull_get_switch_value(ndr, r);
6029         if (ndr_flags & NDR_SCALARS) {
6030                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6031                 if (_level != level) {
6032                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6033                 }
6034                 switch (level) {
6035                         case NETLOGON_CONTROL_REDISCOVER: {
6036                                 uint32_t _ptr_domain;
6037                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6038                                 if (_ptr_domain) {
6039                                         NDR_PULL_ALLOC(ndr, r->domain);
6040                                 } else {
6041                                         r->domain = NULL;
6042                                 }
6043                         break; }
6044
6045                         case NETLOGON_CONTROL_TC_QUERY: {
6046                                 uint32_t _ptr_domain;
6047                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6048                                 if (_ptr_domain) {
6049                                         NDR_PULL_ALLOC(ndr, r->domain);
6050                                 } else {
6051                                         r->domain = NULL;
6052                                 }
6053                         break; }
6054
6055                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
6056                                 uint32_t _ptr_domain;
6057                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
6058                                 if (_ptr_domain) {
6059                                         NDR_PULL_ALLOC(ndr, r->domain);
6060                                 } else {
6061                                         r->domain = NULL;
6062                                 }
6063                         break; }
6064
6065                         case NETLOGON_CONTROL_SET_DBFLAG: {
6066                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level));
6067                         break; }
6068
6069                         default:
6070                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6071                 }
6072         }
6073         if (ndr_flags & NDR_BUFFERS) {
6074                 switch (level) {
6075                         case NETLOGON_CONTROL_REDISCOVER:
6076                                 if (r->domain) {
6077                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6078                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6079                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6080                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6081                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6082                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
6083                                         }
6084                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6085                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6086                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6087                                 }
6088                         break;
6089
6090                         case NETLOGON_CONTROL_TC_QUERY:
6091                                 if (r->domain) {
6092                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6093                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6094                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6095                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6096                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6097                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
6098                                         }
6099                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6100                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6101                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6102                                 }
6103                         break;
6104
6105                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6106                                 if (r->domain) {
6107                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6108                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
6109                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
6110                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
6111                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
6112                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
6113                                         }
6114                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
6115                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
6116                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
6117                                 }
6118                         break;
6119
6120                         case NETLOGON_CONTROL_SET_DBFLAG:
6121                         break;
6122
6123                         default:
6124                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6125                 }
6126         }
6127         return NDR_ERR_SUCCESS;
6128 }
6129
6130 _PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r)
6131 {
6132         int level;
6133         level = ndr_print_get_switch_value(ndr, r);
6134         ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION");
6135         switch (level) {
6136                 case NETLOGON_CONTROL_REDISCOVER:
6137                         ndr_print_ptr(ndr, "domain", r->domain);
6138                         ndr->depth++;
6139                         if (r->domain) {
6140                                 ndr_print_string(ndr, "domain", r->domain);
6141                         }
6142                         ndr->depth--;
6143                 break;
6144
6145                 case NETLOGON_CONTROL_TC_QUERY:
6146                         ndr_print_ptr(ndr, "domain", r->domain);
6147                         ndr->depth++;
6148                         if (r->domain) {
6149                                 ndr_print_string(ndr, "domain", r->domain);
6150                         }
6151                         ndr->depth--;
6152                 break;
6153
6154                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
6155                         ndr_print_ptr(ndr, "domain", r->domain);
6156                         ndr->depth++;
6157                         if (r->domain) {
6158                                 ndr_print_string(ndr, "domain", r->domain);
6159                         }
6160                         ndr->depth--;
6161                 break;
6162
6163                 case NETLOGON_CONTROL_SET_DBFLAG:
6164                         ndr_print_uint32(ndr, "debug_level", r->debug_level);
6165                 break;
6166
6167                 default:
6168                         ndr_print_bad_level(ndr, name, level);
6169         }
6170 }
6171
6172 static enum ndr_err_code ndr_push_netr_NegotiateFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6173 {
6174         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6175         return NDR_ERR_SUCCESS;
6176 }
6177
6178 static enum ndr_err_code ndr_pull_netr_NegotiateFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6179 {
6180         uint32_t v;
6181         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6182         *r = v;
6183         return NDR_ERR_SUCCESS;
6184 }
6185
6186 _PUBLIC_ void ndr_print_netr_NegotiateFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6187 {
6188         ndr_print_uint32(ndr, name, r);
6189         ndr->depth++;
6190         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT, r);
6191         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL, r);
6192         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR, r);
6193         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT, r);
6194         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC, r);
6195         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL, r);
6196         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS, r);
6197         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO, r);
6198         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL, r);
6199         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC, r);
6200         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH, r);
6201         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC, r);
6202         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL, r);
6203         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL, r);
6204         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_128BIT", NETLOGON_NEG_128BIT, r);
6205         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS, r);
6206         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS, r);
6207         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2, r);
6208         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO, r);
6209         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS, r);
6210         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION, r);
6211         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH, r);
6212         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS, r);
6213         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SCHANNEL", NETLOGON_NEG_SCHANNEL, r);
6214         ndr->depth--;
6215 }
6216
6217 static enum ndr_err_code ndr_push_netr_ChangeLogFlags(struct ndr_push *ndr, int ndr_flags, uint16_t r)
6218 {
6219         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
6220         return NDR_ERR_SUCCESS;
6221 }
6222
6223 static enum ndr_err_code ndr_pull_netr_ChangeLogFlags(struct ndr_pull *ndr, int ndr_flags, uint16_t *r)
6224 {
6225         uint16_t v;
6226         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
6227         *r = v;
6228         return NDR_ERR_SUCCESS;
6229 }
6230
6231 _PUBLIC_ void ndr_print_netr_ChangeLogFlags(struct ndr_print *ndr, const char *name, uint16_t r)
6232 {
6233         ndr_print_uint16(ndr, name, r);
6234         ndr->depth++;
6235         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED", NETR_CHANGELOG_IMMEDIATE_REPL_REQUIRED, r);
6236         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_CHANGED_PASSWORD", NETR_CHANGELOG_CHANGED_PASSWORD, r);
6237         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_SID_INCLUDED", NETR_CHANGELOG_SID_INCLUDED, r);
6238         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_NAME_INCLUDED", NETR_CHANGELOG_NAME_INCLUDED, r);
6239         ndr_print_bitmap_flag(ndr, sizeof(uint16_t), "NETR_CHANGELOG_FIRST_PROMOTION_OBJ", NETR_CHANGELOG_FIRST_PROMOTION_OBJ, r);
6240         ndr->depth--;
6241 }
6242
6243 static enum ndr_err_code ndr_push_netr_ChangeLogObject(struct ndr_push *ndr, int ndr_flags, const union netr_ChangeLogObject *r)
6244 {
6245         if (ndr_flags & NDR_SCALARS) {
6246                 int level = ndr_push_get_switch_value(ndr, r);
6247                 switch (level) {
6248                         case NETR_CHANGELOG_SID_INCLUDED: {
6249                                 NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->object_sid));
6250                         break; }
6251
6252                         case NETR_CHANGELOG_NAME_INCLUDED: {
6253                                 {
6254                                         uint32_t _flags_save_string = ndr->flags;
6255                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6256                                         NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->object_name));
6257                                         ndr->flags = _flags_save_string;
6258                                 }
6259                         break; }
6260
6261                         default: {
6262                         break; }
6263
6264                 }
6265         }
6266         if (ndr_flags & NDR_BUFFERS) {
6267                 int level = ndr_push_get_switch_value(ndr, r);
6268                 switch (level) {
6269                         case NETR_CHANGELOG_SID_INCLUDED:
6270                         break;
6271
6272                         case NETR_CHANGELOG_NAME_INCLUDED:
6273                         break;
6274
6275                         default:
6276                         break;
6277
6278                 }
6279         }
6280         return NDR_ERR_SUCCESS;
6281 }
6282
6283 static enum ndr_err_code ndr_pull_netr_ChangeLogObject(struct ndr_pull *ndr, int ndr_flags, union netr_ChangeLogObject *r)
6284 {
6285         int level;
6286         level = ndr_pull_get_switch_value(ndr, r);
6287         if (ndr_flags & NDR_SCALARS) {
6288                 switch (level) {
6289                         case NETR_CHANGELOG_SID_INCLUDED: {
6290                                 NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->object_sid));
6291                         break; }
6292
6293                         case NETR_CHANGELOG_NAME_INCLUDED: {
6294                                 {
6295                                         uint32_t _flags_save_string = ndr->flags;
6296                                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6297                                         NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->object_name));
6298                                         ndr->flags = _flags_save_string;
6299                                 }
6300                         break; }
6301
6302                         default: {
6303                         break; }
6304
6305                 }
6306         }
6307         if (ndr_flags & NDR_BUFFERS) {
6308                 switch (level) {
6309                         case NETR_CHANGELOG_SID_INCLUDED:
6310                         break;
6311
6312                         case NETR_CHANGELOG_NAME_INCLUDED:
6313                         break;
6314
6315                         default:
6316                         break;
6317
6318                 }
6319         }
6320         return NDR_ERR_SUCCESS;
6321 }
6322
6323 _PUBLIC_ void ndr_print_netr_ChangeLogObject(struct ndr_print *ndr, const char *name, const union netr_ChangeLogObject *r)
6324 {
6325         int level;
6326         level = ndr_print_get_switch_value(ndr, r);
6327         ndr_print_union(ndr, name, level, "netr_ChangeLogObject");
6328         switch (level) {
6329                 case NETR_CHANGELOG_SID_INCLUDED:
6330                         ndr_print_dom_sid(ndr, "object_sid", &r->object_sid);
6331                 break;
6332
6333                 case NETR_CHANGELOG_NAME_INCLUDED:
6334                         ndr_print_string(ndr, "object_name", r->object_name);
6335                 break;
6336
6337                 default:
6338                 break;
6339
6340         }
6341 }
6342
6343 _PUBLIC_ enum ndr_err_code ndr_push_netr_ChangeLogEntry(struct ndr_push *ndr, int ndr_flags, const struct netr_ChangeLogEntry *r)
6344 {
6345         if (ndr_flags & NDR_SCALARS) {
6346                 NDR_CHECK(ndr_push_align(ndr, 4));
6347                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number1));
6348                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number2));
6349                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->object_rid));
6350                 NDR_CHECK(ndr_push_netr_ChangeLogFlags(ndr, NDR_SCALARS, r->flags));
6351                 NDR_CHECK(ndr_push_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, r->db_index));
6352                 NDR_CHECK(ndr_push_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, r->delta_type));
6353                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
6354                 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_SCALARS, &r->object));
6355         }
6356         if (ndr_flags & NDR_BUFFERS) {
6357                 NDR_CHECK(ndr_push_netr_ChangeLogObject(ndr, NDR_BUFFERS, &r->object));
6358         }
6359         return NDR_ERR_SUCCESS;
6360 }
6361
6362 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ChangeLogEntry(struct ndr_pull *ndr, int ndr_flags, struct netr_ChangeLogEntry *r)
6363 {
6364         if (ndr_flags & NDR_SCALARS) {
6365                 NDR_CHECK(ndr_pull_align(ndr, 4));
6366                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number1));
6367                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number2));
6368                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->object_rid));
6369                 NDR_CHECK(ndr_pull_netr_ChangeLogFlags(ndr, NDR_SCALARS, &r->flags));
6370                 NDR_CHECK(ndr_pull_netr_SamDatabaseID8Bit(ndr, NDR_SCALARS, &r->db_index));
6371                 NDR_CHECK(ndr_pull_netr_DeltaEnum8Bit(ndr, NDR_SCALARS, &r->delta_type));
6372                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED)));
6373                 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_SCALARS, &r->object));
6374         }
6375         if (ndr_flags & NDR_BUFFERS) {
6376                 NDR_CHECK(ndr_pull_netr_ChangeLogObject(ndr, NDR_BUFFERS, &r->object));
6377         }
6378         return NDR_ERR_SUCCESS;
6379 }
6380
6381 _PUBLIC_ void ndr_print_netr_ChangeLogEntry(struct ndr_print *ndr, const char *name, const struct netr_ChangeLogEntry *r)
6382 {
6383         ndr_print_struct(ndr, name, "netr_ChangeLogEntry");
6384         ndr->depth++;
6385         ndr_print_uint32(ndr, "serial_number1", r->serial_number1);
6386         ndr_print_uint32(ndr, "serial_number2", r->serial_number2);
6387         ndr_print_uint32(ndr, "object_rid", r->object_rid);
6388         ndr_print_netr_ChangeLogFlags(ndr, "flags", r->flags);
6389         ndr_print_netr_SamDatabaseID8Bit(ndr, "db_index", r->db_index);
6390         ndr_print_netr_DeltaEnum8Bit(ndr, "delta_type", r->delta_type);
6391         ndr_print_set_switch_value(ndr, &r->object, r->flags & (NETR_CHANGELOG_SID_INCLUDED | NETR_CHANGELOG_NAME_INCLUDED));
6392         ndr_print_netr_ChangeLogObject(ndr, "object", &r->object);
6393         ndr->depth--;
6394 }
6395
6396 _PUBLIC_ size_t ndr_size_netr_ChangeLogEntry(const struct netr_ChangeLogEntry *r, int flags)
6397 {
6398         return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_netr_ChangeLogEntry);
6399 }
6400
6401 static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
6402 {
6403         if (ndr_flags & NDR_SCALARS) {
6404                 NDR_CHECK(ndr_push_align(ndr, 4));
6405                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6406                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6407         }
6408         if (ndr_flags & NDR_BUFFERS) {
6409                 if (r->data) {
6410                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6411                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
6412                 }
6413         }
6414         return NDR_ERR_SUCCESS;
6415 }
6416
6417 static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
6418 {
6419         uint32_t _ptr_data;
6420         TALLOC_CTX *_mem_save_data_0;
6421         if (ndr_flags & NDR_SCALARS) {
6422                 NDR_CHECK(ndr_pull_align(ndr, 4));
6423                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
6424                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6425                 if (_ptr_data) {
6426                         NDR_PULL_ALLOC(ndr, r->data);
6427                 } else {
6428                         r->data = NULL;
6429                 }
6430         }
6431         if (ndr_flags & NDR_BUFFERS) {
6432                 if (r->data) {
6433                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6434                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6435                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6436                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6437                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
6438                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6439                 }
6440                 if (r->data) {
6441                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
6442                 }
6443         }
6444         return NDR_ERR_SUCCESS;
6445 }
6446
6447 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
6448 {
6449         ndr_print_struct(ndr, name, "netr_Blob");
6450         ndr->depth++;
6451         ndr_print_uint32(ndr, "length", r->length);
6452         ndr_print_ptr(ndr, "data", r->data);
6453         ndr->depth++;
6454         if (r->data) {
6455                 ndr_print_array_uint8(ndr, "data", r->data, r->length);
6456         }
6457         ndr->depth--;
6458         ndr->depth--;
6459 }
6460
6461 static enum ndr_err_code ndr_push_netr_DsRGetDCName_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6462 {
6463         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6464         return NDR_ERR_SUCCESS;
6465 }
6466
6467 static enum ndr_err_code ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6468 {
6469         uint32_t v;
6470         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6471         *r = v;
6472         return NDR_ERR_SUCCESS;
6473 }
6474
6475 _PUBLIC_ void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char *name, uint32_t r)
6476 {
6477         ndr_print_uint32(ndr, name, r);
6478         ndr->depth++;
6479         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY, r);
6480         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED, r);
6481         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED, r);
6482         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED, r);
6483         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED, r);
6484         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY, r);
6485         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED, r);
6486         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED, r);
6487         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED, r);
6488         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED, r);
6489         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED, r);
6490         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF, r);
6491         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED, r);
6492         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME, r);
6493         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME, r);
6494         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE, r);
6495         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED, r);
6496         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME, r);
6497         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME, r);
6498         ndr->depth--;
6499 }
6500
6501 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType r)
6502 {
6503         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6504         return NDR_ERR_SUCCESS;
6505 }
6506
6507 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType *r)
6508 {
6509         uint32_t v;
6510         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6511         *r = v;
6512         return NDR_ERR_SUCCESS;
6513 }
6514
6515 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const char *name, enum netr_DsRGetDCNameInfo_AddressType r)
6516 {
6517         const char *val = NULL;
6518
6519         switch (r) {
6520                 case DS_ADDRESS_TYPE_INET: val = "DS_ADDRESS_TYPE_INET"; break;
6521                 case DS_ADDRESS_TYPE_NETBIOS: val = "DS_ADDRESS_TYPE_NETBIOS"; break;
6522         }
6523         ndr_print_enum(ndr, name, "ENUM", val, r);
6524 }
6525
6526 static enum ndr_err_code ndr_push_netr_DsR_DcFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6527 {
6528         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6529         return NDR_ERR_SUCCESS;
6530 }
6531
6532 static enum ndr_err_code ndr_pull_netr_DsR_DcFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6533 {
6534         uint32_t v;
6535         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6536         *r = v;
6537         return NDR_ERR_SUCCESS;
6538 }
6539
6540 _PUBLIC_ void ndr_print_netr_DsR_DcFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6541 {
6542         ndr_print_uint32(ndr, name, r);
6543         ndr->depth++;
6544         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC, r);
6545         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC, r);
6546         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP, r);
6547         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS, r);
6548         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC, r);
6549         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV, r);
6550         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST, r);
6551         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE, r);
6552         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV, r);
6553         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC, r);
6554         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6, r);
6555         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6, r);
6556         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER, r);
6557         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN, r);
6558         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST, r);
6559         ndr->depth--;
6560 }
6561
6562 _PUBLIC_ enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
6563 {
6564         if (ndr_flags & NDR_SCALARS) {
6565                 NDR_CHECK(ndr_push_align(ndr, 4));
6566                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
6567                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
6568                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, r->dc_address_type));
6569                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6570                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6571                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
6572                 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr, NDR_SCALARS, r->dc_flags));
6573                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
6574                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
6575         }
6576         if (ndr_flags & NDR_BUFFERS) {
6577                 if (r->dc_unc) {
6578                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6579                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6580                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6581                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6582                 }
6583                 if (r->dc_address) {
6584                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6585                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6586                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6587                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6588                 }
6589                 if (r->domain_name) {
6590                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6591                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6592                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6593                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6594                 }
6595                 if (r->forest_name) {
6596                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6597                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6598                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6599                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6600                 }
6601                 if (r->dc_site_name) {
6602                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6603                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6604                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6605                         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));
6606                 }
6607                 if (r->client_site_name) {
6608                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6609                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6610                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6611                         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));
6612                 }
6613         }
6614         return NDR_ERR_SUCCESS;
6615 }
6616
6617 _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
6618 {
6619         uint32_t _ptr_dc_unc;
6620         TALLOC_CTX *_mem_save_dc_unc_0;
6621         uint32_t _ptr_dc_address;
6622         TALLOC_CTX *_mem_save_dc_address_0;
6623         uint32_t _ptr_domain_name;
6624         TALLOC_CTX *_mem_save_domain_name_0;
6625         uint32_t _ptr_forest_name;
6626         TALLOC_CTX *_mem_save_forest_name_0;
6627         uint32_t _ptr_dc_site_name;
6628         TALLOC_CTX *_mem_save_dc_site_name_0;
6629         uint32_t _ptr_client_site_name;
6630         TALLOC_CTX *_mem_save_client_site_name_0;
6631         if (ndr_flags & NDR_SCALARS) {
6632                 NDR_CHECK(ndr_pull_align(ndr, 4));
6633                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6634                 if (_ptr_dc_unc) {
6635                         NDR_PULL_ALLOC(ndr, r->dc_unc);
6636                 } else {
6637                         r->dc_unc = NULL;
6638                 }
6639                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6640                 if (_ptr_dc_address) {
6641                         NDR_PULL_ALLOC(ndr, r->dc_address);
6642                 } else {
6643                         r->dc_address = NULL;
6644                 }
6645                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, &r->dc_address_type));
6646                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6647                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6648                 if (_ptr_domain_name) {
6649                         NDR_PULL_ALLOC(ndr, r->domain_name);
6650                 } else {
6651                         r->domain_name = NULL;
6652                 }
6653                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
6654                 if (_ptr_forest_name) {
6655                         NDR_PULL_ALLOC(ndr, r->forest_name);
6656                 } else {
6657                         r->forest_name = NULL;
6658                 }
6659                 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr, NDR_SCALARS, &r->dc_flags));
6660                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
6661                 if (_ptr_dc_site_name) {
6662                         NDR_PULL_ALLOC(ndr, r->dc_site_name);
6663                 } else {
6664                         r->dc_site_name = NULL;
6665                 }
6666                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
6667                 if (_ptr_client_site_name) {
6668                         NDR_PULL_ALLOC(ndr, r->client_site_name);
6669                 } else {
6670                         r->client_site_name = NULL;
6671                 }
6672         }
6673         if (ndr_flags & NDR_BUFFERS) {
6674                 if (r->dc_unc) {
6675                         _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6676                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
6677                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
6678                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
6679                         if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
6680                                 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));
6681                         }
6682                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
6683                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
6684                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
6685                 }
6686                 if (r->dc_address) {
6687                         _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
6688                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
6689                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
6690                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
6691                         if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
6692                                 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));
6693                         }
6694                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
6695                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
6696                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
6697                 }
6698                 if (r->domain_name) {
6699                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6700                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6701                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6702                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6703                         if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
6704                                 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));
6705                         }
6706                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
6707                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
6708                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6709                 }
6710                 if (r->forest_name) {
6711                         _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6712                         NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
6713                         NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
6714                         NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
6715                         if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
6716                                 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));
6717                         }
6718                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
6719                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
6720                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
6721                 }
6722                 if (r->dc_site_name) {
6723                         _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6724                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
6725                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
6726                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
6727                         if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
6728                                 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));
6729                         }
6730                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
6731                         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));
6732                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
6733                 }
6734                 if (r->client_site_name) {
6735                         _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6736                         NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
6737                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
6738                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
6739                         if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
6740                                 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));
6741                         }
6742                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
6743                         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));
6744                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
6745                 }
6746         }
6747         return NDR_ERR_SUCCESS;
6748 }
6749
6750 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
6751 {
6752         ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
6753         ndr->depth++;
6754         ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
6755         ndr->depth++;
6756         if (r->dc_unc) {
6757                 ndr_print_string(ndr, "dc_unc", r->dc_unc);
6758         }
6759         ndr->depth--;
6760         ndr_print_ptr(ndr, "dc_address", r->dc_address);
6761         ndr->depth++;
6762         if (r->dc_address) {
6763                 ndr_print_string(ndr, "dc_address", r->dc_address);
6764         }
6765         ndr->depth--;
6766         ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr, "dc_address_type", r->dc_address_type);
6767         ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
6768         ndr_print_ptr(ndr, "domain_name", r->domain_name);
6769         ndr->depth++;
6770         if (r->domain_name) {
6771                 ndr_print_string(ndr, "domain_name", r->domain_name);
6772         }
6773         ndr->depth--;
6774         ndr_print_ptr(ndr, "forest_name", r->forest_name);
6775         ndr->depth++;
6776         if (r->forest_name) {
6777                 ndr_print_string(ndr, "forest_name", r->forest_name);
6778         }
6779         ndr->depth--;
6780         ndr_print_netr_DsR_DcFlags(ndr, "dc_flags", r->dc_flags);
6781         ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
6782         ndr->depth++;
6783         if (r->dc_site_name) {
6784                 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
6785         }
6786         ndr->depth--;
6787         ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
6788         ndr->depth++;
6789         if (r->client_site_name) {
6790                 ndr_print_string(ndr, "client_site_name", r->client_site_name);
6791         }
6792         ndr->depth--;
6793         ndr->depth--;
6794 }
6795
6796 static enum ndr_err_code ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6797 {
6798         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6799         return NDR_ERR_SUCCESS;
6800 }
6801
6802 static enum ndr_err_code ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6803 {
6804         uint32_t v;
6805         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6806         *r = v;
6807         return NDR_ERR_SUCCESS;
6808 }
6809
6810 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6811 {
6812         ndr_print_uint32(ndr, name, r);
6813         ndr->depth++;
6814         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
6815         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
6816         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
6817         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
6818         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
6819         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
6820         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_MIT_KRB5", NETR_TRUST_FLAG_MIT_KRB5, r);
6821         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_AES", NETR_TRUST_FLAG_AES, r);
6822         ndr->depth--;
6823 }
6824
6825 static enum ndr_err_code ndr_push_netr_BinaryString(struct ndr_push *ndr, int ndr_flags, const struct netr_BinaryString *r)
6826 {
6827         uint32_t cntr_data_1;
6828         {
6829                 uint32_t _flags_save_STRUCT = ndr->flags;
6830                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6831                 if (ndr_flags & NDR_SCALARS) {
6832                         NDR_CHECK(ndr_push_align(ndr, 4));
6833                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
6834                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
6835                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6836                 }
6837                 if (ndr_flags & NDR_BUFFERS) {
6838                         if (r->data) {
6839                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
6840                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6841                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
6842                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6843                                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data[cntr_data_1]));
6844                                 }
6845                         }
6846                 }
6847                 ndr->flags = _flags_save_STRUCT;
6848         }
6849         return NDR_ERR_SUCCESS;
6850 }
6851
6852 static enum ndr_err_code ndr_pull_netr_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct netr_BinaryString *r)
6853 {
6854         uint32_t _ptr_data;
6855         uint32_t cntr_data_1;
6856         TALLOC_CTX *_mem_save_data_0;
6857         TALLOC_CTX *_mem_save_data_1;
6858         {
6859                 uint32_t _flags_save_STRUCT = ndr->flags;
6860                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6861                 if (ndr_flags & NDR_SCALARS) {
6862                         NDR_CHECK(ndr_pull_align(ndr, 4));
6863                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
6864                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
6865                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6866                         if (_ptr_data) {
6867                                 NDR_PULL_ALLOC(ndr, r->data);
6868                         } else {
6869                                 r->data = NULL;
6870                         }
6871                 }
6872                 if (ndr_flags & NDR_BUFFERS) {
6873                         if (r->data) {
6874                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6875                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6876                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6877                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
6878                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
6879                                         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));
6880                                 }
6881                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6882                                 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
6883                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6884                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6885                                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
6886                                 }
6887                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
6888                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6889                         }
6890                         if (r->data) {
6891                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size / 2));
6892                         }
6893                         if (r->data) {
6894                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length / 2));
6895                         }
6896                 }
6897                 ndr->flags = _flags_save_STRUCT;
6898         }
6899         return NDR_ERR_SUCCESS;
6900 }
6901
6902 _PUBLIC_ void ndr_print_netr_BinaryString(struct ndr_print *ndr, const char *name, const struct netr_BinaryString *r)
6903 {
6904         uint32_t cntr_data_1;
6905         ndr_print_struct(ndr, name, "netr_BinaryString");
6906         {
6907                 uint32_t _flags_save_STRUCT = ndr->flags;
6908                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6909                 ndr->depth++;
6910                 ndr_print_uint16(ndr, "length", r->length);
6911                 ndr_print_uint16(ndr, "size", r->size);
6912                 ndr_print_ptr(ndr, "data", r->data);
6913                 ndr->depth++;
6914                 if (r->data) {
6915                         ndr->print(ndr, "%s: ARRAY(%d)", "data", (int)r->length / 2);
6916                         ndr->depth++;
6917                         for (cntr_data_1=0;cntr_data_1<r->length / 2;cntr_data_1++) {
6918                                 char *idx_1=NULL;
6919                                 if (asprintf(&idx_1, "[%d]", cntr_data_1) != -1) {
6920                                         ndr_print_uint16(ndr, "data", r->data[cntr_data_1]);
6921                                         free(idx_1);
6922                                 }
6923                         }
6924                         ndr->depth--;
6925                 }
6926                 ndr->depth--;
6927                 ndr->depth--;
6928                 ndr->flags = _flags_save_STRUCT;
6929         }
6930 }
6931
6932 static enum ndr_err_code ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r)
6933 {
6934         uint32_t cntr_unknown7_0;
6935         if (ndr_flags & NDR_SCALARS) {
6936                 NDR_CHECK(ndr_push_align(ndr, 4));
6937                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6938                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain));
6939                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site));
6940                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1));
6941                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2));
6942                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3));
6943                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4));
6944                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6945                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product));
6946                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6947                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6948                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6949                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0]));
6950                 }
6951         }
6952         if (ndr_flags & NDR_BUFFERS) {
6953                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6954                 if (r->workstation_domain) {
6955                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6956                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6957                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6958                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6959                 }
6960                 if (r->workstation_site) {
6961                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6962                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6963                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6964                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6965                 }
6966                 if (r->unknown1) {
6967                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6968                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6969                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6970                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6971                 }
6972                 if (r->unknown2) {
6973                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6974                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6975                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6976                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6977                 }
6978                 if (r->unknown3) {
6979                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6980                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6981                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6982                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6983                 }
6984                 if (r->unknown4) {
6985                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6986                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6987                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6988                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6989                 }
6990                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6991                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product));
6992                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6993                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6994         }
6995         return NDR_ERR_SUCCESS;
6996 }
6997
6998 static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r)
6999 {
7000         uint32_t _ptr_workstation_domain;
7001         TALLOC_CTX *_mem_save_workstation_domain_0;
7002         uint32_t _ptr_workstation_site;
7003         TALLOC_CTX *_mem_save_workstation_site_0;
7004         uint32_t _ptr_unknown1;
7005         TALLOC_CTX *_mem_save_unknown1_0;
7006         uint32_t _ptr_unknown2;
7007         TALLOC_CTX *_mem_save_unknown2_0;
7008         uint32_t _ptr_unknown3;
7009         TALLOC_CTX *_mem_save_unknown3_0;
7010         uint32_t _ptr_unknown4;
7011         TALLOC_CTX *_mem_save_unknown4_0;
7012         uint32_t cntr_unknown7_0;
7013         if (ndr_flags & NDR_SCALARS) {
7014                 NDR_CHECK(ndr_pull_align(ndr, 4));
7015                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob));
7016                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain));
7017                 if (_ptr_workstation_domain) {
7018                         NDR_PULL_ALLOC(ndr, r->workstation_domain);
7019                 } else {
7020                         r->workstation_domain = NULL;
7021                 }
7022                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site));
7023                 if (_ptr_workstation_site) {
7024                         NDR_PULL_ALLOC(ndr, r->workstation_site);
7025                 } else {
7026                         r->workstation_site = NULL;
7027                 }
7028                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1));
7029                 if (_ptr_unknown1) {
7030                         NDR_PULL_ALLOC(ndr, r->unknown1);
7031                 } else {
7032                         r->unknown1 = NULL;
7033                 }
7034                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2));
7035                 if (_ptr_unknown2) {
7036                         NDR_PULL_ALLOC(ndr, r->unknown2);
7037                 } else {
7038                         r->unknown2 = NULL;
7039                 }
7040                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3));
7041                 if (_ptr_unknown3) {
7042                         NDR_PULL_ALLOC(ndr, r->unknown3);
7043                 } else {
7044                         r->unknown3 = NULL;
7045                 }
7046                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
7047                 if (_ptr_unknown4) {
7048                         NDR_PULL_ALLOC(ndr, r->unknown4);
7049                 } else {
7050                         r->unknown4 = NULL;
7051                 }
7052                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
7053                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product));
7054                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
7055                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
7056                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
7057                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0]));
7058                 }
7059         }
7060         if (ndr_flags & NDR_BUFFERS) {
7061                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
7062                 if (r->workstation_domain) {
7063                         _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
7064                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0);
7065                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain));
7066                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain));
7067                         if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) {
7068                                 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));
7069                         }
7070                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t)));
7071                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16));
7072                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0);
7073                 }
7074                 if (r->workstation_site) {
7075                         _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
7076                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0);
7077                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site));
7078                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site));
7079                         if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) {
7080                                 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));
7081                         }
7082                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t)));
7083                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16));
7084                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0);
7085                 }
7086                 if (r->unknown1) {
7087                         _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7088                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0);
7089                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1));
7090                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1));
7091                         if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) {
7092                                 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));
7093                         }
7094                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t)));
7095                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16));
7096                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0);
7097                 }
7098                 if (r->unknown2) {
7099                         _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7100                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0);
7101                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2));
7102                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2));
7103                         if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) {
7104                                 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));
7105                         }
7106                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t)));
7107                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16));
7108                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0);
7109                 }
7110                 if (r->unknown3) {
7111                         _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7112                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0);
7113                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3));
7114                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3));
7115                         if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) {
7116                                 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));
7117                         }
7118                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t)));
7119                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16));
7120                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0);
7121                 }
7122                 if (r->unknown4) {
7123                         _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7124                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0);
7125                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4));
7126                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4));
7127                         if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) {
7128                                 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));
7129                         }
7130                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t)));
7131                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16));
7132                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0);
7133                 }
7134                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
7135                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product));
7136                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
7137                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
7138         }
7139         return NDR_ERR_SUCCESS;
7140 }
7141
7142 _PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r)
7143 {
7144         uint32_t cntr_unknown7_0;
7145         ndr_print_struct(ndr, name, "netr_DomainQuery1");
7146         ndr->depth++;
7147         ndr_print_netr_Blob(ndr, "blob", &r->blob);
7148         ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain);
7149         ndr->depth++;
7150         if (r->workstation_domain) {
7151                 ndr_print_string(ndr, "workstation_domain", r->workstation_domain);
7152         }
7153         ndr->depth--;
7154         ndr_print_ptr(ndr, "workstation_site", r->workstation_site);
7155         ndr->depth++;
7156         if (r->workstation_site) {
7157                 ndr_print_string(ndr, "workstation_site", r->workstation_site);
7158         }
7159         ndr->depth--;
7160         ndr_print_ptr(ndr, "unknown1", r->unknown1);
7161         ndr->depth++;
7162         if (r->unknown1) {
7163                 ndr_print_string(ndr, "unknown1", r->unknown1);
7164         }
7165         ndr->depth--;
7166         ndr_print_ptr(ndr, "unknown2", r->unknown2);
7167         ndr->depth++;
7168         if (r->unknown2) {
7169                 ndr_print_string(ndr, "unknown2", r->unknown2);
7170         }
7171         ndr->depth--;
7172         ndr_print_ptr(ndr, "unknown3", r->unknown3);
7173         ndr->depth++;
7174         if (r->unknown3) {
7175                 ndr_print_string(ndr, "unknown3", r->unknown3);
7176         }
7177         ndr->depth--;
7178         ndr_print_ptr(ndr, "unknown4", r->unknown4);
7179         ndr->depth++;
7180         if (r->unknown4) {
7181                 ndr_print_string(ndr, "unknown4", r->unknown4);
7182         }
7183         ndr->depth--;
7184         ndr_print_netr_BinaryString(ndr, "blob2", &r->blob2);
7185         ndr_print_lsa_String(ndr, "product", &r->product);
7186         ndr_print_lsa_String(ndr, "unknown5", &r->unknown5);
7187         ndr_print_lsa_String(ndr, "unknown6", &r->unknown6);
7188         ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", (int)4);
7189         ndr->depth++;
7190         for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) {
7191                 char *idx_0=NULL;
7192                 if (asprintf(&idx_0, "[%d]", cntr_unknown7_0) != -1) {
7193                         ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]);
7194                         free(idx_0);
7195                 }
7196         }
7197         ndr->depth--;
7198         ndr->depth--;
7199 }
7200
7201 static enum ndr_err_code ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r)
7202 {
7203         if (ndr_flags & NDR_SCALARS) {
7204                 int level = ndr_push_get_switch_value(ndr, r);
7205                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7206                 switch (level) {
7207                         case 1: {
7208                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
7209                         break; }
7210
7211                         case 2: {
7212                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
7213                         break; }
7214
7215                         default:
7216                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7217                 }
7218         }
7219         if (ndr_flags & NDR_BUFFERS) {
7220                 int level = ndr_push_get_switch_value(ndr, r);
7221                 switch (level) {
7222                         case 1:
7223                                 if (r->query1) {
7224                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7225                                 }
7226                         break;
7227
7228                         case 2:
7229                                 if (r->query1) {
7230                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7231                                 }
7232                         break;
7233
7234                         default:
7235                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7236                 }
7237         }
7238         return NDR_ERR_SUCCESS;
7239 }
7240
7241 static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r)
7242 {
7243         int level;
7244         uint32_t _level;
7245         TALLOC_CTX *_mem_save_query1_0;
7246         level = ndr_pull_get_switch_value(ndr, r);
7247         if (ndr_flags & NDR_SCALARS) {
7248                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7249                 if (_level != level) {
7250                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7251                 }
7252                 switch (level) {
7253                         case 1: {
7254                                 uint32_t _ptr_query1;
7255                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
7256                                 if (_ptr_query1) {
7257                                         NDR_PULL_ALLOC(ndr, r->query1);
7258                                 } else {
7259                                         r->query1 = NULL;
7260                                 }
7261                         break; }
7262
7263                         case 2: {
7264                                 uint32_t _ptr_query1;
7265                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
7266                                 if (_ptr_query1) {
7267                                         NDR_PULL_ALLOC(ndr, r->query1);
7268                                 } else {
7269                                         r->query1 = NULL;
7270                                 }
7271                         break; }
7272
7273                         default:
7274                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7275                 }
7276         }
7277         if (ndr_flags & NDR_BUFFERS) {
7278                 switch (level) {
7279                         case 1:
7280                                 if (r->query1) {
7281                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7282                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
7283                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7284                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
7285                                 }
7286                         break;
7287
7288                         case 2:
7289                                 if (r->query1) {
7290                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7291                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
7292                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
7293                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
7294                                 }
7295                         break;
7296
7297                         default:
7298                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7299                 }
7300         }
7301         return NDR_ERR_SUCCESS;
7302 }
7303
7304 _PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r)
7305 {
7306         int level;
7307         level = ndr_print_get_switch_value(ndr, r);
7308         ndr_print_union(ndr, name, level, "netr_DomainQuery");
7309         switch (level) {
7310                 case 1:
7311                         ndr_print_ptr(ndr, "query1", r->query1);
7312                         ndr->depth++;
7313                         if (r->query1) {
7314                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
7315                         }
7316                         ndr->depth--;
7317                 break;
7318
7319                 case 2:
7320                         ndr_print_ptr(ndr, "query1", r->query1);
7321                         ndr->depth++;
7322                         if (r->query1) {
7323                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
7324                         }
7325                         ndr->depth--;
7326                 break;
7327
7328                 default:
7329                         ndr_print_bad_level(ndr, name, level);
7330         }
7331 }
7332
7333 static enum ndr_err_code ndr_push_netr_trust_extension(struct ndr_push *ndr, int ndr_flags, const struct netr_trust_extension *r)
7334 {
7335         if (ndr_flags & NDR_SCALARS) {
7336                 NDR_CHECK(ndr_push_align(ndr, 4));
7337                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 8));
7338                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7339                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 8));
7340                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->flags));
7341                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7342                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trust_type));
7343                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->trust_attributes));
7344         }
7345         if (ndr_flags & NDR_BUFFERS) {
7346         }
7347         return NDR_ERR_SUCCESS;
7348 }
7349
7350 static enum ndr_err_code ndr_pull_netr_trust_extension(struct ndr_pull *ndr, int ndr_flags, struct netr_trust_extension *r)
7351 {
7352         if (ndr_flags & NDR_SCALARS) {
7353                 NDR_CHECK(ndr_pull_align(ndr, 4));
7354                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7355                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
7356                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7357                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->flags));
7358                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7359                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trust_type));
7360                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->trust_attributes));
7361         }
7362         if (ndr_flags & NDR_BUFFERS) {
7363         }
7364         return NDR_ERR_SUCCESS;
7365 }
7366
7367 _PUBLIC_ void ndr_print_netr_trust_extension(struct ndr_print *ndr, const char *name, const struct netr_trust_extension *r)
7368 {
7369         ndr_print_struct(ndr, name, "netr_trust_extension");
7370         ndr->depth++;
7371         ndr_print_uint32(ndr, "length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?8:r->length);
7372         ndr_print_uint32(ndr, "dummy", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->dummy);
7373         ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?8:r->size);
7374         ndr_print_netr_TrustFlags(ndr, "flags", r->flags);
7375         ndr_print_uint32(ndr, "parent_index", r->parent_index);
7376         ndr_print_uint32(ndr, "trust_type", r->trust_type);
7377         ndr_print_uint32(ndr, "trust_attributes", r->trust_attributes);
7378         ndr->depth--;
7379 }
7380
7381 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)
7382 {
7383         if (ndr_flags & NDR_SCALARS) {
7384                 NDR_CHECK(ndr_push_align(ndr, 4));
7385                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
7386                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
7387                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info));
7388         }
7389         if (ndr_flags & NDR_BUFFERS) {
7390                 if (r->info) {
7391                         NDR_CHECK(ndr_push_netr_trust_extension(ndr, NDR_SCALARS, r->info));
7392                 }
7393         }
7394         return NDR_ERR_SUCCESS;
7395 }
7396
7397 static enum ndr_err_code ndr_pull_netr_trust_extension_container(struct ndr_pull *ndr, int ndr_flags, struct netr_trust_extension_container *r)
7398 {
7399         uint32_t _ptr_info;
7400         TALLOC_CTX *_mem_save_info_0;
7401         if (ndr_flags & NDR_SCALARS) {
7402                 NDR_CHECK(ndr_pull_align(ndr, 4));
7403                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
7404                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
7405                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
7406                 if (_ptr_info) {
7407                         NDR_PULL_ALLOC(ndr, r->info);
7408                 } else {
7409                         r->info = NULL;
7410                 }
7411         }
7412         if (ndr_flags & NDR_BUFFERS) {
7413                 if (r->info) {
7414                         _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
7415                         NDR_PULL_SET_MEM_CTX(ndr, r->info, 0);
7416                         NDR_CHECK(ndr_pull_netr_trust_extension(ndr, NDR_SCALARS, r->info));
7417                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
7418                 }
7419         }
7420         return NDR_ERR_SUCCESS;
7421 }
7422
7423 _PUBLIC_ void ndr_print_netr_trust_extension_container(struct ndr_print *ndr, const char *name, const struct netr_trust_extension_container *r)
7424 {
7425         ndr_print_struct(ndr, name, "netr_trust_extension_container");
7426         ndr->depth++;
7427         ndr_print_uint16(ndr, "length", r->length);
7428         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
7429         ndr_print_ptr(ndr, "info", r->info);
7430         ndr->depth++;
7431         if (r->info) {
7432                 ndr_print_netr_trust_extension(ndr, "info", r->info);
7433         }
7434         ndr->depth--;
7435         ndr->depth--;
7436 }
7437
7438 static enum ndr_err_code ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r)
7439 {
7440         uint32_t cntr_dummystring_0;
7441         uint32_t cntr_dummy_0;
7442         if (ndr_flags & NDR_SCALARS) {
7443                 NDR_CHECK(ndr_push_align(ndr, 4));
7444                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
7445                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
7446                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
7447                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
7448                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
7449                 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr, NDR_SCALARS, &r->trust_extension));
7450                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7451                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0]));
7452                 }
7453                 for (cntr_dummy_0 = 0; cntr_dummy_0 < 4; cntr_dummy_0++) {
7454                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy[cntr_dummy_0]));
7455                 }
7456         }
7457         if (ndr_flags & NDR_BUFFERS) {
7458                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
7459                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
7460                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
7461                 if (r->sid) {
7462                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7463                 }
7464                 NDR_CHECK(ndr_push_netr_trust_extension_container(ndr, NDR_BUFFERS, &r->trust_extension));
7465                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7466                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0]));
7467                 }
7468         }
7469         return NDR_ERR_SUCCESS;
7470 }
7471
7472 static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r)
7473 {
7474         uint32_t _ptr_sid;
7475         TALLOC_CTX *_mem_save_sid_0;
7476         uint32_t cntr_dummystring_0;
7477         uint32_t cntr_dummy_0;
7478         if (ndr_flags & NDR_SCALARS) {
7479                 NDR_CHECK(ndr_pull_align(ndr, 4));
7480                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
7481                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
7482                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
7483                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
7484                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
7485                 if (_ptr_sid) {
7486                         NDR_PULL_ALLOC(ndr, r->sid);
7487                 } else {
7488                         r->sid = NULL;
7489                 }
7490                 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr, NDR_SCALARS, &r->trust_extension));
7491                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7492                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0]));
7493                 }
7494                 for (cntr_dummy_0 = 0; cntr_dummy_0 < 4; cntr_dummy_0++) {
7495                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy[cntr_dummy_0]));
7496                 }
7497         }
7498         if (ndr_flags & NDR_BUFFERS) {
7499                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
7500                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
7501                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
7502                 if (r->sid) {
7503                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7504                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
7505                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7506                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
7507                 }
7508                 NDR_CHECK(ndr_pull_netr_trust_extension_container(ndr, NDR_BUFFERS, &r->trust_extension));
7509                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7510                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0]));
7511                 }
7512         }
7513         return NDR_ERR_SUCCESS;
7514 }
7515
7516 _PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r)
7517 {
7518         uint32_t cntr_dummystring_0;
7519         uint32_t cntr_dummy_0;
7520         ndr_print_struct(ndr, name, "netr_DomainTrustInfo");
7521         ndr->depth++;
7522         ndr_print_lsa_String(ndr, "domainname", &r->domainname);
7523         ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname);
7524         ndr_print_lsa_String(ndr, "forest", &r->forest);
7525         ndr_print_GUID(ndr, "guid", &r->guid);
7526         ndr_print_ptr(ndr, "sid", r->sid);
7527         ndr->depth++;
7528         if (r->sid) {
7529                 ndr_print_dom_sid2(ndr, "sid", r->sid);
7530         }
7531         ndr->depth--;
7532         ndr_print_netr_trust_extension_container(ndr, "trust_extension", &r->trust_extension);
7533         ndr->print(ndr, "%s: ARRAY(%d)", "dummystring", (int)3);
7534         ndr->depth++;
7535         for (cntr_dummystring_0=0;cntr_dummystring_0<3;cntr_dummystring_0++) {
7536                 char *idx_0=NULL;
7537                 if (asprintf(&idx_0, "[%d]", cntr_dummystring_0) != -1) {
7538                         ndr_print_lsa_String(ndr, "dummystring", &r->dummystring[cntr_dummystring_0]);
7539                         free(idx_0);
7540                 }
7541         }
7542         ndr->depth--;
7543         ndr->print(ndr, "%s: ARRAY(%d)", "dummy", (int)4);
7544         ndr->depth++;
7545         for (cntr_dummy_0=0;cntr_dummy_0<4;cntr_dummy_0++) {
7546                 char *idx_0=NULL;
7547                 if (asprintf(&idx_0, "[%d]", cntr_dummy_0) != -1) {
7548                         ndr_print_uint32(ndr, "dummy", r->dummy[cntr_dummy_0]);
7549                         free(idx_0);
7550                 }
7551         }
7552         ndr->depth--;
7553         ndr->depth--;
7554 }
7555
7556 static enum ndr_err_code ndr_push_netr_LsaPolicyInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_LsaPolicyInfo *r)
7557 {
7558         if (ndr_flags & NDR_SCALARS) {
7559                 NDR_CHECK(ndr_push_align(ndr, 4));
7560                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->policy_size));
7561                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
7562         }
7563         if (ndr_flags & NDR_BUFFERS) {
7564                 if (r->policy) {
7565                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->policy_size));
7566                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->policy, r->policy_size));
7567                 }
7568         }
7569         return NDR_ERR_SUCCESS;
7570 }
7571
7572 static enum ndr_err_code ndr_pull_netr_LsaPolicyInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_LsaPolicyInfo *r)
7573 {
7574         uint32_t _ptr_policy;
7575         TALLOC_CTX *_mem_save_policy_0;
7576         if (ndr_flags & NDR_SCALARS) {
7577                 NDR_CHECK(ndr_pull_align(ndr, 4));
7578                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->policy_size));
7579                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
7580                 if (_ptr_policy) {
7581                         NDR_PULL_ALLOC(ndr, r->policy);
7582                 } else {
7583                         r->policy = NULL;
7584                 }
7585         }
7586         if (ndr_flags & NDR_BUFFERS) {
7587                 if (r->policy) {
7588                         _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
7589                         NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
7590                         NDR_CHECK(ndr_pull_array_size(ndr, &r->policy));
7591                         NDR_PULL_ALLOC_N(ndr, r->policy, ndr_get_array_size(ndr, &r->policy));
7592                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->policy, ndr_get_array_size(ndr, &r->policy)));
7593                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
7594                 }
7595                 if (r->policy) {
7596                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->policy, r->policy_size));
7597                 }
7598         }
7599         return NDR_ERR_SUCCESS;
7600 }
7601
7602 _PUBLIC_ void ndr_print_netr_LsaPolicyInfo(struct ndr_print *ndr, const char *name, const struct netr_LsaPolicyInfo *r)
7603 {
7604         ndr_print_struct(ndr, name, "netr_LsaPolicyInfo");
7605         ndr->depth++;
7606         ndr_print_uint32(ndr, "policy_size", r->policy_size);
7607         ndr_print_ptr(ndr, "policy", r->policy);
7608         ndr->depth++;
7609         if (r->policy) {
7610                 ndr_print_array_uint8(ndr, "policy", r->policy, r->policy_size);
7611         }
7612         ndr->depth--;
7613         ndr->depth--;
7614 }
7615
7616 _PUBLIC_ enum ndr_err_code ndr_push_netr_WorkstationFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7617 {
7618         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7619         return NDR_ERR_SUCCESS;
7620 }
7621
7622 _PUBLIC_ enum ndr_err_code ndr_pull_netr_WorkstationFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7623 {
7624         uint32_t v;
7625         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7626         *r = v;
7627         return NDR_ERR_SUCCESS;
7628 }
7629
7630 _PUBLIC_ void ndr_print_netr_WorkstationFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7631 {
7632         ndr_print_uint32(ndr, name, r);
7633         ndr->depth++;
7634         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS", NETR_WS_FLAG_HANDLES_INBOUND_TRUSTS, r);
7635         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_WS_FLAG_HANDLES_SPN_UPDATE", NETR_WS_FLAG_HANDLES_SPN_UPDATE, r);
7636         ndr->depth--;
7637 }
7638
7639 static enum ndr_err_code ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r)
7640 {
7641         uint32_t cntr_trusts_1;
7642         uint32_t cntr_dummystring_0;
7643         uint32_t cntr_dummy_0;
7644         if (ndr_flags & NDR_SCALARS) {
7645                 NDR_CHECK(ndr_push_align(ndr, 4));
7646                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7647                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
7648                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts));
7649                 NDR_CHECK(ndr_push_netr_LsaPolicyInfo(ndr, NDR_SCALARS, &r->lsa_policy));
7650                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dns_hostname));
7651                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7652                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0]));
7653                 }
7654                 NDR_CHECK(ndr_push_netr_WorkstationFlags(ndr, NDR_SCALARS, r->workstation_flags));
7655                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->supported_enc_types));
7656                 for (cntr_dummy_0 = 0; cntr_dummy_0 < 2; cntr_dummy_0++) {
7657                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy[cntr_dummy_0]));
7658                 }
7659         }
7660         if (ndr_flags & NDR_BUFFERS) {
7661                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7662                 if (r->trusts) {
7663                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
7664                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7665                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7666                         }
7667                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7668                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7669                         }
7670                 }
7671                 NDR_CHECK(ndr_push_netr_LsaPolicyInfo(ndr, NDR_BUFFERS, &r->lsa_policy));
7672                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dns_hostname));
7673                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7674                         NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0]));
7675                 }
7676         }
7677         return NDR_ERR_SUCCESS;
7678 }
7679
7680 static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r)
7681 {
7682         uint32_t _ptr_trusts;
7683         uint32_t cntr_trusts_1;
7684         TALLOC_CTX *_mem_save_trusts_0;
7685         TALLOC_CTX *_mem_save_trusts_1;
7686         uint32_t cntr_dummystring_0;
7687         uint32_t cntr_dummy_0;
7688         if (ndr_flags & NDR_SCALARS) {
7689                 NDR_CHECK(ndr_pull_align(ndr, 4));
7690                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7691                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts));
7692                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts));
7693                 if (_ptr_trusts) {
7694                         NDR_PULL_ALLOC(ndr, r->trusts);
7695                 } else {
7696                         r->trusts = NULL;
7697                 }
7698                 NDR_CHECK(ndr_pull_netr_LsaPolicyInfo(ndr, NDR_SCALARS, &r->lsa_policy));
7699                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dns_hostname));
7700                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7701                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->dummystring[cntr_dummystring_0]));
7702                 }
7703                 NDR_CHECK(ndr_pull_netr_WorkstationFlags(ndr, NDR_SCALARS, &r->workstation_flags));
7704                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->supported_enc_types));
7705                 for (cntr_dummy_0 = 0; cntr_dummy_0 < 2; cntr_dummy_0++) {
7706                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy[cntr_dummy_0]));
7707                 }
7708         }
7709         if (ndr_flags & NDR_BUFFERS) {
7710                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7711                 if (r->trusts) {
7712                         _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
7713                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7714                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts));
7715                         NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts));
7716                         _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
7717                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7718                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7719                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7720                         }
7721                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7722                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7723                         }
7724                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
7725                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0);
7726                 }
7727                 NDR_CHECK(ndr_pull_netr_LsaPolicyInfo(ndr, NDR_BUFFERS, &r->lsa_policy));
7728                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dns_hostname));
7729                 for (cntr_dummystring_0 = 0; cntr_dummystring_0 < 3; cntr_dummystring_0++) {
7730                         NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->dummystring[cntr_dummystring_0]));
7731                 }
7732                 if (r->trusts) {
7733                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts));
7734                 }
7735         }
7736         return NDR_ERR_SUCCESS;
7737 }
7738
7739 _PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r)
7740 {
7741         uint32_t cntr_trusts_1;
7742         uint32_t cntr_dummystring_0;
7743         uint32_t cntr_dummy_0;
7744         ndr_print_struct(ndr, name, "netr_DomainInfo1");
7745         ndr->depth++;
7746         ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo);
7747         ndr_print_uint32(ndr, "num_trusts", r->num_trusts);
7748         ndr_print_ptr(ndr, "trusts", r->trusts);
7749         ndr->depth++;
7750         if (r->trusts) {
7751                 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", (int)r->num_trusts);
7752                 ndr->depth++;
7753                 for (cntr_trusts_1=0;cntr_trusts_1<r->num_trusts;cntr_trusts_1++) {
7754                         char *idx_1=NULL;
7755                         if (asprintf(&idx_1, "[%d]", cntr_trusts_1) != -1) {
7756                                 ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]);
7757                                 free(idx_1);
7758                         }
7759                 }
7760                 ndr->depth--;
7761         }
7762         ndr->depth--;
7763         ndr_print_netr_LsaPolicyInfo(ndr, "lsa_policy", &r->lsa_policy);
7764         ndr_print_lsa_String(ndr, "dns_hostname", &r->dns_hostname);
7765         ndr->print(ndr, "%s: ARRAY(%d)", "dummystring", (int)3);
7766         ndr->depth++;
7767         for (cntr_dummystring_0=0;cntr_dummystring_0<3;cntr_dummystring_0++) {
7768                 char *idx_0=NULL;
7769                 if (asprintf(&idx_0, "[%d]", cntr_dummystring_0) != -1) {
7770                         ndr_print_lsa_String(ndr, "dummystring", &r->dummystring[cntr_dummystring_0]);
7771                         free(idx_0);
7772                 }
7773         }
7774         ndr->depth--;
7775         ndr_print_netr_WorkstationFlags(ndr, "workstation_flags", r->workstation_flags);
7776         ndr_print_uint32(ndr, "supported_enc_types", r->supported_enc_types);
7777         ndr->print(ndr, "%s: ARRAY(%d)", "dummy", (int)2);
7778         ndr->depth++;
7779         for (cntr_dummy_0=0;cntr_dummy_0<2;cntr_dummy_0++) {
7780                 char *idx_0=NULL;
7781                 if (asprintf(&idx_0, "[%d]", cntr_dummy_0) != -1) {
7782                         ndr_print_uint32(ndr, "dummy", r->dummy[cntr_dummy_0]);
7783                         free(idx_0);
7784                 }
7785         }
7786         ndr->depth--;
7787         ndr->depth--;
7788 }
7789
7790 static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
7791 {
7792         if (ndr_flags & NDR_SCALARS) {
7793                 int level = ndr_push_get_switch_value(ndr, r);
7794                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7795                 switch (level) {
7796                         case 1: {
7797                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7798                         break; }
7799
7800                         case 2: {
7801                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
7802                         break; }
7803
7804                         default:
7805                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7806                 }
7807         }
7808         if (ndr_flags & NDR_BUFFERS) {
7809                 int level = ndr_push_get_switch_value(ndr, r);
7810                 switch (level) {
7811                         case 1:
7812                                 if (r->info1) {
7813                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7814                                 }
7815                         break;
7816
7817                         case 2:
7818                                 if (r->info2) {
7819                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7820                                 }
7821                         break;
7822
7823                         default:
7824                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7825                 }
7826         }
7827         return NDR_ERR_SUCCESS;
7828 }
7829
7830 static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
7831 {
7832         int level;
7833         uint32_t _level;
7834         TALLOC_CTX *_mem_save_info1_0;
7835         TALLOC_CTX *_mem_save_info2_0;
7836         level = ndr_pull_get_switch_value(ndr, r);
7837         if (ndr_flags & NDR_SCALARS) {
7838                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7839                 if (_level != level) {
7840                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7841                 }
7842                 switch (level) {
7843                         case 1: {
7844                                 uint32_t _ptr_info1;
7845                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7846                                 if (_ptr_info1) {
7847                                         NDR_PULL_ALLOC(ndr, r->info1);
7848                                 } else {
7849                                         r->info1 = NULL;
7850                                 }
7851                         break; }
7852
7853                         case 2: {
7854                                 uint32_t _ptr_info2;
7855                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7856                                 if (_ptr_info2) {
7857                                         NDR_PULL_ALLOC(ndr, r->info2);
7858                                 } else {
7859                                         r->info2 = NULL;
7860                                 }
7861                         break; }
7862
7863                         default:
7864                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7865                 }
7866         }
7867         if (ndr_flags & NDR_BUFFERS) {
7868                 switch (level) {
7869                         case 1:
7870                                 if (r->info1) {
7871                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7872                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7873                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7874                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7875                                 }
7876                         break;
7877
7878                         case 2:
7879                                 if (r->info2) {
7880                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7881                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7882                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7883                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7884                                 }
7885                         break;
7886
7887                         default:
7888                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7889                 }
7890         }
7891         return NDR_ERR_SUCCESS;
7892 }
7893
7894 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
7895 {
7896         int level;
7897         level = ndr_print_get_switch_value(ndr, r);
7898         ndr_print_union(ndr, name, level, "netr_DomainInfo");
7899         switch (level) {
7900                 case 1:
7901                         ndr_print_ptr(ndr, "info1", r->info1);
7902                         ndr->depth++;
7903                         if (r->info1) {
7904                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7905                         }
7906                         ndr->depth--;
7907                 break;
7908
7909                 case 2:
7910                         ndr_print_ptr(ndr, "info2", r->info2);
7911                         ndr->depth++;
7912                         if (r->info2) {
7913                                 ndr_print_netr_DomainInfo1(ndr, "info2", r->info2);
7914                         }
7915                         ndr->depth--;
7916                 break;
7917
7918                 default:
7919                         ndr_print_bad_level(ndr, name, level);
7920         }
7921 }
7922
7923 static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
7924 {
7925         {
7926                 uint32_t _flags_save_STRUCT = ndr->flags;
7927                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7928                 if (ndr_flags & NDR_SCALARS) {
7929                         NDR_CHECK(ndr_push_align(ndr, 4));
7930                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7931                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
7932                 }
7933                 if (ndr_flags & NDR_BUFFERS) {
7934                 }
7935                 ndr->flags = _flags_save_STRUCT;
7936         }
7937         return NDR_ERR_SUCCESS;
7938 }
7939
7940 static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
7941 {
7942         {
7943                 uint32_t _flags_save_STRUCT = ndr->flags;
7944                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7945                 if (ndr_flags & NDR_SCALARS) {
7946                         NDR_CHECK(ndr_pull_align(ndr, 4));
7947                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7948                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7949                 }
7950                 if (ndr_flags & NDR_BUFFERS) {
7951                 }
7952                 ndr->flags = _flags_save_STRUCT;
7953         }
7954         return NDR_ERR_SUCCESS;
7955 }
7956
7957 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
7958 {
7959         ndr_print_struct(ndr, name, "netr_CryptPassword");
7960         {
7961                 uint32_t _flags_save_STRUCT = ndr->flags;
7962                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7963                 ndr->depth++;
7964                 ndr_print_array_uint8(ndr, "data", r->data, 512);
7965                 ndr_print_uint32(ndr, "length", r->length);
7966                 ndr->depth--;
7967                 ndr->flags = _flags_save_STRUCT;
7968         }
7969 }
7970
7971 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesWCtr *r)
7972 {
7973         uint32_t cntr_sitename_1;
7974         if (ndr_flags & NDR_SCALARS) {
7975                 NDR_CHECK(ndr_push_align(ndr, 4));
7976                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7977                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7978         }
7979         if (ndr_flags & NDR_BUFFERS) {
7980                 if (r->sitename) {
7981                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7982                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7983                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7984                         }
7985                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7986                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7987                         }
7988                 }
7989         }
7990         return NDR_ERR_SUCCESS;
7991 }
7992
7993 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r)
7994 {
7995         uint32_t _ptr_sitename;
7996         uint32_t cntr_sitename_1;
7997         TALLOC_CTX *_mem_save_sitename_0;
7998         TALLOC_CTX *_mem_save_sitename_1;
7999         if (ndr_flags & NDR_SCALARS) {
8000                 NDR_CHECK(ndr_pull_align(ndr, 4));
8001                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8002                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
8003                 if (_ptr_sitename) {
8004                         NDR_PULL_ALLOC(ndr, r->sitename);
8005                 } else {
8006                         r->sitename = NULL;
8007                 }
8008         }
8009         if (ndr_flags & NDR_BUFFERS) {
8010                 if (r->sitename) {
8011                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
8012                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8013                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
8014                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
8015                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
8016                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8017                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8018                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8019                         }
8020                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8021                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8022                         }
8023                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
8024                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
8025                 }
8026                 if (r->sitename) {
8027                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
8028                 }
8029         }
8030         return NDR_ERR_SUCCESS;
8031 }
8032
8033 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r)
8034 {
8035         uint32_t cntr_sitename_1;
8036         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesWCtr");
8037         ndr->depth++;
8038         ndr_print_uint32(ndr, "count", r->count);
8039         ndr_print_ptr(ndr, "sitename", r->sitename);
8040         ndr->depth++;
8041         if (r->sitename) {
8042                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
8043                 ndr->depth++;
8044                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
8045                         char *idx_1=NULL;
8046                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
8047                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
8048                                 free(idx_1);
8049                         }
8050                 }
8051                 ndr->depth--;
8052         }
8053         ndr->depth--;
8054         ndr->depth--;
8055 }
8056
8057 static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddress *r)
8058 {
8059         if (ndr_flags & NDR_SCALARS) {
8060                 NDR_CHECK(ndr_push_align(ndr, 4));
8061                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
8062                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
8063         }
8064         if (ndr_flags & NDR_BUFFERS) {
8065                 if (r->buffer) {
8066                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
8067                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->size));
8068                 }
8069         }
8070         return NDR_ERR_SUCCESS;
8071 }
8072
8073 static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r)
8074 {
8075         uint32_t _ptr_buffer;
8076         TALLOC_CTX *_mem_save_buffer_0;
8077         if (ndr_flags & NDR_SCALARS) {
8078                 NDR_CHECK(ndr_pull_align(ndr, 4));
8079                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
8080                 if (_ptr_buffer) {
8081                         NDR_PULL_ALLOC(ndr, r->buffer);
8082                 } else {
8083                         r->buffer = NULL;
8084                 }
8085                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
8086         }
8087         if (ndr_flags & NDR_BUFFERS) {
8088                 if (r->buffer) {
8089                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
8090                         NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
8091                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
8092                         NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
8093                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
8094                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
8095                 }
8096                 if (r->buffer) {
8097                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->size));
8098                 }
8099         }
8100         return NDR_ERR_SUCCESS;
8101 }
8102
8103 _PUBLIC_ void ndr_print_netr_DsRAddress(struct ndr_print *ndr, const char *name, const struct netr_DsRAddress *r)
8104 {
8105         ndr_print_struct(ndr, name, "netr_DsRAddress");
8106         ndr->depth++;
8107         ndr_print_ptr(ndr, "buffer", r->buffer);
8108         ndr->depth++;
8109         if (r->buffer) {
8110                 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->size);
8111         }
8112         ndr->depth--;
8113         ndr_print_uint32(ndr, "size", r->size);
8114         ndr->depth--;
8115 }
8116
8117 static enum ndr_err_code ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
8118 {
8119         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8120         return NDR_ERR_SUCCESS;
8121 }
8122
8123 static enum ndr_err_code ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
8124 {
8125         uint32_t v;
8126         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8127         *r = v;
8128         return NDR_ERR_SUCCESS;
8129 }
8130
8131 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
8132 {
8133         const char *val = NULL;
8134
8135         switch (r) {
8136                 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
8137                 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
8138                 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
8139                 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
8140         }
8141         ndr_print_enum(ndr, name, "ENUM", val, r);
8142 }
8143
8144 static enum ndr_err_code ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
8145 {
8146         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
8147         return NDR_ERR_SUCCESS;
8148 }
8149
8150 static enum ndr_err_code ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
8151 {
8152         uint32_t v;
8153         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
8154         *r = v;
8155         return NDR_ERR_SUCCESS;
8156 }
8157
8158 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
8159 {
8160         ndr_print_uint32(ndr, name, r);
8161         ndr->depth++;
8162         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
8163         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
8164         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
8165         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
8166         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
8167         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
8168         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
8169         ndr->depth--;
8170 }
8171
8172 static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
8173 {
8174         if (ndr_flags & NDR_SCALARS) {
8175                 NDR_CHECK(ndr_push_align(ndr, 4));
8176                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
8177                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
8178                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
8179                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
8180                 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
8181                 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
8182                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
8183                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
8184         }
8185         if (ndr_flags & NDR_BUFFERS) {
8186                 if (r->netbios_name) {
8187                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
8188                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8189                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
8190                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8191                 }
8192                 if (r->dns_name) {
8193                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
8194                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8195                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
8196                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8197                 }
8198                 if (r->sid) {
8199                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
8200                 }
8201         }
8202         return NDR_ERR_SUCCESS;
8203 }
8204
8205 static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
8206 {
8207         uint32_t _ptr_netbios_name;
8208         TALLOC_CTX *_mem_save_netbios_name_0;
8209         uint32_t _ptr_dns_name;
8210         TALLOC_CTX *_mem_save_dns_name_0;
8211         uint32_t _ptr_sid;
8212         TALLOC_CTX *_mem_save_sid_0;
8213         if (ndr_flags & NDR_SCALARS) {
8214                 NDR_CHECK(ndr_pull_align(ndr, 4));
8215                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
8216                 if (_ptr_netbios_name) {
8217                         NDR_PULL_ALLOC(ndr, r->netbios_name);
8218                 } else {
8219                         r->netbios_name = NULL;
8220                 }
8221                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
8222                 if (_ptr_dns_name) {
8223                         NDR_PULL_ALLOC(ndr, r->dns_name);
8224                 } else {
8225                         r->dns_name = NULL;
8226                 }
8227                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
8228                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
8229                 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
8230                 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
8231                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
8232                 if (_ptr_sid) {
8233                         NDR_PULL_ALLOC(ndr, r->sid);
8234                 } else {
8235                         r->sid = NULL;
8236                 }
8237                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
8238         }
8239         if (ndr_flags & NDR_BUFFERS) {
8240                 if (r->netbios_name) {
8241                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8242                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
8243                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
8244                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
8245                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
8246                                 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));
8247                         }
8248                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
8249                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
8250                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
8251                 }
8252                 if (r->dns_name) {
8253                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8254                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
8255                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
8256                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
8257                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
8258                                 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));
8259                         }
8260                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
8261                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
8262                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
8263                 }
8264                 if (r->sid) {
8265                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
8266                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
8267                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
8268                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
8269                 }
8270         }
8271         return NDR_ERR_SUCCESS;
8272 }
8273
8274 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
8275 {
8276         ndr_print_struct(ndr, name, "netr_DomainTrust");
8277         ndr->depth++;
8278         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
8279         ndr->depth++;
8280         if (r->netbios_name) {
8281                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
8282         }
8283         ndr->depth--;
8284         ndr_print_ptr(ndr, "dns_name", r->dns_name);
8285         ndr->depth++;
8286         if (r->dns_name) {
8287                 ndr_print_string(ndr, "dns_name", r->dns_name);
8288         }
8289         ndr->depth--;
8290         ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
8291         ndr_print_uint32(ndr, "parent_index", r->parent_index);
8292         ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
8293         ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
8294         ndr_print_ptr(ndr, "sid", r->sid);
8295         ndr->depth++;
8296         if (r->sid) {
8297                 ndr_print_dom_sid2(ndr, "sid", r->sid);
8298         }
8299         ndr->depth--;
8300         ndr_print_GUID(ndr, "guid", &r->guid);
8301         ndr->depth--;
8302 }
8303
8304 static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustList *r)
8305 {
8306         uint32_t cntr_array_1;
8307         if (ndr_flags & NDR_SCALARS) {
8308                 NDR_CHECK(ndr_push_align(ndr, 4));
8309                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8310                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
8311         }
8312         if (ndr_flags & NDR_BUFFERS) {
8313                 if (r->array) {
8314                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8315                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8316                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8317                         }
8318                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8319                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8320                         }
8321                 }
8322         }
8323         return NDR_ERR_SUCCESS;
8324 }
8325
8326 static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r)
8327 {
8328         uint32_t _ptr_array;
8329         uint32_t cntr_array_1;
8330         TALLOC_CTX *_mem_save_array_0;
8331         TALLOC_CTX *_mem_save_array_1;
8332         if (ndr_flags & NDR_SCALARS) {
8333                 NDR_CHECK(ndr_pull_align(ndr, 4));
8334                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8335                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
8336                 if (_ptr_array) {
8337                         NDR_PULL_ALLOC(ndr, r->array);
8338                 } else {
8339                         r->array = NULL;
8340                 }
8341         }
8342         if (ndr_flags & NDR_BUFFERS) {
8343                 if (r->array) {
8344                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
8345                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8346                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
8347                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
8348                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
8349                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
8350                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8351                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
8352                         }
8353                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
8354                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
8355                         }
8356                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
8357                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
8358                 }
8359                 if (r->array) {
8360                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
8361                 }
8362         }
8363         return NDR_ERR_SUCCESS;
8364 }
8365
8366 _PUBLIC_ void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r)
8367 {
8368         uint32_t cntr_array_1;
8369         ndr_print_struct(ndr, name, "netr_DomainTrustList");
8370         ndr->depth++;
8371         ndr_print_uint32(ndr, "count", r->count);
8372         ndr_print_ptr(ndr, "array", r->array);
8373         ndr->depth++;
8374         if (r->array) {
8375                 ndr->print(ndr, "%s: ARRAY(%d)", "array", (int)r->count);
8376                 ndr->depth++;
8377                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
8378                         char *idx_1=NULL;
8379                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
8380                                 ndr_print_netr_DomainTrust(ndr, "array", &r->array[cntr_array_1]);
8381                                 free(idx_1);
8382                         }
8383                 }
8384                 ndr->depth--;
8385         }
8386         ndr->depth--;
8387         ndr->depth--;
8388 }
8389
8390 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesExWCtr *r)
8391 {
8392         uint32_t cntr_sitename_1;
8393         uint32_t cntr_subnetname_1;
8394         if (ndr_flags & NDR_SCALARS) {
8395                 NDR_CHECK(ndr_push_align(ndr, 4));
8396                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8397                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
8398                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->subnetname));
8399         }
8400         if (ndr_flags & NDR_BUFFERS) {
8401                 if (r->sitename) {
8402                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8403                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8404                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8405                         }
8406                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8407                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8408                         }
8409                 }
8410                 if (r->subnetname) {
8411                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8412                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8413                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
8414                         }
8415                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8416                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
8417                         }
8418                 }
8419         }
8420         return NDR_ERR_SUCCESS;
8421 }
8422
8423 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r)
8424 {
8425         uint32_t _ptr_sitename;
8426         uint32_t cntr_sitename_1;
8427         TALLOC_CTX *_mem_save_sitename_0;
8428         TALLOC_CTX *_mem_save_sitename_1;
8429         uint32_t _ptr_subnetname;
8430         uint32_t cntr_subnetname_1;
8431         TALLOC_CTX *_mem_save_subnetname_0;
8432         TALLOC_CTX *_mem_save_subnetname_1;
8433         if (ndr_flags & NDR_SCALARS) {
8434                 NDR_CHECK(ndr_pull_align(ndr, 4));
8435                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8436                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
8437                 if (_ptr_sitename) {
8438                         NDR_PULL_ALLOC(ndr, r->sitename);
8439                 } else {
8440                         r->sitename = NULL;
8441                 }
8442                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_subnetname));
8443                 if (_ptr_subnetname) {
8444                         NDR_PULL_ALLOC(ndr, r->subnetname);
8445                 } else {
8446                         r->subnetname = NULL;
8447                 }
8448         }
8449         if (ndr_flags & NDR_BUFFERS) {
8450                 if (r->sitename) {
8451                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
8452                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8453                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
8454                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
8455                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
8456                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
8457                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8458                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
8459                         }
8460                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
8461                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
8462                         }
8463                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
8464                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
8465                 }
8466                 if (r->subnetname) {
8467                         _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr);
8468                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
8469                         NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname));
8470                         NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname));
8471                         _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr);
8472                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
8473                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8474                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
8475                         }
8476                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
8477                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
8478                         }
8479                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0);
8480                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_0, 0);
8481                 }
8482                 if (r->sitename) {
8483                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
8484                 }
8485                 if (r->subnetname) {
8486                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->subnetname, r->count));
8487                 }
8488         }
8489         return NDR_ERR_SUCCESS;
8490 }
8491
8492 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r)
8493 {
8494         uint32_t cntr_sitename_1;
8495         uint32_t cntr_subnetname_1;
8496         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExWCtr");
8497         ndr->depth++;
8498         ndr_print_uint32(ndr, "count", r->count);
8499         ndr_print_ptr(ndr, "sitename", r->sitename);
8500         ndr->depth++;
8501         if (r->sitename) {
8502                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", (int)r->count);
8503                 ndr->depth++;
8504                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
8505                         char *idx_1=NULL;
8506                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
8507                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
8508                                 free(idx_1);
8509                         }
8510                 }
8511                 ndr->depth--;
8512         }
8513         ndr->depth--;
8514         ndr_print_ptr(ndr, "subnetname", r->subnetname);
8515         ndr->depth++;
8516         if (r->subnetname) {
8517                 ndr->print(ndr, "%s: ARRAY(%d)", "subnetname", (int)r->count);
8518                 ndr->depth++;
8519                 for (cntr_subnetname_1=0;cntr_subnetname_1<r->count;cntr_subnetname_1++) {
8520                         char *idx_1=NULL;
8521                         if (asprintf(&idx_1, "[%d]", cntr_subnetname_1) != -1) {
8522                                 ndr_print_lsa_String(ndr, "subnetname", &r->subnetname[cntr_subnetname_1]);
8523                                 free(idx_1);
8524                         }
8525                 }
8526                 ndr->depth--;
8527         }
8528         ndr->depth--;
8529         ndr->depth--;
8530 }
8531
8532 static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags, const struct DcSitesCtr *r)
8533 {
8534         uint32_t cntr_sites_1;
8535         if (ndr_flags & NDR_SCALARS) {
8536                 NDR_CHECK(ndr_push_align(ndr, 4));
8537                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
8538                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sites));
8539         }
8540         if (ndr_flags & NDR_BUFFERS) {
8541                 if (r->sites) {
8542                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
8543                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8544                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
8545                         }
8546                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8547                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
8548                         }
8549                 }
8550         }
8551         return NDR_ERR_SUCCESS;
8552 }
8553
8554 static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r)
8555 {
8556         uint32_t _ptr_sites;
8557         uint32_t cntr_sites_1;
8558         TALLOC_CTX *_mem_save_sites_0;
8559         TALLOC_CTX *_mem_save_sites_1;
8560         if (ndr_flags & NDR_SCALARS) {
8561                 NDR_CHECK(ndr_pull_align(ndr, 4));
8562                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sites));
8563                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sites));
8564                 if (_ptr_sites) {
8565                         NDR_PULL_ALLOC(ndr, r->sites);
8566                 } else {
8567                         r->sites = NULL;
8568                 }
8569         }
8570         if (ndr_flags & NDR_BUFFERS) {
8571                 if (r->sites) {
8572                         _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr);
8573                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
8574                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sites));
8575                         NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites));
8576                         _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr);
8577                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
8578                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8579                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
8580                         }
8581                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
8582                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
8583                         }
8584                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0);
8585                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_0, 0);
8586                 }
8587                 if (r->sites) {
8588                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sites, r->num_sites));
8589                 }
8590         }
8591         return NDR_ERR_SUCCESS;
8592 }
8593
8594 _PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r)
8595 {
8596         uint32_t cntr_sites_1;
8597         ndr_print_struct(ndr, name, "DcSitesCtr");
8598         ndr->depth++;
8599         ndr_print_uint32(ndr, "num_sites", r->num_sites);
8600         ndr_print_ptr(ndr, "sites", r->sites);
8601         ndr->depth++;
8602         if (r->sites) {
8603                 ndr->print(ndr, "%s: ARRAY(%d)", "sites", (int)r->num_sites);
8604                 ndr->depth++;
8605                 for (cntr_sites_1=0;cntr_sites_1<r->num_sites;cntr_sites_1++) {
8606                         char *idx_1=NULL;
8607                         if (asprintf(&idx_1, "[%d]", cntr_sites_1) != -1) {
8608                                 ndr_print_lsa_String(ndr, "sites", &r->sites[cntr_sites_1]);
8609                                 free(idx_1);
8610                         }
8611                 }
8612                 ndr->depth--;
8613         }
8614         ndr->depth--;
8615         ndr->depth--;
8616 }
8617
8618 static enum ndr_err_code ndr_push_netr_TrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_TrustInfo *r)
8619 {
8620         uint32_t cntr_data_1;
8621         uint32_t cntr_entries_1;
8622         if (ndr_flags & NDR_SCALARS) {
8623                 NDR_CHECK(ndr_push_align(ndr, 4));
8624                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8625                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
8626                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entry_count));
8627                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->entries));
8628         }
8629         if (ndr_flags & NDR_BUFFERS) {
8630                 if (r->data) {
8631                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8632                         for (cntr_data_1 = 0; cntr_data_1 < r->count; cntr_data_1++) {
8633                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data[cntr_data_1]));
8634                         }
8635                 }
8636                 if (r->entries) {
8637                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
8638                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
8639                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
8640                         }
8641                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
8642                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
8643                         }
8644                 }
8645         }
8646         return NDR_ERR_SUCCESS;
8647 }
8648
8649 static enum ndr_err_code ndr_pull_netr_TrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_TrustInfo *r)
8650 {
8651         uint32_t _ptr_data;
8652         uint32_t cntr_data_1;
8653         TALLOC_CTX *_mem_save_data_0;
8654         TALLOC_CTX *_mem_save_data_1;
8655         uint32_t _ptr_entries;
8656         uint32_t cntr_entries_1;
8657         TALLOC_CTX *_mem_save_entries_0;
8658         TALLOC_CTX *_mem_save_entries_1;
8659         if (ndr_flags & NDR_SCALARS) {
8660                 NDR_CHECK(ndr_pull_align(ndr, 4));
8661                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
8662                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
8663                 if (_ptr_data) {
8664                         NDR_PULL_ALLOC(ndr, r->data);
8665                 } else {
8666                         r->data = NULL;
8667                 }
8668                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->entry_count));
8669                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_entries));
8670                 if (_ptr_entries) {
8671                         NDR_PULL_ALLOC(ndr, r->entries);
8672                 } else {
8673                         r->entries = NULL;
8674                 }
8675         }
8676         if (ndr_flags & NDR_BUFFERS) {
8677                 if (r->data) {
8678                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
8679                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
8680                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
8681                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
8682                         _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
8683                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
8684                         for (cntr_data_1 = 0; cntr_data_1 < r->count; cntr_data_1++) {
8685                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
8686                         }
8687                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
8688                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
8689                 }
8690                 if (r->entries) {
8691                         _mem_save_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
8692                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
8693                         NDR_CHECK(ndr_pull_array_size(ndr, &r->entries));
8694                         NDR_PULL_ALLOC_N(ndr, r->entries, ndr_get_array_size(ndr, &r->entries));
8695                         _mem_save_entries_1 = NDR_PULL_GET_MEM_CTX(ndr);
8696                         NDR_PULL_SET_MEM_CTX(ndr, r->entries, 0);
8697                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
8698                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->entries[cntr_entries_1]));
8699                         }
8700                         for (cntr_entries_1 = 0; cntr_entries_1 < r->count; cntr_entries_1++) {
8701                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->entries[cntr_entries_1]));
8702                         }
8703                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_1, 0);
8704                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_entries_0, 0);
8705                 }
8706                 if (r->data) {
8707                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->count));
8708                 }
8709                 if (r->entries) {
8710                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->entries, r->count));
8711                 }
8712         }
8713         return NDR_ERR_SUCCESS;
8714 }
8715
8716 _PUBLIC_ void ndr_print_netr_TrustInfo(struct ndr_print *ndr, const char *name, const struct netr_TrustInfo *r)
8717 {
8718         uint32_t cntr_data_1;
8719         uint32_t cntr_entries_1;
8720         ndr_print_struct(ndr, name, "netr_TrustInfo");
8721         ndr->depth++;
8722         ndr_print_uint32(ndr, "count", r->count);
8723         ndr_print_ptr(ndr, "data", r->data);
8724         ndr->depth++;
8725         if (r->data) {
8726                 ndr->print(ndr, "%s: ARRAY(%d)", "data", (int)r->count);
8727                 ndr->depth++;
8728                 for (cntr_data_1=0;cntr_data_1<r->count;cntr_data_1++) {
8729                         char *idx_1=NULL;
8730                         if (asprintf(&idx_1, "[%d]", cntr_data_1) != -1) {
8731                                 ndr_print_uint32(ndr, "data", r->data[cntr_data_1]);
8732                                 free(idx_1);
8733                         }
8734                 }
8735                 ndr->depth--;
8736         }
8737         ndr->depth--;
8738         ndr_print_uint32(ndr, "entry_count", r->entry_count);
8739         ndr_print_ptr(ndr, "entries", r->entries);
8740         ndr->depth++;
8741         if (r->entries) {
8742                 ndr->print(ndr, "%s: ARRAY(%d)", "entries", (int)r->count);
8743                 ndr->depth++;
8744                 for (cntr_entries_1=0;cntr_entries_1<r->count;cntr_entries_1++) {
8745                         char *idx_1=NULL;
8746                         if (asprintf(&idx_1, "[%d]", cntr_entries_1) != -1) {
8747                                 ndr_print_lsa_String(ndr, "entries", &r->entries[cntr_entries_1]);
8748                                 free(idx_1);
8749                         }
8750                 }
8751                 ndr->depth--;
8752         }
8753         ndr->depth--;
8754         ndr->depth--;
8755 }
8756
8757 static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
8758 {
8759         if (flags & NDR_IN) {
8760                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8761                 if (r->in.server_name) {
8762                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8763                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8764                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8765                         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));
8766                 }
8767                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8768                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8769                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8770                 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));
8771                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8772                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8773                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8774                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8775         }
8776         if (flags & NDR_OUT) {
8777                 if (r->out.info == NULL) {
8778                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8779                 }
8780                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
8781                 if (*r->out.info) {
8782                         NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
8783                 }
8784                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8785         }
8786         return NDR_ERR_SUCCESS;
8787 }
8788
8789 static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
8790 {
8791         uint32_t _ptr_server_name;
8792         uint32_t _ptr_info;
8793         TALLOC_CTX *_mem_save_server_name_0;
8794         TALLOC_CTX *_mem_save_info_0;
8795         TALLOC_CTX *_mem_save_info_1;
8796         if (flags & NDR_IN) {
8797                 ZERO_STRUCT(r->out);
8798
8799                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8800                 if (_ptr_server_name) {
8801                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8802                 } else {
8803                         r->in.server_name = NULL;
8804                 }
8805                 if (r->in.server_name) {
8806                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8807                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8808                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8809                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8810                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8811                                 return 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));
8812                         }
8813                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8814                         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));
8815                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8816                 }
8817                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8818                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8819                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8820                         return 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));
8821                 }
8822                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8823                 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));
8824                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8825                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8826                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8827                         return 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));
8828                 }
8829                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8830                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8831                 NDR_PULL_ALLOC(ndr, r->out.info);
8832                 ZERO_STRUCTP(r->out.info);
8833         }
8834         if (flags & NDR_OUT) {
8835                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8836                         NDR_PULL_ALLOC(ndr, r->out.info);
8837                 }
8838                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8839                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8840                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
8841                 if (_ptr_info) {
8842                         NDR_PULL_ALLOC(ndr, *r->out.info);
8843                 } else {
8844                         *r->out.info = NULL;
8845                 }
8846                 if (*r->out.info) {
8847                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
8848                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
8849                         NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
8850                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
8851                 }
8852                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8853                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8854         }
8855         return NDR_ERR_SUCCESS;
8856 }
8857
8858 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
8859 {
8860         ndr_print_struct(ndr, name, "netr_LogonUasLogon");
8861         ndr->depth++;
8862         if (flags & NDR_SET_VALUES) {
8863                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8864         }
8865         if (flags & NDR_IN) {
8866                 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
8867                 ndr->depth++;
8868                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8869                 ndr->depth++;
8870                 if (r->in.server_name) {
8871                         ndr_print_string(ndr, "server_name", r->in.server_name);
8872                 }
8873                 ndr->depth--;
8874                 ndr_print_string(ndr, "account_name", r->in.account_name);
8875                 ndr_print_string(ndr, "workstation", r->in.workstation);
8876                 ndr->depth--;
8877         }
8878         if (flags & NDR_OUT) {
8879                 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
8880                 ndr->depth++;
8881                 ndr_print_ptr(ndr, "info", r->out.info);
8882                 ndr->depth++;
8883                 ndr_print_ptr(ndr, "info", *r->out.info);
8884                 ndr->depth++;
8885                 if (*r->out.info) {
8886                         ndr_print_netr_UasInfo(ndr, "info", *r->out.info);
8887                 }
8888                 ndr->depth--;
8889                 ndr->depth--;
8890                 ndr_print_WERROR(ndr, "result", r->out.result);
8891                 ndr->depth--;
8892         }
8893         ndr->depth--;
8894 }
8895
8896 static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
8897 {
8898         if (flags & NDR_IN) {
8899                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8900                 if (r->in.server_name) {
8901                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8902                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8903                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8904                         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));
8905                 }
8906                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8907                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8908                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8909                 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));
8910                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8911                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8912                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8913                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8914         }
8915         if (flags & NDR_OUT) {
8916                 if (r->out.info == NULL) {
8917                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8918                 }
8919                 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8920                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8921         }
8922         return NDR_ERR_SUCCESS;
8923 }
8924
8925 static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
8926 {
8927         uint32_t _ptr_server_name;
8928         TALLOC_CTX *_mem_save_server_name_0;
8929         TALLOC_CTX *_mem_save_info_0;
8930         if (flags & NDR_IN) {
8931                 ZERO_STRUCT(r->out);
8932
8933                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8934                 if (_ptr_server_name) {
8935                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8936                 } else {
8937                         r->in.server_name = NULL;
8938                 }
8939                 if (r->in.server_name) {
8940                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8941                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8942                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8943                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8944                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8945                                 return 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));
8946                         }
8947                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8948                         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));
8949                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8950                 }
8951                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8952                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8953                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8954                         return 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));
8955                 }
8956                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8957                 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));
8958                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8959                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8960                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8961                         return 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));
8962                 }
8963                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8964                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8965                 NDR_PULL_ALLOC(ndr, r->out.info);
8966                 ZERO_STRUCTP(r->out.info);
8967         }
8968         if (flags & NDR_OUT) {
8969                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8970                         NDR_PULL_ALLOC(ndr, r->out.info);
8971                 }
8972                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8973                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8974                 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8975                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8976                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8977         }
8978         return NDR_ERR_SUCCESS;
8979 }
8980
8981 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
8982 {
8983         ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
8984         ndr->depth++;
8985         if (flags & NDR_SET_VALUES) {
8986                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8987         }
8988         if (flags & NDR_IN) {
8989                 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
8990                 ndr->depth++;
8991                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8992                 ndr->depth++;
8993                 if (r->in.server_name) {
8994                         ndr_print_string(ndr, "server_name", r->in.server_name);
8995                 }
8996                 ndr->depth--;
8997                 ndr_print_string(ndr, "account_name", r->in.account_name);
8998                 ndr_print_string(ndr, "workstation", r->in.workstation);
8999                 ndr->depth--;
9000         }
9001         if (flags & NDR_OUT) {
9002                 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
9003                 ndr->depth++;
9004                 ndr_print_ptr(ndr, "info", r->out.info);
9005                 ndr->depth++;
9006                 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
9007                 ndr->depth--;
9008                 ndr_print_WERROR(ndr, "result", r->out.result);
9009                 ndr->depth--;
9010         }
9011         ndr->depth--;
9012 }
9013
9014 static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
9015 {
9016         if (flags & NDR_IN) {
9017                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9018                 if (r->in.server_name) {
9019                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9020                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9021                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9022                         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));
9023                 }
9024                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
9025                 if (r->in.computer_name) {
9026                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9027                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9028                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9029                         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));
9030                 }
9031                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
9032                 if (r->in.credential) {
9033                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9034                 }
9035                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
9036                 if (r->in.return_authenticator) {
9037                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9038                 }
9039                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
9040                 if (r->in.logon == NULL) {
9041                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9042                 }
9043                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
9044                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
9045                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
9046         }
9047         if (flags & NDR_OUT) {
9048                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
9049                 if (r->out.return_authenticator) {
9050                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9051                 }
9052                 if (r->out.validation == NULL) {
9053                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9054                 }
9055                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
9056                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
9057                 if (r->out.authoritative == NULL) {
9058                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9059                 }
9060                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
9061                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9062         }
9063         return NDR_ERR_SUCCESS;
9064 }
9065
9066 static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
9067 {
9068         uint32_t _ptr_server_name;
9069         uint32_t _ptr_computer_name;
9070         uint32_t _ptr_credential;
9071         uint32_t _ptr_return_authenticator;
9072         TALLOC_CTX *_mem_save_server_name_0;
9073         TALLOC_CTX *_mem_save_computer_name_0;
9074         TALLOC_CTX *_mem_save_credential_0;
9075         TALLOC_CTX *_mem_save_return_authenticator_0;
9076         TALLOC_CTX *_mem_save_logon_0;
9077         TALLOC_CTX *_mem_save_validation_0;
9078         TALLOC_CTX *_mem_save_authoritative_0;
9079         if (flags & NDR_IN) {
9080                 ZERO_STRUCT(r->out);
9081
9082                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9083                 if (_ptr_server_name) {
9084                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9085                 } else {
9086                         r->in.server_name = NULL;
9087                 }
9088                 if (r->in.server_name) {
9089                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9090                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9091                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9092                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9093                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9094                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
9095                         }
9096                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9097                         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));
9098                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9099                 }
9100                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
9101                 if (_ptr_computer_name) {
9102                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
9103                 } else {
9104                         r->in.computer_name = NULL;
9105                 }
9106                 if (r->in.computer_name) {
9107                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9108                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
9109                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9110                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9111                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9112                                 return 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));
9113                         }
9114                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9115                         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));
9116                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
9117                 }
9118                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
9119                 if (_ptr_credential) {
9120                         NDR_PULL_ALLOC(ndr, r->in.credential);
9121                 } else {
9122                         r->in.credential = NULL;
9123                 }
9124                 if (r->in.credential) {
9125                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9126                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
9127                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9128                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
9129                 }
9130                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9131                 if (_ptr_return_authenticator) {
9132                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9133                 } else {
9134                         r->in.return_authenticator = NULL;
9135                 }
9136                 if (r->in.return_authenticator) {
9137                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9138                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
9139                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9140                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9141                 }
9142                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
9143                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9144                         NDR_PULL_ALLOC(ndr, r->in.logon);
9145                 }
9146                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
9147                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
9148                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
9149                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
9150                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
9151                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
9152                 NDR_PULL_ALLOC(ndr, r->out.validation);
9153                 ZERO_STRUCTP(r->out.validation);
9154                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
9155                 ZERO_STRUCTP(r->out.authoritative);
9156         }
9157         if (flags & NDR_OUT) {
9158                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9159                 if (_ptr_return_authenticator) {
9160                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9161                 } else {
9162                         r->out.return_authenticator = NULL;
9163                 }
9164                 if (r->out.return_authenticator) {
9165                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9166                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
9167                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9168                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9169                 }
9170                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9171                         NDR_PULL_ALLOC(ndr, r->out.validation);
9172                 }
9173                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
9174                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
9175                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
9176                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
9177                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
9178                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9179                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
9180                 }
9181                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
9182                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
9183                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
9184                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
9185                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9186         }
9187         return NDR_ERR_SUCCESS;
9188 }
9189
9190 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
9191 {
9192         ndr_print_struct(ndr, name, "netr_LogonSamLogon");
9193         ndr->depth++;
9194         if (flags & NDR_SET_VALUES) {
9195                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9196         }
9197         if (flags & NDR_IN) {
9198                 ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
9199                 ndr->depth++;
9200                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9201                 ndr->depth++;
9202                 if (r->in.server_name) {
9203                         ndr_print_string(ndr, "server_name", r->in.server_name);
9204                 }
9205                 ndr->depth--;
9206                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
9207                 ndr->depth++;
9208                 if (r->in.computer_name) {
9209                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
9210                 }
9211                 ndr->depth--;
9212                 ndr_print_ptr(ndr, "credential", r->in.credential);
9213                 ndr->depth++;
9214                 if (r->in.credential) {
9215                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9216                 }
9217                 ndr->depth--;
9218                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9219                 ndr->depth++;
9220                 if (r->in.return_authenticator) {
9221                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9222                 }
9223                 ndr->depth--;
9224                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
9225                 ndr_print_ptr(ndr, "logon", r->in.logon);
9226                 ndr->depth++;
9227                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
9228                 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
9229                 ndr->depth--;
9230                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
9231                 ndr->depth--;
9232         }
9233         if (flags & NDR_OUT) {
9234                 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
9235                 ndr->depth++;
9236                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9237                 ndr->depth++;
9238                 if (r->out.return_authenticator) {
9239                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9240                 }
9241                 ndr->depth--;
9242                 ndr_print_ptr(ndr, "validation", r->out.validation);
9243                 ndr->depth++;
9244                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
9245                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
9246                 ndr->depth--;
9247                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
9248                 ndr->depth++;
9249                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
9250                 ndr->depth--;
9251                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9252                 ndr->depth--;
9253         }
9254         ndr->depth--;
9255 }
9256
9257 static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
9258 {
9259         if (flags & NDR_IN) {
9260                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9261                 if (r->in.server_name) {
9262                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9263                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9264                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9265                         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));
9266                 }
9267                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
9268                 if (r->in.computer_name) {
9269                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9270                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9271                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9272                         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));
9273                 }
9274                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
9275                 if (r->in.credential) {
9276                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9277                 }
9278                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
9279                 if (r->in.return_authenticator) {
9280                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9281                 }
9282                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
9283                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
9284                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
9285         }
9286         if (flags & NDR_OUT) {
9287                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
9288                 if (r->out.return_authenticator) {
9289                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9290                 }
9291                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9292         }
9293         return NDR_ERR_SUCCESS;
9294 }
9295
9296 static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
9297 {
9298         uint32_t _ptr_server_name;
9299         uint32_t _ptr_computer_name;
9300         uint32_t _ptr_credential;
9301         uint32_t _ptr_return_authenticator;
9302         TALLOC_CTX *_mem_save_server_name_0;
9303         TALLOC_CTX *_mem_save_computer_name_0;
9304         TALLOC_CTX *_mem_save_credential_0;
9305         TALLOC_CTX *_mem_save_return_authenticator_0;
9306         if (flags & NDR_IN) {
9307                 ZERO_STRUCT(r->out);
9308
9309                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9310                 if (_ptr_server_name) {
9311                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9312                 } else {
9313                         r->in.server_name = NULL;
9314                 }
9315                 if (r->in.server_name) {
9316                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9317                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9318                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9319                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9320                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9321                                 return 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));
9322                         }
9323                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9324                         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));
9325                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9326                 }
9327                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
9328                 if (_ptr_computer_name) {
9329                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
9330                 } else {
9331                         r->in.computer_name = NULL;
9332                 }
9333                 if (r->in.computer_name) {
9334                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9335                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
9336                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9337                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9338                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9339                                 return 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));
9340                         }
9341                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9342                         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));
9343                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
9344                 }
9345                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
9346                 if (_ptr_credential) {
9347                         NDR_PULL_ALLOC(ndr, r->in.credential);
9348                 } else {
9349                         r->in.credential = NULL;
9350                 }
9351                 if (r->in.credential) {
9352                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9353                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
9354                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9355                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
9356                 }
9357                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9358                 if (_ptr_return_authenticator) {
9359                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9360                 } else {
9361                         r->in.return_authenticator = NULL;
9362                 }
9363                 if (r->in.return_authenticator) {
9364                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9365                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
9366                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9367                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9368                 }
9369                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
9370                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
9371                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
9372         }
9373         if (flags & NDR_OUT) {
9374                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
9375                 if (_ptr_return_authenticator) {
9376                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9377                 } else {
9378                         r->out.return_authenticator = NULL;
9379                 }
9380                 if (r->out.return_authenticator) {
9381                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9382                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
9383                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9384                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
9385                 }
9386                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9387         }
9388         return NDR_ERR_SUCCESS;
9389 }
9390
9391 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
9392 {
9393         ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
9394         ndr->depth++;
9395         if (flags & NDR_SET_VALUES) {
9396                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9397         }
9398         if (flags & NDR_IN) {
9399                 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
9400                 ndr->depth++;
9401                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9402                 ndr->depth++;
9403                 if (r->in.server_name) {
9404                         ndr_print_string(ndr, "server_name", r->in.server_name);
9405                 }
9406                 ndr->depth--;
9407                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
9408                 ndr->depth++;
9409                 if (r->in.computer_name) {
9410                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
9411                 }
9412                 ndr->depth--;
9413                 ndr_print_ptr(ndr, "credential", r->in.credential);
9414                 ndr->depth++;
9415                 if (r->in.credential) {
9416                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9417                 }
9418                 ndr->depth--;
9419                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9420                 ndr->depth++;
9421                 if (r->in.return_authenticator) {
9422                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9423                 }
9424                 ndr->depth--;
9425                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
9426                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
9427                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
9428                 ndr->depth--;
9429         }
9430         if (flags & NDR_OUT) {
9431                 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
9432                 ndr->depth++;
9433                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9434                 ndr->depth++;
9435                 if (r->out.return_authenticator) {
9436                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9437                 }
9438                 ndr->depth--;
9439                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9440                 ndr->depth--;
9441         }
9442         ndr->depth--;
9443 }
9444
9445 _PUBLIC_ enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
9446 {
9447         if (flags & NDR_IN) {
9448                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9449                 if (r->in.server_name) {
9450                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9451                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9452                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9453                         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));
9454                 }
9455                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9456                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9457                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9458                 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));
9459                 if (r->in.credentials == NULL) {
9460                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9461                 }
9462                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9463         }
9464         if (flags & NDR_OUT) {
9465                 if (r->out.return_credentials == NULL) {
9466                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9467                 }
9468                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9469                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9470         }
9471         return NDR_ERR_SUCCESS;
9472 }
9473
9474 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
9475 {
9476         uint32_t _ptr_server_name;
9477         TALLOC_CTX *_mem_save_server_name_0;
9478         TALLOC_CTX *_mem_save_credentials_0;
9479         TALLOC_CTX *_mem_save_return_credentials_0;
9480         if (flags & NDR_IN) {
9481                 ZERO_STRUCT(r->out);
9482
9483                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9484                 if (_ptr_server_name) {
9485                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9486                 } else {
9487                         r->in.server_name = NULL;
9488                 }
9489                 if (r->in.server_name) {
9490                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9491                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9492                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9493                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9494                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9495                                 return 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));
9496                         }
9497                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9498                         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));
9499                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9500                 }
9501                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9502                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9503                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9504                         return 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));
9505                 }
9506                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9507                 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));
9508                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9509                         NDR_PULL_ALLOC(ndr, r->in.credentials);
9510                 }
9511                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9512                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
9513                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9514                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9515                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9516                 ZERO_STRUCTP(r->out.return_credentials);
9517         }
9518         if (flags & NDR_OUT) {
9519                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9520                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9521                 }
9522                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9523                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
9524                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9525                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9526                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9527         }
9528         return NDR_ERR_SUCCESS;
9529 }
9530
9531 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
9532 {
9533         ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
9534         ndr->depth++;
9535         if (flags & NDR_SET_VALUES) {
9536                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9537         }
9538         if (flags & NDR_IN) {
9539                 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
9540                 ndr->depth++;
9541                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9542                 ndr->depth++;
9543                 if (r->in.server_name) {
9544                         ndr_print_string(ndr, "server_name", r->in.server_name);
9545                 }
9546                 ndr->depth--;
9547                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9548                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
9549                 ndr->depth++;
9550                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
9551                 ndr->depth--;
9552                 ndr->depth--;
9553         }
9554         if (flags & NDR_OUT) {
9555                 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
9556                 ndr->depth++;
9557                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
9558                 ndr->depth++;
9559                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
9560                 ndr->depth--;
9561                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9562                 ndr->depth--;
9563         }
9564         ndr->depth--;
9565 }
9566
9567 static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
9568 {
9569         if (flags & NDR_IN) {
9570                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9571                 if (r->in.server_name) {
9572                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9573                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9574                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9575                         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));
9576                 }
9577                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9578                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9579                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9580                 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));
9581                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
9582                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9583                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9584                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9585                 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));
9586                 if (r->in.credentials == NULL) {
9587                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9588                 }
9589                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9590         }
9591         if (flags & NDR_OUT) {
9592                 if (r->out.return_credentials == NULL) {
9593                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9594                 }
9595                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9596                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9597         }
9598         return NDR_ERR_SUCCESS;
9599 }
9600
9601 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
9602 {
9603         uint32_t _ptr_server_name;
9604         TALLOC_CTX *_mem_save_server_name_0;
9605         TALLOC_CTX *_mem_save_credentials_0;
9606         TALLOC_CTX *_mem_save_return_credentials_0;
9607         if (flags & NDR_IN) {
9608                 ZERO_STRUCT(r->out);
9609
9610                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9611                 if (_ptr_server_name) {
9612                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9613                 } else {
9614                         r->in.server_name = NULL;
9615                 }
9616                 if (r->in.server_name) {
9617                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9618                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9619                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9620                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9621                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9622                                 return 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));
9623                         }
9624                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9625                         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));
9626                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9627                 }
9628                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9629                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9630                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
9631                         return 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));
9632                 }
9633                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9634                 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));
9635                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
9636                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9637                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9638                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9639                         return 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));
9640                 }
9641                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9642                 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));
9643                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9644                         NDR_PULL_ALLOC(ndr, r->in.credentials);
9645                 }
9646                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9647                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
9648                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
9649                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9650                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9651                 ZERO_STRUCTP(r->out.return_credentials);
9652         }
9653         if (flags & NDR_OUT) {
9654                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9655                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
9656                 }
9657                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
9658                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
9659                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
9660                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
9661                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9662         }
9663         return NDR_ERR_SUCCESS;
9664 }
9665
9666 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
9667 {
9668         ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
9669         ndr->depth++;
9670         if (flags & NDR_SET_VALUES) {
9671                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9672         }
9673         if (flags & NDR_IN) {
9674                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
9675                 ndr->depth++;
9676                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9677                 ndr->depth++;
9678                 if (r->in.server_name) {
9679                         ndr_print_string(ndr, "server_name", r->in.server_name);
9680                 }
9681                 ndr->depth--;
9682                 ndr_print_string(ndr, "account_name", r->in.account_name);
9683                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
9684                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9685                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
9686                 ndr->depth++;
9687                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
9688                 ndr->depth--;
9689                 ndr->depth--;
9690         }
9691         if (flags & NDR_OUT) {
9692                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
9693                 ndr->depth++;
9694                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
9695                 ndr->depth++;
9696                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
9697                 ndr->depth--;
9698                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9699                 ndr->depth--;
9700         }
9701         ndr->depth--;
9702 }
9703
9704 static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
9705 {
9706         if (flags & NDR_IN) {
9707                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
9708                 if (r->in.server_name) {
9709                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9710                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9711                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
9712                         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));
9713                 }
9714                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9715                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9716                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
9717                 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));
9718                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
9719                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9720                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9721                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
9722                 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));
9723                 if (r->in.credential == NULL) {
9724                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9725                 }
9726                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9727                 if (r->in.new_password == NULL) {
9728                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9729                 }
9730                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
9731         }
9732         if (flags & NDR_OUT) {
9733                 if (r->out.return_authenticator == NULL) {
9734                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9735                 }
9736                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9737                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9738         }
9739         return NDR_ERR_SUCCESS;
9740 }
9741
9742 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
9743 {
9744         uint32_t _ptr_server_name;
9745         TALLOC_CTX *_mem_save_server_name_0;
9746         TALLOC_CTX *_mem_save_credential_0;
9747         TALLOC_CTX *_mem_save_return_authenticator_0;
9748         TALLOC_CTX *_mem_save_new_password_0;
9749         if (flags & NDR_IN) {
9750                 ZERO_STRUCT(r->out);
9751
9752                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
9753                 if (_ptr_server_name) {
9754                         NDR_PULL_ALLOC(ndr, r->in.server_name);
9755                 } else {
9756                         r->in.server_name = NULL;
9757                 }
9758                 if (r->in.server_name) {
9759                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9760                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
9761                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
9762                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
9763                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
9764                                 return 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));
9765                         }
9766                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
9767                         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));
9768                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
9769                 }
9770                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
9771                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
9772                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
9773                         return 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));
9774                 }
9775                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
9776                 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));
9777                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
9778                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
9779                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
9780                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
9781                         return 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));
9782                 }
9783                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
9784                 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));
9785                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9786                         NDR_PULL_ALLOC(ndr, r->in.credential);
9787                 }
9788                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9789                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
9790                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9791                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
9792                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9793                         NDR_PULL_ALLOC(ndr, r->in.new_password);
9794                 }
9795                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
9796                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
9797                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->in.new_password));
9798                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
9799                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9800                 ZERO_STRUCTP(r->out.return_authenticator);
9801         }
9802         if (flags & NDR_OUT) {
9803                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9804                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9805                 }
9806                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9807                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9808                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9809                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9810                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9811         }
9812         return NDR_ERR_SUCCESS;
9813 }
9814
9815 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
9816 {
9817         ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
9818         ndr->depth++;
9819         if (flags & NDR_SET_VALUES) {
9820                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9821         }
9822         if (flags & NDR_IN) {
9823                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
9824                 ndr->depth++;
9825                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9826                 ndr->depth++;
9827                 if (r->in.server_name) {
9828                         ndr_print_string(ndr, "server_name", r->in.server_name);
9829                 }
9830                 ndr->depth--;
9831                 ndr_print_string(ndr, "account_name", r->in.account_name);
9832                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
9833                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9834                 ndr_print_ptr(ndr, "credential", r->in.credential);
9835                 ndr->depth++;
9836                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9837                 ndr->depth--;
9838                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
9839                 ndr->depth++;
9840                 ndr_print_samr_Password(ndr, "new_password", r->in.new_password);
9841                 ndr->depth--;
9842                 ndr->depth--;
9843         }
9844         if (flags & NDR_OUT) {
9845                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
9846                 ndr->depth++;
9847                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9848                 ndr->depth++;
9849                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9850                 ndr->depth--;
9851                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9852                 ndr->depth--;
9853         }
9854         ndr->depth--;
9855 }
9856
9857 static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
9858 {
9859         if (flags & NDR_IN) {
9860                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9861                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9862                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9863                 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));
9864                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9865                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9866                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9867                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9868                 if (r->in.credential == NULL) {
9869                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9870                 }
9871                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9872                 if (r->in.return_authenticator == NULL) {
9873                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9874                 }
9875                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9876                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9877                 if (r->in.sequence_num == NULL) {
9878                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9879                 }
9880                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
9881                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9882         }
9883         if (flags & NDR_OUT) {
9884                 if (r->out.return_authenticator == NULL) {
9885                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9886                 }
9887                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9888                 if (r->out.sequence_num == NULL) {
9889                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9890                 }
9891                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
9892                 if (r->out.delta_enum_array == NULL) {
9893                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9894                 }
9895                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
9896                 if (*r->out.delta_enum_array) {
9897                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9898                 }
9899                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9900         }
9901         return NDR_ERR_SUCCESS;
9902 }
9903
9904 static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
9905 {
9906         uint32_t _ptr_delta_enum_array;
9907         TALLOC_CTX *_mem_save_credential_0;
9908         TALLOC_CTX *_mem_save_return_authenticator_0;
9909         TALLOC_CTX *_mem_save_sequence_num_0;
9910         TALLOC_CTX *_mem_save_delta_enum_array_0;
9911         TALLOC_CTX *_mem_save_delta_enum_array_1;
9912         if (flags & NDR_IN) {
9913                 ZERO_STRUCT(r->out);
9914
9915                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9916                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9917                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9918                         return 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));
9919                 }
9920                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9921                 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));
9922                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9923                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9924                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9925                         return 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));
9926                 }
9927                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9928                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9929                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9930                         NDR_PULL_ALLOC(ndr, r->in.credential);
9931                 }
9932                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9933                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
9934                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9935                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
9936                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9937                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9938                 }
9939                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9940                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9941                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9942                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9943                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9944                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9945                         NDR_PULL_ALLOC(ndr, r->in.sequence_num);
9946                 }
9947                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9948                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9949                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
9950                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9951                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9952                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9953                 *r->out.return_authenticator = *r->in.return_authenticator;
9954                 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9955                 *r->out.sequence_num = *r->in.sequence_num;
9956                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9957                 ZERO_STRUCTP(r->out.delta_enum_array);
9958         }
9959         if (flags & NDR_OUT) {
9960                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9961                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9962                 }
9963                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9964                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9965                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9966                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9967                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9968                         NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9969                 }
9970                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9971                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9972                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
9973                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9974                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9975                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9976                 }
9977                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9978                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9979                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
9980                 if (_ptr_delta_enum_array) {
9981                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
9982                 } else {
9983                         *r->out.delta_enum_array = NULL;
9984                 }
9985                 if (*r->out.delta_enum_array) {
9986                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
9987                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
9988                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9989                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
9990                 }
9991                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9992                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9993         }
9994         return NDR_ERR_SUCCESS;
9995 }
9996
9997 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
9998 {
9999         ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
10000         ndr->depth++;
10001         if (flags & NDR_SET_VALUES) {
10002                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10003         }
10004         if (flags & NDR_IN) {
10005                 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
10006                 ndr->depth++;
10007                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10008                 ndr_print_string(ndr, "computername", r->in.computername);
10009                 ndr_print_ptr(ndr, "credential", r->in.credential);
10010                 ndr->depth++;
10011                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10012                 ndr->depth--;
10013                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10014                 ndr->depth++;
10015                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10016                 ndr->depth--;
10017                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10018                 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
10019                 ndr->depth++;
10020                 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
10021                 ndr->depth--;
10022                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10023                 ndr->depth--;
10024         }
10025         if (flags & NDR_OUT) {
10026                 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
10027                 ndr->depth++;
10028                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10029                 ndr->depth++;
10030                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10031                 ndr->depth--;
10032                 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
10033                 ndr->depth++;
10034                 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
10035                 ndr->depth--;
10036                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10037                 ndr->depth++;
10038                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10039                 ndr->depth++;
10040                 if (*r->out.delta_enum_array) {
10041                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10042                 }
10043                 ndr->depth--;
10044                 ndr->depth--;
10045                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10046                 ndr->depth--;
10047         }
10048         ndr->depth--;
10049 }
10050
10051 static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
10052 {
10053         if (flags & NDR_IN) {
10054                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10055                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10056                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10057                 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));
10058                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10059                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10060                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10061                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10062                 if (r->in.credential == NULL) {
10063                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10064                 }
10065                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10066                 if (r->in.return_authenticator == NULL) {
10067                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10068                 }
10069                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10070                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10071                 if (r->in.sync_context == NULL) {
10072                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10073                 }
10074                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
10075                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10076         }
10077         if (flags & NDR_OUT) {
10078                 if (r->out.return_authenticator == NULL) {
10079                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10080                 }
10081                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10082                 if (r->out.sync_context == NULL) {
10083                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10084                 }
10085                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
10086                 if (r->out.delta_enum_array == NULL) {
10087                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10088                 }
10089                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10090                 if (*r->out.delta_enum_array) {
10091                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10092                 }
10093                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10094         }
10095         return NDR_ERR_SUCCESS;
10096 }
10097
10098 static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
10099 {
10100         uint32_t _ptr_delta_enum_array;
10101         TALLOC_CTX *_mem_save_credential_0;
10102         TALLOC_CTX *_mem_save_return_authenticator_0;
10103         TALLOC_CTX *_mem_save_sync_context_0;
10104         TALLOC_CTX *_mem_save_delta_enum_array_0;
10105         TALLOC_CTX *_mem_save_delta_enum_array_1;
10106         if (flags & NDR_IN) {
10107                 ZERO_STRUCT(r->out);
10108
10109                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10110                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10111                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10112                         return 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));
10113                 }
10114                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10115                 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));
10116                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10117                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10118                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10119                         return 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));
10120                 }
10121                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10122                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10123                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10124                         NDR_PULL_ALLOC(ndr, r->in.credential);
10125                 }
10126                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10127                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10128                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10129                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10130                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10131                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10132                 }
10133                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10134                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10135                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10136                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10137                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10138                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10139                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
10140                 }
10141                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10142                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
10143                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
10144                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10145                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10146                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10147                 *r->out.return_authenticator = *r->in.return_authenticator;
10148                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10149                 *r->out.sync_context = *r->in.sync_context;
10150                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10151                 ZERO_STRUCTP(r->out.delta_enum_array);
10152         }
10153         if (flags & NDR_OUT) {
10154                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10155                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10156                 }
10157                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10158                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10159                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10160                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10161                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10162                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
10163                 }
10164                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10165                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
10166                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
10167                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10168                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10169                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10170                 }
10171                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10172                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10173                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10174                 if (_ptr_delta_enum_array) {
10175                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
10176                 } else {
10177                         *r->out.delta_enum_array = NULL;
10178                 }
10179                 if (*r->out.delta_enum_array) {
10180                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
10181                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
10182                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10183                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
10184                 }
10185                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10186                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10187         }
10188         return NDR_ERR_SUCCESS;
10189 }
10190
10191 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
10192 {
10193         ndr_print_struct(ndr, name, "netr_DatabaseSync");
10194         ndr->depth++;
10195         if (flags & NDR_SET_VALUES) {
10196                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10197         }
10198         if (flags & NDR_IN) {
10199                 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
10200                 ndr->depth++;
10201                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10202                 ndr_print_string(ndr, "computername", r->in.computername);
10203                 ndr_print_ptr(ndr, "credential", r->in.credential);
10204                 ndr->depth++;
10205                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10206                 ndr->depth--;
10207                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10208                 ndr->depth++;
10209                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10210                 ndr->depth--;
10211                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10212                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
10213                 ndr->depth++;
10214                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
10215                 ndr->depth--;
10216                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10217                 ndr->depth--;
10218         }
10219         if (flags & NDR_OUT) {
10220                 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
10221                 ndr->depth++;
10222                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10223                 ndr->depth++;
10224                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10225                 ndr->depth--;
10226                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
10227                 ndr->depth++;
10228                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
10229                 ndr->depth--;
10230                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10231                 ndr->depth++;
10232                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10233                 ndr->depth++;
10234                 if (*r->out.delta_enum_array) {
10235                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10236                 }
10237                 ndr->depth--;
10238                 ndr->depth--;
10239                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10240                 ndr->depth--;
10241         }
10242         ndr->depth--;
10243 }
10244
10245 static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
10246 {
10247         if (flags & NDR_IN) {
10248                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10249                 if (r->in.logon_server) {
10250                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10251                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10252                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10253                         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));
10254                 }
10255                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10256                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10257                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10258                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10259                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10260                 if (r->in.return_authenticator == NULL) {
10261                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10262                 }
10263                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10264                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
10265                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
10266                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10267                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
10268         }
10269         if (flags & NDR_OUT) {
10270                 if (r->out.return_authenticator == NULL) {
10271                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10272                 }
10273                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10274                 if (r->out.buffer == NULL) {
10275                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10276                 }
10277                 {
10278                         struct ndr_push *_ndr_buffer;
10279                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10280                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10281                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
10282                 }
10283                 if (r->out.count_returned == NULL) {
10284                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10285                 }
10286                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
10287                 if (r->out.total_entries == NULL) {
10288                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10289                 }
10290                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
10291                 if (r->out.recordid == NULL) {
10292                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10293                 }
10294                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10295                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10296         }
10297         return NDR_ERR_SUCCESS;
10298 }
10299
10300 static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
10301 {
10302         uint32_t _ptr_logon_server;
10303         TALLOC_CTX *_mem_save_logon_server_0;
10304         TALLOC_CTX *_mem_save_return_authenticator_0;
10305         TALLOC_CTX *_mem_save_buffer_0;
10306         TALLOC_CTX *_mem_save_count_returned_0;
10307         TALLOC_CTX *_mem_save_total_entries_0;
10308         TALLOC_CTX *_mem_save_recordid_0;
10309         if (flags & NDR_IN) {
10310                 ZERO_STRUCT(r->out);
10311
10312                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10313                 if (_ptr_logon_server) {
10314                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10315                 } else {
10316                         r->in.logon_server = NULL;
10317                 }
10318                 if (r->in.logon_server) {
10319                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10320                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10321                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10322                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10323                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10324                                 return 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));
10325                         }
10326                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10327                         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));
10328                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10329                 }
10330                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10331                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10332                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10333                         return 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));
10334                 }
10335                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10336                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10337                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10338                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10339                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10340                 }
10341                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10342                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10343                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10344                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10345                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
10346                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
10347                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10348                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
10349                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10350                 *r->out.return_authenticator = *r->in.return_authenticator;
10351                 NDR_PULL_ALLOC(ndr, r->out.buffer);
10352                 ZERO_STRUCTP(r->out.buffer);
10353                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
10354                 ZERO_STRUCTP(r->out.count_returned);
10355                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
10356                 ZERO_STRUCTP(r->out.total_entries);
10357                 NDR_PULL_ALLOC(ndr, r->out.recordid);
10358                 ZERO_STRUCTP(r->out.recordid);
10359         }
10360         if (flags & NDR_OUT) {
10361                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10362                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10363                 }
10364                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10365                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10366                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10367                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10368                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10369                         NDR_PULL_ALLOC(ndr, r->out.buffer);
10370                 }
10371                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
10372                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
10373                 {
10374                         struct ndr_pull *_ndr_buffer;
10375                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10376                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10377                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
10378                 }
10379                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
10380                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10381                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
10382                 }
10383                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
10384                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
10385                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
10386                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
10387                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10388                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
10389                 }
10390                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
10391                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
10392                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
10393                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
10394                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10395                         NDR_PULL_ALLOC(ndr, r->out.recordid);
10396                 }
10397                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10398                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
10399                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10400                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
10401                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10402         }
10403         return NDR_ERR_SUCCESS;
10404 }
10405
10406 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
10407 {
10408         ndr_print_struct(ndr, name, "netr_AccountDeltas");
10409         ndr->depth++;
10410         if (flags & NDR_SET_VALUES) {
10411                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10412         }
10413         if (flags & NDR_IN) {
10414                 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
10415                 ndr->depth++;
10416                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10417                 ndr->depth++;
10418                 if (r->in.logon_server) {
10419                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10420                 }
10421                 ndr->depth--;
10422                 ndr_print_string(ndr, "computername", r->in.computername);
10423                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10424                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10425                 ndr->depth++;
10426                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10427                 ndr->depth--;
10428                 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
10429                 ndr_print_uint32(ndr, "count", r->in.count);
10430                 ndr_print_uint32(ndr, "level", r->in.level);
10431                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
10432                 ndr->depth--;
10433         }
10434         if (flags & NDR_OUT) {
10435                 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
10436                 ndr->depth++;
10437                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10438                 ndr->depth++;
10439                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10440                 ndr->depth--;
10441                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
10442                 ndr->depth++;
10443                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
10444                 ndr->depth--;
10445                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
10446                 ndr->depth++;
10447                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
10448                 ndr->depth--;
10449                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
10450                 ndr->depth++;
10451                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
10452                 ndr->depth--;
10453                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
10454                 ndr->depth++;
10455                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
10456                 ndr->depth--;
10457                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10458                 ndr->depth--;
10459         }
10460         ndr->depth--;
10461 }
10462
10463 static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
10464 {
10465         if (flags & NDR_IN) {
10466                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10467                 if (r->in.logon_server) {
10468                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10469                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10470                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10471                         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));
10472                 }
10473                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10474                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10475                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10476                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10477                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10478                 if (r->in.return_authenticator == NULL) {
10479                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10480                 }
10481                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10482                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
10483                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10484                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
10485                 if (r->in.recordid == NULL) {
10486                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10487                 }
10488                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
10489         }
10490         if (flags & NDR_OUT) {
10491                 if (r->out.return_authenticator == NULL) {
10492                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10493                 }
10494                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10495                 if (r->out.buffer == NULL) {
10496                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10497                 }
10498                 {
10499                         struct ndr_push *_ndr_buffer;
10500                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10501                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10502                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
10503                 }
10504                 if (r->out.count_returned == NULL) {
10505                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10506                 }
10507                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
10508                 if (r->out.total_entries == NULL) {
10509                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10510                 }
10511                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
10512                 if (r->out.next_reference == NULL) {
10513                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10514                 }
10515                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
10516                 if (r->out.recordid == NULL) {
10517                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10518                 }
10519                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10520                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10521         }
10522         return NDR_ERR_SUCCESS;
10523 }
10524
10525 static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
10526 {
10527         uint32_t _ptr_logon_server;
10528         TALLOC_CTX *_mem_save_logon_server_0;
10529         TALLOC_CTX *_mem_save_return_authenticator_0;
10530         TALLOC_CTX *_mem_save_buffer_0;
10531         TALLOC_CTX *_mem_save_count_returned_0;
10532         TALLOC_CTX *_mem_save_total_entries_0;
10533         TALLOC_CTX *_mem_save_next_reference_0;
10534         TALLOC_CTX *_mem_save_recordid_0;
10535         if (flags & NDR_IN) {
10536                 ZERO_STRUCT(r->out);
10537
10538                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10539                 if (_ptr_logon_server) {
10540                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10541                 } else {
10542                         r->in.logon_server = NULL;
10543                 }
10544                 if (r->in.logon_server) {
10545                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10546                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10547                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10548                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10549                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10550                                 return 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));
10551                         }
10552                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10553                         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));
10554                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10555                 }
10556                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10557                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10558                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10559                         return 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));
10560                 }
10561                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10562                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10563                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10564                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10565                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10566                 }
10567                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10568                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10569                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10570                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10571                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
10572                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10573                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
10574                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10575                         NDR_PULL_ALLOC(ndr, r->in.recordid);
10576                 }
10577                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10578                 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
10579                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
10580                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
10581                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10582                 *r->out.return_authenticator = *r->in.return_authenticator;
10583                 NDR_PULL_ALLOC(ndr, r->out.buffer);
10584                 ZERO_STRUCTP(r->out.buffer);
10585                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
10586                 ZERO_STRUCTP(r->out.count_returned);
10587                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
10588                 ZERO_STRUCTP(r->out.total_entries);
10589                 NDR_PULL_ALLOC(ndr, r->out.next_reference);
10590                 ZERO_STRUCTP(r->out.next_reference);
10591                 NDR_PULL_ALLOC(ndr, r->out.recordid);
10592                 *r->out.recordid = *r->in.recordid;
10593         }
10594         if (flags & NDR_OUT) {
10595                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10596                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10597                 }
10598                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10599                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10600                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10601                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10602                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10603                         NDR_PULL_ALLOC(ndr, r->out.buffer);
10604                 }
10605                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
10606                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
10607                 {
10608                         struct ndr_pull *_ndr_buffer;
10609                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
10610                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
10611                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
10612                 }
10613                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
10614                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10615                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
10616                 }
10617                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
10618                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
10619                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
10620                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
10621                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10622                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
10623                 }
10624                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
10625                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
10626                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
10627                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
10628                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10629                         NDR_PULL_ALLOC(ndr, r->out.next_reference);
10630                 }
10631                 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
10632                 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
10633                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
10634                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
10635                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10636                         NDR_PULL_ALLOC(ndr, r->out.recordid);
10637                 }
10638                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
10639                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
10640                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
10641                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
10642                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10643         }
10644         return NDR_ERR_SUCCESS;
10645 }
10646
10647 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
10648 {
10649         ndr_print_struct(ndr, name, "netr_AccountSync");
10650         ndr->depth++;
10651         if (flags & NDR_SET_VALUES) {
10652                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10653         }
10654         if (flags & NDR_IN) {
10655                 ndr_print_struct(ndr, "in", "netr_AccountSync");
10656                 ndr->depth++;
10657                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10658                 ndr->depth++;
10659                 if (r->in.logon_server) {
10660                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10661                 }
10662                 ndr->depth--;
10663                 ndr_print_string(ndr, "computername", r->in.computername);
10664                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10665                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10666                 ndr->depth++;
10667                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10668                 ndr->depth--;
10669                 ndr_print_uint32(ndr, "reference", r->in.reference);
10670                 ndr_print_uint32(ndr, "level", r->in.level);
10671                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
10672                 ndr_print_ptr(ndr, "recordid", r->in.recordid);
10673                 ndr->depth++;
10674                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
10675                 ndr->depth--;
10676                 ndr->depth--;
10677         }
10678         if (flags & NDR_OUT) {
10679                 ndr_print_struct(ndr, "out", "netr_AccountSync");
10680                 ndr->depth++;
10681                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10682                 ndr->depth++;
10683                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10684                 ndr->depth--;
10685                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
10686                 ndr->depth++;
10687                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
10688                 ndr->depth--;
10689                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
10690                 ndr->depth++;
10691                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
10692                 ndr->depth--;
10693                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
10694                 ndr->depth++;
10695                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
10696                 ndr->depth--;
10697                 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
10698                 ndr->depth++;
10699                 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
10700                 ndr->depth--;
10701                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
10702                 ndr->depth++;
10703                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
10704                 ndr->depth--;
10705                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10706                 ndr->depth--;
10707         }
10708         ndr->depth--;
10709 }
10710
10711 static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
10712 {
10713         if (flags & NDR_IN) {
10714                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10715                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10716                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10717                 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));
10718                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
10719                 if (r->in.domainname) {
10720                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10721                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10722                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10723                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10724                 }
10725         }
10726         if (flags & NDR_OUT) {
10727                 if (r->out.dcname == NULL) {
10728                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10729                 }
10730                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
10731                 if (*r->out.dcname) {
10732                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10733                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10734                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10735                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10736                 }
10737                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10738         }
10739         return NDR_ERR_SUCCESS;
10740 }
10741
10742 static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
10743 {
10744         uint32_t _ptr_domainname;
10745         uint32_t _ptr_dcname;
10746         TALLOC_CTX *_mem_save_domainname_0;
10747         TALLOC_CTX *_mem_save_dcname_0;
10748         TALLOC_CTX *_mem_save_dcname_1;
10749         if (flags & NDR_IN) {
10750                 ZERO_STRUCT(r->out);
10751
10752                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10753                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10754                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10755                         return 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));
10756                 }
10757                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10758                 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));
10759                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
10760                 if (_ptr_domainname) {
10761                         NDR_PULL_ALLOC(ndr, r->in.domainname);
10762                 } else {
10763                         r->in.domainname = NULL;
10764                 }
10765                 if (r->in.domainname) {
10766                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10767                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
10768                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
10769                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
10770                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
10771                                 return 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));
10772                         }
10773                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
10774                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
10775                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
10776                 }
10777                 NDR_PULL_ALLOC(ndr, r->out.dcname);
10778                 ZERO_STRUCTP(r->out.dcname);
10779         }
10780         if (flags & NDR_OUT) {
10781                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10782                         NDR_PULL_ALLOC(ndr, r->out.dcname);
10783                 }
10784                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10785                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
10786                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
10787                 if (_ptr_dcname) {
10788                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
10789                 } else {
10790                         *r->out.dcname = NULL;
10791                 }
10792                 if (*r->out.dcname) {
10793                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
10794                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
10795                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
10796                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
10797                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
10798                                 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));
10799                         }
10800                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
10801                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
10802                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
10803                 }
10804                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
10805                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10806         }
10807         return NDR_ERR_SUCCESS;
10808 }
10809
10810 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
10811 {
10812         ndr_print_struct(ndr, name, "netr_GetDcName");
10813         ndr->depth++;
10814         if (flags & NDR_SET_VALUES) {
10815                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10816         }
10817         if (flags & NDR_IN) {
10818                 ndr_print_struct(ndr, "in", "netr_GetDcName");
10819                 ndr->depth++;
10820                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10821                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
10822                 ndr->depth++;
10823                 if (r->in.domainname) {
10824                         ndr_print_string(ndr, "domainname", r->in.domainname);
10825                 }
10826                 ndr->depth--;
10827                 ndr->depth--;
10828         }
10829         if (flags & NDR_OUT) {
10830                 ndr_print_struct(ndr, "out", "netr_GetDcName");
10831                 ndr->depth++;
10832                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
10833                 ndr->depth++;
10834                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
10835                 ndr->depth++;
10836                 if (*r->out.dcname) {
10837                         ndr_print_string(ndr, "dcname", *r->out.dcname);
10838                 }
10839                 ndr->depth--;
10840                 ndr->depth--;
10841                 ndr_print_WERROR(ndr, "result", r->out.result);
10842                 ndr->depth--;
10843         }
10844         ndr->depth--;
10845 }
10846
10847 static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
10848 {
10849         if (flags & NDR_IN) {
10850                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10851                 if (r->in.logon_server) {
10852                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10853                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10854                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10855                         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));
10856                 }
10857                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
10858                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10859         }
10860         if (flags & NDR_OUT) {
10861                 if (r->out.info == NULL) {
10862                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10863                 }
10864                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
10865                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10866                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10867         }
10868         return NDR_ERR_SUCCESS;
10869 }
10870
10871 static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
10872 {
10873         uint32_t _ptr_logon_server;
10874         TALLOC_CTX *_mem_save_logon_server_0;
10875         TALLOC_CTX *_mem_save_info_0;
10876         if (flags & NDR_IN) {
10877                 ZERO_STRUCT(r->out);
10878
10879                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10880                 if (_ptr_logon_server) {
10881                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10882                 } else {
10883                         r->in.logon_server = NULL;
10884                 }
10885                 if (r->in.logon_server) {
10886                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10887                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10888                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10889                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10890                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10891                                 return 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));
10892                         }
10893                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10894                         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));
10895                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10896                 }
10897                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
10898                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10899                 NDR_PULL_ALLOC(ndr, r->out.info);
10900                 ZERO_STRUCTP(r->out.info);
10901         }
10902         if (flags & NDR_OUT) {
10903                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10904                         NDR_PULL_ALLOC(ndr, r->out.info);
10905                 }
10906                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10907                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
10908                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
10909                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10910                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
10911                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10912         }
10913         return NDR_ERR_SUCCESS;
10914 }
10915
10916 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
10917 {
10918         ndr_print_struct(ndr, name, "netr_LogonControl");
10919         ndr->depth++;
10920         if (flags & NDR_SET_VALUES) {
10921                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10922         }
10923         if (flags & NDR_IN) {
10924                 ndr_print_struct(ndr, "in", "netr_LogonControl");
10925                 ndr->depth++;
10926                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10927                 ndr->depth++;
10928                 if (r->in.logon_server) {
10929                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10930                 }
10931                 ndr->depth--;
10932                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
10933                 ndr_print_uint32(ndr, "level", r->in.level);
10934                 ndr->depth--;
10935         }
10936         if (flags & NDR_OUT) {
10937                 ndr_print_struct(ndr, "out", "netr_LogonControl");
10938                 ndr->depth++;
10939                 ndr_print_ptr(ndr, "info", r->out.info);
10940                 ndr->depth++;
10941                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
10942                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "info", r->out.info);
10943                 ndr->depth--;
10944                 ndr_print_WERROR(ndr, "result", r->out.result);
10945                 ndr->depth--;
10946         }
10947         ndr->depth--;
10948 }
10949
10950 static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
10951 {
10952         if (flags & NDR_IN) {
10953                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10954                 if (r->in.logon_server) {
10955                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10956                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10957                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10958                         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));
10959                 }
10960                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
10961                 if (r->in.domainname) {
10962                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10963                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10964                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10965                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10966                 }
10967         }
10968         if (flags & NDR_OUT) {
10969                 if (r->out.dcname == NULL) {
10970                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10971                 }
10972                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
10973                 if (*r->out.dcname) {
10974                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10975                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10976                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10977                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10978                 }
10979                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10980         }
10981         return NDR_ERR_SUCCESS;
10982 }
10983
10984 static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
10985 {
10986         uint32_t _ptr_logon_server;
10987         uint32_t _ptr_domainname;
10988         uint32_t _ptr_dcname;
10989         TALLOC_CTX *_mem_save_logon_server_0;
10990         TALLOC_CTX *_mem_save_domainname_0;
10991         TALLOC_CTX *_mem_save_dcname_0;
10992         TALLOC_CTX *_mem_save_dcname_1;
10993         if (flags & NDR_IN) {
10994                 ZERO_STRUCT(r->out);
10995
10996                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10997                 if (_ptr_logon_server) {
10998                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10999                 } else {
11000                         r->in.logon_server = NULL;
11001                 }
11002                 if (r->in.logon_server) {
11003                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11004                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11005                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11006                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11007                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11008                                 return 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));
11009                         }
11010                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11011                         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));
11012                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11013                 }
11014                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
11015                 if (_ptr_domainname) {
11016                         NDR_PULL_ALLOC(ndr, r->in.domainname);
11017                 } else {
11018                         r->in.domainname = NULL;
11019                 }
11020                 if (r->in.domainname) {
11021                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11022                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
11023                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
11024                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
11025                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
11026                                 return 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));
11027                         }
11028                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
11029                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
11030                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
11031                 }
11032                 NDR_PULL_ALLOC(ndr, r->out.dcname);
11033                 ZERO_STRUCTP(r->out.dcname);
11034         }
11035         if (flags & NDR_OUT) {
11036                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11037                         NDR_PULL_ALLOC(ndr, r->out.dcname);
11038                 }
11039                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
11040                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
11041                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
11042                 if (_ptr_dcname) {
11043                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
11044                 } else {
11045                         *r->out.dcname = NULL;
11046                 }
11047                 if (*r->out.dcname) {
11048                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
11049                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
11050                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
11051                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
11052                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
11053                                 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));
11054                         }
11055                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
11056                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
11057                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
11058                 }
11059                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
11060                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11061         }
11062         return NDR_ERR_SUCCESS;
11063 }
11064
11065 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
11066 {
11067         ndr_print_struct(ndr, name, "netr_GetAnyDCName");
11068         ndr->depth++;
11069         if (flags & NDR_SET_VALUES) {
11070                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11071         }
11072         if (flags & NDR_IN) {
11073                 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
11074                 ndr->depth++;
11075                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11076                 ndr->depth++;
11077                 if (r->in.logon_server) {
11078                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11079                 }
11080                 ndr->depth--;
11081                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
11082                 ndr->depth++;
11083                 if (r->in.domainname) {
11084                         ndr_print_string(ndr, "domainname", r->in.domainname);
11085                 }
11086                 ndr->depth--;
11087                 ndr->depth--;
11088         }
11089         if (flags & NDR_OUT) {
11090                 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
11091                 ndr->depth++;
11092                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
11093                 ndr->depth++;
11094                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
11095                 ndr->depth++;
11096                 if (*r->out.dcname) {
11097                         ndr_print_string(ndr, "dcname", *r->out.dcname);
11098                 }
11099                 ndr->depth--;
11100                 ndr->depth--;
11101                 ndr_print_WERROR(ndr, "result", r->out.result);
11102                 ndr->depth--;
11103         }
11104         ndr->depth--;
11105 }
11106
11107 static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
11108 {
11109         if (flags & NDR_IN) {
11110                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11111                 if (r->in.logon_server) {
11112                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11113                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11114                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11115                         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));
11116                 }
11117                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
11118                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11119                 if (r->in.data == NULL) {
11120                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11121                 }
11122                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
11123                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
11124         }
11125         if (flags & NDR_OUT) {
11126                 if (r->out.query == NULL) {
11127                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11128                 }
11129                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
11130                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11131                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11132         }
11133         return NDR_ERR_SUCCESS;
11134 }
11135
11136 static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
11137 {
11138         uint32_t _ptr_logon_server;
11139         TALLOC_CTX *_mem_save_logon_server_0;
11140         TALLOC_CTX *_mem_save_data_0;
11141         TALLOC_CTX *_mem_save_query_0;
11142         if (flags & NDR_IN) {
11143                 ZERO_STRUCT(r->out);
11144
11145                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11146                 if (_ptr_logon_server) {
11147                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
11148                 } else {
11149                         r->in.logon_server = NULL;
11150                 }
11151                 if (r->in.logon_server) {
11152                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11153                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11154                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11155                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11156                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11157                                 return 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));
11158                         }
11159                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11160                         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));
11161                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11162                 }
11163                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
11164                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11165                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11166                         NDR_PULL_ALLOC(ndr, r->in.data);
11167                 }
11168                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
11169                 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
11170                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
11171                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
11172                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
11173                 NDR_PULL_ALLOC(ndr, r->out.query);
11174                 ZERO_STRUCTP(r->out.query);
11175         }
11176         if (flags & NDR_OUT) {
11177                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11178                         NDR_PULL_ALLOC(ndr, r->out.query);
11179                 }
11180                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
11181                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
11182                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
11183                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11184                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
11185                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11186         }
11187         return NDR_ERR_SUCCESS;
11188 }
11189
11190 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
11191 {
11192         ndr_print_struct(ndr, name, "netr_LogonControl2");
11193         ndr->depth++;
11194         if (flags & NDR_SET_VALUES) {
11195                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11196         }
11197         if (flags & NDR_IN) {
11198                 ndr_print_struct(ndr, "in", "netr_LogonControl2");
11199                 ndr->depth++;
11200                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11201                 ndr->depth++;
11202                 if (r->in.logon_server) {
11203                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11204                 }
11205                 ndr->depth--;
11206                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
11207                 ndr_print_uint32(ndr, "level", r->in.level);
11208                 ndr_print_ptr(ndr, "data", r->in.data);
11209                 ndr->depth++;
11210                 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
11211                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
11212                 ndr->depth--;
11213                 ndr->depth--;
11214         }
11215         if (flags & NDR_OUT) {
11216                 ndr_print_struct(ndr, "out", "netr_LogonControl2");
11217                 ndr->depth++;
11218                 ndr_print_ptr(ndr, "query", r->out.query);
11219                 ndr->depth++;
11220                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
11221                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
11222                 ndr->depth--;
11223                 ndr_print_WERROR(ndr, "result", r->out.result);
11224                 ndr->depth--;
11225         }
11226         ndr->depth--;
11227 }
11228
11229 static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
11230 {
11231         if (flags & NDR_IN) {
11232                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11233                 if (r->in.server_name) {
11234                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11235                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11236                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11237                         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));
11238                 }
11239                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11240                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11241                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11242                 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));
11243                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11244                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11245                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11246                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11247                 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));
11248                 if (r->in.credentials == NULL) {
11249                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11250                 }
11251                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11252                 if (r->in.negotiate_flags == NULL) {
11253                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11254                 }
11255                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
11256         }
11257         if (flags & NDR_OUT) {
11258                 if (r->out.return_credentials == NULL) {
11259                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11260                 }
11261                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
11262                 if (r->out.negotiate_flags == NULL) {
11263                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11264                 }
11265                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
11266                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11267         }
11268         return NDR_ERR_SUCCESS;
11269 }
11270
11271 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
11272 {
11273         uint32_t _ptr_server_name;
11274         TALLOC_CTX *_mem_save_server_name_0;
11275         TALLOC_CTX *_mem_save_credentials_0;
11276         TALLOC_CTX *_mem_save_return_credentials_0;
11277         TALLOC_CTX *_mem_save_negotiate_flags_0;
11278         if (flags & NDR_IN) {
11279                 ZERO_STRUCT(r->out);
11280
11281                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11282                 if (_ptr_server_name) {
11283                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11284                 } else {
11285                         r->in.server_name = NULL;
11286                 }
11287                 if (r->in.server_name) {
11288                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11289                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11290                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11291                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11292                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11293                                 return 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));
11294                         }
11295                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11296                         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));
11297                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11298                 }
11299                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11300                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11301                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11302                         return 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));
11303                 }
11304                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11305                 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));
11306                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11307                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11308                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11309                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11310                         return 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));
11311                 }
11312                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11313                 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));
11314                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11315                         NDR_PULL_ALLOC(ndr, r->in.credentials);
11316                 }
11317                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11318                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
11319                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11320                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11321                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11322                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
11323                 }
11324                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11325                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11326                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
11327                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11328                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
11329                 ZERO_STRUCTP(r->out.return_credentials);
11330                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11331                 *r->out.negotiate_flags = *r->in.negotiate_flags;
11332         }
11333         if (flags & NDR_OUT) {
11334                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11335                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
11336                 }
11337                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11338                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
11339                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
11340                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11341                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11342                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11343                 }
11344                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11345                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11346                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
11347                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11348                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11349         }
11350         return NDR_ERR_SUCCESS;
11351 }
11352
11353 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
11354 {
11355         ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
11356         ndr->depth++;
11357         if (flags & NDR_SET_VALUES) {
11358                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11359         }
11360         if (flags & NDR_IN) {
11361                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
11362                 ndr->depth++;
11363                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11364                 ndr->depth++;
11365                 if (r->in.server_name) {
11366                         ndr_print_string(ndr, "server_name", r->in.server_name);
11367                 }
11368                 ndr->depth--;
11369                 ndr_print_string(ndr, "account_name", r->in.account_name);
11370                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
11371                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11372                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
11373                 ndr->depth++;
11374                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
11375                 ndr->depth--;
11376                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
11377                 ndr->depth++;
11378                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
11379                 ndr->depth--;
11380                 ndr->depth--;
11381         }
11382         if (flags & NDR_OUT) {
11383                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
11384                 ndr->depth++;
11385                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
11386                 ndr->depth++;
11387                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
11388                 ndr->depth--;
11389                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
11390                 ndr->depth++;
11391                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
11392                 ndr->depth--;
11393                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11394                 ndr->depth--;
11395         }
11396         ndr->depth--;
11397 }
11398
11399 static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
11400 {
11401         if (flags & NDR_IN) {
11402                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11403                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11404                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11405                 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));
11406                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11407                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11408                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11409                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11410                 if (r->in.credential == NULL) {
11411                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11412                 }
11413                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11414                 if (r->in.return_authenticator == NULL) {
11415                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11416                 }
11417                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11418                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
11419                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.restart_state));
11420                 if (r->in.sync_context == NULL) {
11421                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11422                 }
11423                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
11424                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
11425         }
11426         if (flags & NDR_OUT) {
11427                 if (r->out.return_authenticator == NULL) {
11428                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11429                 }
11430                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11431                 if (r->out.sync_context == NULL) {
11432                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11433                 }
11434                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
11435                 if (r->out.delta_enum_array == NULL) {
11436                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11437                 }
11438                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
11439                 if (*r->out.delta_enum_array) {
11440                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
11441                 }
11442                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11443         }
11444         return NDR_ERR_SUCCESS;
11445 }
11446
11447 static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
11448 {
11449         uint32_t _ptr_delta_enum_array;
11450         TALLOC_CTX *_mem_save_credential_0;
11451         TALLOC_CTX *_mem_save_return_authenticator_0;
11452         TALLOC_CTX *_mem_save_sync_context_0;
11453         TALLOC_CTX *_mem_save_delta_enum_array_0;
11454         TALLOC_CTX *_mem_save_delta_enum_array_1;
11455         if (flags & NDR_IN) {
11456                 ZERO_STRUCT(r->out);
11457
11458                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11459                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11460                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11461                         return 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));
11462                 }
11463                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11464                 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));
11465                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
11466                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
11467                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
11468                         return 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));
11469                 }
11470                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
11471                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
11472                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11473                         NDR_PULL_ALLOC(ndr, r->in.credential);
11474                 }
11475                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
11476                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
11477                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11478                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
11479                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11480                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
11481                 }
11482                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11483                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11484                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11485                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11486                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
11487                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.restart_state));
11488                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11489                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
11490                 }
11491                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
11492                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
11493                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
11494                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
11495                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
11496                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11497                 *r->out.return_authenticator = *r->in.return_authenticator;
11498                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
11499                 *r->out.sync_context = *r->in.sync_context;
11500                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11501                 ZERO_STRUCTP(r->out.delta_enum_array);
11502         }
11503         if (flags & NDR_OUT) {
11504                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11505                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11506                 }
11507                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11508                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11509                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11510                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11511                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11512                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
11513                 }
11514                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
11515                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
11516                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
11517                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
11518                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11519                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11520                 }
11521                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11522                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
11523                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
11524                 if (_ptr_delta_enum_array) {
11525                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
11526                 } else {
11527                         *r->out.delta_enum_array = NULL;
11528                 }
11529                 if (*r->out.delta_enum_array) {
11530                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
11531                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
11532                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
11533                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
11534                 }
11535                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
11536                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11537         }
11538         return NDR_ERR_SUCCESS;
11539 }
11540
11541 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
11542 {
11543         ndr_print_struct(ndr, name, "netr_DatabaseSync2");
11544         ndr->depth++;
11545         if (flags & NDR_SET_VALUES) {
11546                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11547         }
11548         if (flags & NDR_IN) {
11549                 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
11550                 ndr->depth++;
11551                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11552                 ndr_print_string(ndr, "computername", r->in.computername);
11553                 ndr_print_ptr(ndr, "credential", r->in.credential);
11554                 ndr->depth++;
11555                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
11556                 ndr->depth--;
11557                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
11558                 ndr->depth++;
11559                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
11560                 ndr->depth--;
11561                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
11562                 ndr_print_uint16(ndr, "restart_state", r->in.restart_state);
11563                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
11564                 ndr->depth++;
11565                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
11566                 ndr->depth--;
11567                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
11568                 ndr->depth--;
11569         }
11570         if (flags & NDR_OUT) {
11571                 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
11572                 ndr->depth++;
11573                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
11574                 ndr->depth++;
11575                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
11576                 ndr->depth--;
11577                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
11578                 ndr->depth++;
11579                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
11580                 ndr->depth--;
11581                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
11582                 ndr->depth++;
11583                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
11584                 ndr->depth++;
11585                 if (*r->out.delta_enum_array) {
11586                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
11587                 }
11588                 ndr->depth--;
11589                 ndr->depth--;
11590                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11591                 ndr->depth--;
11592         }
11593         ndr->depth--;
11594 }
11595
11596 static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
11597 {
11598         if (flags & NDR_IN) {
11599                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11600                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11601                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11602                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.logon_server, ndr_charset_length(r->in.logon_server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11603                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11604                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11605                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
11606                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11607                 if (r->in.credential == NULL) {
11608                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11609                 }
11610                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11611                 if (r->in.return_authenticator == NULL) {
11612                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11613                 }
11614                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11615                 {
11616                         struct ndr_push *_ndr_change_log_entry;
11617                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_change_log_entry, 4, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->flags)));
11618                         NDR_CHECK(ndr_push_netr_ChangeLogEntry(_ndr_change_log_entry, NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
11619                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_change_log_entry, 4, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->flags)));
11620                 }
11621                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->flags)));
11622         }
11623         if (flags & NDR_OUT) {
11624                 if (r->out.return_authenticator == NULL) {
11625                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11626                 }
11627                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11628                 if (r->out.delta_enum_array == NULL) {
11629                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11630                 }
11631                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
11632                 if (*r->out.delta_enum_array) {
11633                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
11634                 }
11635                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11636         }
11637         return NDR_ERR_SUCCESS;
11638 }
11639
11640 static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
11641 {
11642         uint32_t _ptr_delta_enum_array;
11643         TALLOC_CTX *_mem_save_credential_0;
11644         TALLOC_CTX *_mem_save_return_authenticator_0;
11645         TALLOC_CTX *_mem_save_delta_enum_array_0;
11646         TALLOC_CTX *_mem_save_delta_enum_array_1;
11647         if (flags & NDR_IN) {
11648                 ZERO_STRUCT(r->out);
11649
11650                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11651                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11652                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11653                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
11654                 }
11655                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11656                 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));
11657                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
11658                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
11659                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
11660                         return 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));
11661                 }
11662                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
11663                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
11664                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11665                         NDR_PULL_ALLOC(ndr, r->in.credential);
11666                 }
11667                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
11668                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
11669                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11670                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
11671                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11672                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
11673                 }
11674                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11675                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11676                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11677                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11678                 {
11679                         struct ndr_pull *_ndr_change_log_entry;
11680                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_change_log_entry, 4, r->in.change_log_entry_size));
11681                         NDR_CHECK(ndr_pull_netr_ChangeLogEntry(_ndr_change_log_entry, NDR_SCALARS|NDR_BUFFERS, &r->in.change_log_entry));
11682                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_change_log_entry, 4, r->in.change_log_entry_size));
11683                 }
11684                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
11685                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11686                 *r->out.return_authenticator = *r->in.return_authenticator;
11687                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11688                 ZERO_STRUCTP(r->out.delta_enum_array);
11689         }
11690         if (flags & NDR_OUT) {
11691                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11692                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11693                 }
11694                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11695                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11696                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11697                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11698                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11699                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
11700                 }
11701                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
11702                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
11703                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
11704                 if (_ptr_delta_enum_array) {
11705                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
11706                 } else {
11707                         *r->out.delta_enum_array = NULL;
11708                 }
11709                 if (*r->out.delta_enum_array) {
11710                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
11711                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
11712                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
11713                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
11714                 }
11715                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
11716                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11717         }
11718         return NDR_ERR_SUCCESS;
11719 }
11720
11721 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
11722 {
11723         ndr_print_struct(ndr, name, "netr_DatabaseRedo");
11724         ndr->depth++;
11725         if (flags & NDR_SET_VALUES) {
11726                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11727         }
11728         if (flags & NDR_IN) {
11729                 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
11730                 ndr->depth++;
11731                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
11732                 ndr_print_string(ndr, "computername", r->in.computername);
11733                 ndr_print_ptr(ndr, "credential", r->in.credential);
11734                 ndr->depth++;
11735                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
11736                 ndr->depth--;
11737                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
11738                 ndr->depth++;
11739                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
11740                 ndr->depth--;
11741                 ndr_print_netr_ChangeLogEntry(ndr, "change_log_entry", &r->in.change_log_entry);
11742                 ndr_print_uint32(ndr, "change_log_entry_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_netr_ChangeLogEntry(&r->in.change_log_entry, ndr->flags):r->in.change_log_entry_size);
11743                 ndr->depth--;
11744         }
11745         if (flags & NDR_OUT) {
11746                 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
11747                 ndr->depth++;
11748                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
11749                 ndr->depth++;
11750                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
11751                 ndr->depth--;
11752                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
11753                 ndr->depth++;
11754                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
11755                 ndr->depth++;
11756                 if (*r->out.delta_enum_array) {
11757                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
11758                 }
11759                 ndr->depth--;
11760                 ndr->depth--;
11761                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11762                 ndr->depth--;
11763         }
11764         ndr->depth--;
11765 }
11766
11767 static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
11768 {
11769         if (flags & NDR_IN) {
11770                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
11771                 if (r->in.logon_server) {
11772                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11773                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11774                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
11775                         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));
11776                 }
11777                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
11778                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11779                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
11780                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
11781         }
11782         if (flags & NDR_OUT) {
11783                 if (r->out.query == NULL) {
11784                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11785                 }
11786                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
11787                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11788                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11789         }
11790         return NDR_ERR_SUCCESS;
11791 }
11792
11793 static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
11794 {
11795         uint32_t _ptr_logon_server;
11796         TALLOC_CTX *_mem_save_logon_server_0;
11797         TALLOC_CTX *_mem_save_query_0;
11798         if (flags & NDR_IN) {
11799                 ZERO_STRUCT(r->out);
11800
11801                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
11802                 if (_ptr_logon_server) {
11803                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
11804                 } else {
11805                         r->in.logon_server = NULL;
11806                 }
11807                 if (r->in.logon_server) {
11808                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
11809                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
11810                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
11811                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
11812                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
11813                                 return 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));
11814                         }
11815                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
11816                         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));
11817                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
11818                 }
11819                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
11820                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11821                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
11822                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
11823                 NDR_PULL_ALLOC(ndr, r->out.query);
11824                 ZERO_STRUCTP(r->out.query);
11825         }
11826         if (flags & NDR_OUT) {
11827                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11828                         NDR_PULL_ALLOC(ndr, r->out.query);
11829                 }
11830                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
11831                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
11832                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
11833                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
11834                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
11835                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11836         }
11837         return NDR_ERR_SUCCESS;
11838 }
11839
11840 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
11841 {
11842         ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
11843         ndr->depth++;
11844         if (flags & NDR_SET_VALUES) {
11845                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11846         }
11847         if (flags & NDR_IN) {
11848                 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
11849                 ndr->depth++;
11850                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
11851                 ndr->depth++;
11852                 if (r->in.logon_server) {
11853                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11854                 }
11855                 ndr->depth--;
11856                 ndr_print_uint32(ndr, "function_code", r->in.function_code);
11857                 ndr_print_uint32(ndr, "level", r->in.level);
11858                 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
11859                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
11860                 ndr->depth--;
11861         }
11862         if (flags & NDR_OUT) {
11863                 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
11864                 ndr->depth++;
11865                 ndr_print_ptr(ndr, "query", r->out.query);
11866                 ndr->depth++;
11867                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
11868                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
11869                 ndr->depth--;
11870                 ndr_print_WERROR(ndr, "result", r->out.result);
11871                 ndr->depth--;
11872         }
11873         ndr->depth--;
11874 }
11875
11876 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
11877 {
11878         if (flags & NDR_IN) {
11879                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11880                 if (r->in.server_name) {
11881                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11882                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11883                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11884                         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));
11885                 }
11886         }
11887         if (flags & NDR_OUT) {
11888                 if (r->out.trusted_domains_blob == NULL) {
11889                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11890                 }
11891                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
11892                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11893         }
11894         return NDR_ERR_SUCCESS;
11895 }
11896
11897 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r)
11898 {
11899         uint32_t _ptr_server_name;
11900         TALLOC_CTX *_mem_save_server_name_0;
11901         TALLOC_CTX *_mem_save_trusted_domains_blob_0;
11902         if (flags & NDR_IN) {
11903                 ZERO_STRUCT(r->out);
11904
11905                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11906                 if (_ptr_server_name) {
11907                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11908                 } else {
11909                         r->in.server_name = NULL;
11910                 }
11911                 if (r->in.server_name) {
11912                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11913                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11914                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11915                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11916                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11917                                 return 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));
11918                         }
11919                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11920                         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));
11921                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11922                 }
11923                 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11924                 ZERO_STRUCTP(r->out.trusted_domains_blob);
11925         }
11926         if (flags & NDR_OUT) {
11927                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11928                         NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11929                 }
11930                 _mem_save_trusted_domains_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
11931                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusted_domains_blob, LIBNDR_FLAG_REF_ALLOC);
11932                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
11933                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_blob_0, LIBNDR_FLAG_REF_ALLOC);
11934                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11935         }
11936         return NDR_ERR_SUCCESS;
11937 }
11938
11939 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
11940 {
11941         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomains");
11942         ndr->depth++;
11943         if (flags & NDR_SET_VALUES) {
11944                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11945         }
11946         if (flags & NDR_IN) {
11947                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomains");
11948                 ndr->depth++;
11949                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11950                 ndr->depth++;
11951                 if (r->in.server_name) {
11952                         ndr_print_string(ndr, "server_name", r->in.server_name);
11953                 }
11954                 ndr->depth--;
11955                 ndr->depth--;
11956         }
11957         if (flags & NDR_OUT) {
11958                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomains");
11959                 ndr->depth++;
11960                 ndr_print_ptr(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11961                 ndr->depth++;
11962                 ndr_print_netr_Blob(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11963                 ndr->depth--;
11964                 ndr_print_WERROR(ndr, "result", r->out.result);
11965                 ndr->depth--;
11966         }
11967         ndr->depth--;
11968 }
11969
11970 static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
11971 {
11972         if (flags & NDR_IN) {
11973                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11974                 if (r->in.server_unc) {
11975                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11976                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11977                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11978                         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));
11979                 }
11980                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11981                 if (r->in.domain_name) {
11982                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11983                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11984                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11985                         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));
11986                 }
11987                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11988                 if (r->in.domain_guid) {
11989                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
11990                 }
11991                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
11992                 if (r->in.site_guid) {
11993                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.site_guid));
11994                 }
11995                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11996         }
11997         if (flags & NDR_OUT) {
11998                 if (r->out.info == NULL) {
11999                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12000                 }
12001                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
12002                 if (*r->out.info) {
12003                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12004                 }
12005                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12006         }
12007         return NDR_ERR_SUCCESS;
12008 }
12009
12010 static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
12011 {
12012         uint32_t _ptr_server_unc;
12013         uint32_t _ptr_domain_name;
12014         uint32_t _ptr_domain_guid;
12015         uint32_t _ptr_site_guid;
12016         uint32_t _ptr_info;
12017         TALLOC_CTX *_mem_save_server_unc_0;
12018         TALLOC_CTX *_mem_save_domain_name_0;
12019         TALLOC_CTX *_mem_save_domain_guid_0;
12020         TALLOC_CTX *_mem_save_site_guid_0;
12021         TALLOC_CTX *_mem_save_info_0;
12022         TALLOC_CTX *_mem_save_info_1;
12023         if (flags & NDR_IN) {
12024                 ZERO_STRUCT(r->out);
12025
12026                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12027                 if (_ptr_server_unc) {
12028                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
12029                 } else {
12030                         r->in.server_unc = NULL;
12031                 }
12032                 if (r->in.server_unc) {
12033                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12034                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12035                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12036                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12037                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12038                                 return 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));
12039                         }
12040                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12041                         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));
12042                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12043                 }
12044                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12045                 if (_ptr_domain_name) {
12046                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12047                 } else {
12048                         r->in.domain_name = NULL;
12049                 }
12050                 if (r->in.domain_name) {
12051                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12052                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12053                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12054                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12055                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12056                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name));
12057                         }
12058                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12059                         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));
12060                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12061                 }
12062                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12063                 if (_ptr_domain_guid) {
12064                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12065                 } else {
12066                         r->in.domain_guid = NULL;
12067                 }
12068                 if (r->in.domain_guid) {
12069                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12070                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12071                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12072                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12073                 }
12074                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
12075                 if (_ptr_site_guid) {
12076                         NDR_PULL_ALLOC(ndr, r->in.site_guid);
12077                 } else {
12078                         r->in.site_guid = NULL;
12079                 }
12080                 if (r->in.site_guid) {
12081                         _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12082                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
12083                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.site_guid));
12084                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
12085                 }
12086                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12087                 NDR_PULL_ALLOC(ndr, r->out.info);
12088                 ZERO_STRUCTP(r->out.info);
12089         }
12090         if (flags & NDR_OUT) {
12091                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12092                         NDR_PULL_ALLOC(ndr, r->out.info);
12093                 }
12094                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12095                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12096                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12097                 if (_ptr_info) {
12098                         NDR_PULL_ALLOC(ndr, *r->out.info);
12099                 } else {
12100                         *r->out.info = NULL;
12101                 }
12102                 if (*r->out.info) {
12103                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
12104                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
12105                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12106                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
12107                 }
12108                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12109                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12110         }
12111         return NDR_ERR_SUCCESS;
12112 }
12113
12114 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
12115 {
12116         ndr_print_struct(ndr, name, "netr_DsRGetDCName");
12117         ndr->depth++;
12118         if (flags & NDR_SET_VALUES) {
12119                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12120         }
12121         if (flags & NDR_IN) {
12122                 ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
12123                 ndr->depth++;
12124                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
12125                 ndr->depth++;
12126                 if (r->in.server_unc) {
12127                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
12128                 }
12129                 ndr->depth--;
12130                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12131                 ndr->depth++;
12132                 if (r->in.domain_name) {
12133                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12134                 }
12135                 ndr->depth--;
12136                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
12137                 ndr->depth++;
12138                 if (r->in.domain_guid) {
12139                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
12140                 }
12141                 ndr->depth--;
12142                 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
12143                 ndr->depth++;
12144                 if (r->in.site_guid) {
12145                         ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
12146                 }
12147                 ndr->depth--;
12148                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
12149                 ndr->depth--;
12150         }
12151         if (flags & NDR_OUT) {
12152                 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
12153                 ndr->depth++;
12154                 ndr_print_ptr(ndr, "info", r->out.info);
12155                 ndr->depth++;
12156                 ndr_print_ptr(ndr, "info", *r->out.info);
12157                 ndr->depth++;
12158                 if (*r->out.info) {
12159                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
12160                 }
12161                 ndr->depth--;
12162                 ndr->depth--;
12163                 ndr_print_WERROR(ndr, "result", r->out.result);
12164                 ndr->depth--;
12165         }
12166         ndr->depth--;
12167 }
12168
12169 static enum ndr_err_code ndr_push_netr_NETRLOGONDUMMYROUTINE1(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
12170 {
12171         if (flags & NDR_IN) {
12172         }
12173         if (flags & NDR_OUT) {
12174                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12175         }
12176         return NDR_ERR_SUCCESS;
12177 }
12178
12179 static enum ndr_err_code ndr_pull_netr_NETRLOGONDUMMYROUTINE1(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONDUMMYROUTINE1 *r)
12180 {
12181         if (flags & NDR_IN) {
12182         }
12183         if (flags & NDR_OUT) {
12184                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12185         }
12186         return NDR_ERR_SUCCESS;
12187 }
12188
12189 _PUBLIC_ void ndr_print_netr_NETRLOGONDUMMYROUTINE1(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
12190 {
12191         ndr_print_struct(ndr, name, "netr_NETRLOGONDUMMYROUTINE1");
12192         ndr->depth++;
12193         if (flags & NDR_SET_VALUES) {
12194                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12195         }
12196         if (flags & NDR_IN) {
12197                 ndr_print_struct(ndr, "in", "netr_NETRLOGONDUMMYROUTINE1");
12198                 ndr->depth++;
12199                 ndr->depth--;
12200         }
12201         if (flags & NDR_OUT) {
12202                 ndr_print_struct(ndr, "out", "netr_NETRLOGONDUMMYROUTINE1");
12203                 ndr->depth++;
12204                 ndr_print_WERROR(ndr, "result", r->out.result);
12205                 ndr->depth--;
12206         }
12207         ndr->depth--;
12208 }
12209
12210 static enum ndr_err_code ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
12211 {
12212         if (flags & NDR_IN) {
12213         }
12214         if (flags & NDR_OUT) {
12215                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12216         }
12217         return NDR_ERR_SUCCESS;
12218 }
12219
12220 static enum ndr_err_code ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
12221 {
12222         if (flags & NDR_IN) {
12223         }
12224         if (flags & NDR_OUT) {
12225                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12226         }
12227         return NDR_ERR_SUCCESS;
12228 }
12229
12230 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
12231 {
12232         ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
12233         ndr->depth++;
12234         if (flags & NDR_SET_VALUES) {
12235                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12236         }
12237         if (flags & NDR_IN) {
12238                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
12239                 ndr->depth++;
12240                 ndr->depth--;
12241         }
12242         if (flags & NDR_OUT) {
12243                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
12244                 ndr->depth++;
12245                 ndr_print_WERROR(ndr, "result", r->out.result);
12246                 ndr->depth--;
12247         }
12248         ndr->depth--;
12249 }
12250
12251 static enum ndr_err_code ndr_push_netr_LogonGetTrustRid(struct ndr_push *ndr, int flags, const struct netr_LogonGetTrustRid *r)
12252 {
12253         if (flags & NDR_IN) {
12254                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12255                 if (r->in.server_name) {
12256                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12257                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12258                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12259                         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));
12260                 }
12261                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12262                 if (r->in.domain_name) {
12263                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12264                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12265                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12266                         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));
12267                 }
12268         }
12269         if (flags & NDR_OUT) {
12270                 if (r->out.rid == NULL) {
12271                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12272                 }
12273                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
12274                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12275         }
12276         return NDR_ERR_SUCCESS;
12277 }
12278
12279 static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, int flags, struct netr_LogonGetTrustRid *r)
12280 {
12281         uint32_t _ptr_server_name;
12282         uint32_t _ptr_domain_name;
12283         TALLOC_CTX *_mem_save_server_name_0;
12284         TALLOC_CTX *_mem_save_domain_name_0;
12285         TALLOC_CTX *_mem_save_rid_0;
12286         if (flags & NDR_IN) {
12287                 ZERO_STRUCT(r->out);
12288
12289                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12290                 if (_ptr_server_name) {
12291                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12292                 } else {
12293                         r->in.server_name = NULL;
12294                 }
12295                 if (r->in.server_name) {
12296                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12297                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12298                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12299                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12300                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12301                                 return 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));
12302                         }
12303                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12304                         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));
12305                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12306                 }
12307                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12308                 if (_ptr_domain_name) {
12309                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12310                 } else {
12311                         r->in.domain_name = NULL;
12312                 }
12313                 if (r->in.domain_name) {
12314                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12315                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12316                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12317                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12318                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12319                                 return 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));
12320                         }
12321                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12322                         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));
12323                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12324                 }
12325                 NDR_PULL_ALLOC(ndr, r->out.rid);
12326                 ZERO_STRUCTP(r->out.rid);
12327         }
12328         if (flags & NDR_OUT) {
12329                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12330                         NDR_PULL_ALLOC(ndr, r->out.rid);
12331                 }
12332                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12333                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
12334                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
12335                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
12336                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12337         }
12338         return NDR_ERR_SUCCESS;
12339 }
12340
12341 _PUBLIC_ void ndr_print_netr_LogonGetTrustRid(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetTrustRid *r)
12342 {
12343         ndr_print_struct(ndr, name, "netr_LogonGetTrustRid");
12344         ndr->depth++;
12345         if (flags & NDR_SET_VALUES) {
12346                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12347         }
12348         if (flags & NDR_IN) {
12349                 ndr_print_struct(ndr, "in", "netr_LogonGetTrustRid");
12350                 ndr->depth++;
12351                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12352                 ndr->depth++;
12353                 if (r->in.server_name) {
12354                         ndr_print_string(ndr, "server_name", r->in.server_name);
12355                 }
12356                 ndr->depth--;
12357                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12358                 ndr->depth++;
12359                 if (r->in.domain_name) {
12360                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12361                 }
12362                 ndr->depth--;
12363                 ndr->depth--;
12364         }
12365         if (flags & NDR_OUT) {
12366                 ndr_print_struct(ndr, "out", "netr_LogonGetTrustRid");
12367                 ndr->depth++;
12368                 ndr_print_ptr(ndr, "rid", r->out.rid);
12369                 ndr->depth++;
12370                 ndr_print_uint32(ndr, "rid", *r->out.rid);
12371                 ndr->depth--;
12372                 ndr_print_WERROR(ndr, "result", r->out.result);
12373                 ndr->depth--;
12374         }
12375         ndr->depth--;
12376 }
12377
12378 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
12379 {
12380         if (flags & NDR_IN) {
12381         }
12382         if (flags & NDR_OUT) {
12383                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12384         }
12385         return NDR_ERR_SUCCESS;
12386 }
12387
12388 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
12389 {
12390         if (flags & NDR_IN) {
12391         }
12392         if (flags & NDR_OUT) {
12393                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12394         }
12395         return NDR_ERR_SUCCESS;
12396 }
12397
12398 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
12399 {
12400         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
12401         ndr->depth++;
12402         if (flags & NDR_SET_VALUES) {
12403                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12404         }
12405         if (flags & NDR_IN) {
12406                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
12407                 ndr->depth++;
12408                 ndr->depth--;
12409         }
12410         if (flags & NDR_OUT) {
12411                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
12412                 ndr->depth++;
12413                 ndr_print_WERROR(ndr, "result", r->out.result);
12414                 ndr->depth--;
12415         }
12416         ndr->depth--;
12417 }
12418
12419 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
12420 {
12421         if (flags & NDR_IN) {
12422         }
12423         if (flags & NDR_OUT) {
12424                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12425         }
12426         return NDR_ERR_SUCCESS;
12427 }
12428
12429 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
12430 {
12431         if (flags & NDR_IN) {
12432         }
12433         if (flags & NDR_OUT) {
12434                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12435         }
12436         return NDR_ERR_SUCCESS;
12437 }
12438
12439 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
12440 {
12441         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
12442         ndr->depth++;
12443         if (flags & NDR_SET_VALUES) {
12444                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12445         }
12446         if (flags & NDR_IN) {
12447                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
12448                 ndr->depth++;
12449                 ndr->depth--;
12450         }
12451         if (flags & NDR_OUT) {
12452                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
12453                 ndr->depth++;
12454                 ndr_print_WERROR(ndr, "result", r->out.result);
12455                 ndr->depth--;
12456         }
12457         ndr->depth--;
12458 }
12459
12460 _PUBLIC_ enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
12461 {
12462         if (flags & NDR_IN) {
12463                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12464                 if (r->in.server_name) {
12465                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12466                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12467                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12468                         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));
12469                 }
12470                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12471                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12472                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12473                 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));
12474                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12475                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12476                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12477                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12478                 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));
12479                 if (r->in.credentials == NULL) {
12480                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12481                 }
12482                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
12483                 if (r->in.negotiate_flags == NULL) {
12484                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12485                 }
12486                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
12487         }
12488         if (flags & NDR_OUT) {
12489                 if (r->out.return_credentials == NULL) {
12490                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12491                 }
12492                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
12493                 if (r->out.negotiate_flags == NULL) {
12494                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12495                 }
12496                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
12497                 if (r->out.rid == NULL) {
12498                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12499                 }
12500                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
12501                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12502         }
12503         return NDR_ERR_SUCCESS;
12504 }
12505
12506 _PUBLIC_ enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
12507 {
12508         uint32_t _ptr_server_name;
12509         TALLOC_CTX *_mem_save_server_name_0;
12510         TALLOC_CTX *_mem_save_credentials_0;
12511         TALLOC_CTX *_mem_save_return_credentials_0;
12512         TALLOC_CTX *_mem_save_negotiate_flags_0;
12513         TALLOC_CTX *_mem_save_rid_0;
12514         if (flags & NDR_IN) {
12515                 ZERO_STRUCT(r->out);
12516
12517                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12518                 if (_ptr_server_name) {
12519                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12520                 } else {
12521                         r->in.server_name = NULL;
12522                 }
12523                 if (r->in.server_name) {
12524                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12525                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12526                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12527                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12528                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12529                                 return 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));
12530                         }
12531                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12532                         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));
12533                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12534                 }
12535                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12536                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12537                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12538                         return 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));
12539                 }
12540                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12541                 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));
12542                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12543                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12544                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12545                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12546                         return 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));
12547                 }
12548                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12549                 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));
12550                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12551                         NDR_PULL_ALLOC(ndr, r->in.credentials);
12552                 }
12553                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
12554                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
12555                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
12556                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
12557                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12558                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
12559                 }
12560                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
12561                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
12562                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
12563                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
12564                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
12565                 ZERO_STRUCTP(r->out.return_credentials);
12566                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
12567                 *r->out.negotiate_flags = *r->in.negotiate_flags;
12568                 NDR_PULL_ALLOC(ndr, r->out.rid);
12569                 ZERO_STRUCTP(r->out.rid);
12570         }
12571         if (flags & NDR_OUT) {
12572                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12573                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
12574                 }
12575                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
12576                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
12577                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
12578                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
12579                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12580                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
12581                 }
12582                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
12583                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
12584                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
12585                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
12586                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12587                         NDR_PULL_ALLOC(ndr, r->out.rid);
12588                 }
12589                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12590                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
12591                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
12592                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
12593                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12594         }
12595         return NDR_ERR_SUCCESS;
12596 }
12597
12598 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
12599 {
12600         ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
12601         ndr->depth++;
12602         if (flags & NDR_SET_VALUES) {
12603                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12604         }
12605         if (flags & NDR_IN) {
12606                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
12607                 ndr->depth++;
12608                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12609                 ndr->depth++;
12610                 if (r->in.server_name) {
12611                         ndr_print_string(ndr, "server_name", r->in.server_name);
12612                 }
12613                 ndr->depth--;
12614                 ndr_print_string(ndr, "account_name", r->in.account_name);
12615                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12616                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12617                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
12618                 ndr->depth++;
12619                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
12620                 ndr->depth--;
12621                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
12622                 ndr->depth++;
12623                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
12624                 ndr->depth--;
12625                 ndr->depth--;
12626         }
12627         if (flags & NDR_OUT) {
12628                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
12629                 ndr->depth++;
12630                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
12631                 ndr->depth++;
12632                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
12633                 ndr->depth--;
12634                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
12635                 ndr->depth++;
12636                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
12637                 ndr->depth--;
12638                 ndr_print_ptr(ndr, "rid", r->out.rid);
12639                 ndr->depth++;
12640                 ndr_print_uint32(ndr, "rid", *r->out.rid);
12641                 ndr->depth--;
12642                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12643                 ndr->depth--;
12644         }
12645         ndr->depth--;
12646 }
12647
12648 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
12649 {
12650         if (flags & NDR_IN) {
12651                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
12652                 if (r->in.server_unc) {
12653                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12654                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12655                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12656                         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));
12657                 }
12658                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12659                 if (r->in.domain_name) {
12660                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12661                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12662                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12663                         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));
12664                 }
12665                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
12666                 if (r->in.domain_guid) {
12667                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12668                 }
12669                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
12670                 if (r->in.site_name) {
12671                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12672                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12673                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12674                         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));
12675                 }
12676                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
12677         }
12678         if (flags & NDR_OUT) {
12679                 if (r->out.info == NULL) {
12680                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12681                 }
12682                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
12683                 if (*r->out.info) {
12684                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12685                 }
12686                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12687         }
12688         return NDR_ERR_SUCCESS;
12689 }
12690
12691 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
12692 {
12693         uint32_t _ptr_server_unc;
12694         uint32_t _ptr_domain_name;
12695         uint32_t _ptr_domain_guid;
12696         uint32_t _ptr_site_name;
12697         uint32_t _ptr_info;
12698         TALLOC_CTX *_mem_save_server_unc_0;
12699         TALLOC_CTX *_mem_save_domain_name_0;
12700         TALLOC_CTX *_mem_save_domain_guid_0;
12701         TALLOC_CTX *_mem_save_site_name_0;
12702         TALLOC_CTX *_mem_save_info_0;
12703         TALLOC_CTX *_mem_save_info_1;
12704         if (flags & NDR_IN) {
12705                 ZERO_STRUCT(r->out);
12706
12707                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12708                 if (_ptr_server_unc) {
12709                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
12710                 } else {
12711                         r->in.server_unc = NULL;
12712                 }
12713                 if (r->in.server_unc) {
12714                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12715                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12716                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12717                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12718                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12719                                 return 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));
12720                         }
12721                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12722                         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));
12723                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12724                 }
12725                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12726                 if (_ptr_domain_name) {
12727                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12728                 } else {
12729                         r->in.domain_name = NULL;
12730                 }
12731                 if (r->in.domain_name) {
12732                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12733                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12734                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12735                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12736                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12737                                 return 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));
12738                         }
12739                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12740                         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));
12741                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12742                 }
12743                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12744                 if (_ptr_domain_guid) {
12745                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12746                 } else {
12747                         r->in.domain_guid = NULL;
12748                 }
12749                 if (r->in.domain_guid) {
12750                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12751                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12752                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
12753                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12754                 }
12755                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
12756                 if (_ptr_site_name) {
12757                         NDR_PULL_ALLOC(ndr, r->in.site_name);
12758                 } else {
12759                         r->in.site_name = NULL;
12760                 }
12761                 if (r->in.site_name) {
12762                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12763                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
12764                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
12765                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
12766                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
12767                                 return 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));
12768                         }
12769                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
12770                         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));
12771                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
12772                 }
12773                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12774                 NDR_PULL_ALLOC(ndr, r->out.info);
12775                 ZERO_STRUCTP(r->out.info);
12776         }
12777         if (flags & NDR_OUT) {
12778                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12779                         NDR_PULL_ALLOC(ndr, r->out.info);
12780                 }
12781                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12782                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12783                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12784                 if (_ptr_info) {
12785                         NDR_PULL_ALLOC(ndr, *r->out.info);
12786                 } else {
12787                         *r->out.info = NULL;
12788                 }
12789                 if (*r->out.info) {
12790                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
12791                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
12792                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12793                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
12794                 }
12795                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12796                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12797         }
12798         return NDR_ERR_SUCCESS;
12799 }
12800
12801 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
12802 {
12803         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
12804         ndr->depth++;
12805         if (flags & NDR_SET_VALUES) {
12806                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12807         }
12808         if (flags & NDR_IN) {
12809                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
12810                 ndr->depth++;
12811                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
12812                 ndr->depth++;
12813                 if (r->in.server_unc) {
12814                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
12815                 }
12816                 ndr->depth--;
12817                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12818                 ndr->depth++;
12819                 if (r->in.domain_name) {
12820                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12821                 }
12822                 ndr->depth--;
12823                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
12824                 ndr->depth++;
12825                 if (r->in.domain_guid) {
12826                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
12827                 }
12828                 ndr->depth--;
12829                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
12830                 ndr->depth++;
12831                 if (r->in.site_name) {
12832                         ndr_print_string(ndr, "site_name", r->in.site_name);
12833                 }
12834                 ndr->depth--;
12835                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
12836                 ndr->depth--;
12837         }
12838         if (flags & NDR_OUT) {
12839                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
12840                 ndr->depth++;
12841                 ndr_print_ptr(ndr, "info", r->out.info);
12842                 ndr->depth++;
12843                 ndr_print_ptr(ndr, "info", *r->out.info);
12844                 ndr->depth++;
12845                 if (*r->out.info) {
12846                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
12847                 }
12848                 ndr->depth--;
12849                 ndr->depth--;
12850                 ndr_print_WERROR(ndr, "result", r->out.result);
12851                 ndr->depth--;
12852         }
12853         ndr->depth--;
12854 }
12855
12856 static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
12857 {
12858         if (flags & NDR_IN) {
12859                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12860                 if (r->in.computer_name) {
12861                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12862                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12863                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12864                         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));
12865                 }
12866         }
12867         if (flags & NDR_OUT) {
12868                 if (r->out.site == NULL) {
12869                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12870                 }
12871                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.site));
12872                 if (*r->out.site) {
12873                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
12874                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12875                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
12876                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
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_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
12884 {
12885         uint32_t _ptr_computer_name;
12886         uint32_t _ptr_site;
12887         TALLOC_CTX *_mem_save_computer_name_0;
12888         TALLOC_CTX *_mem_save_site_0;
12889         TALLOC_CTX *_mem_save_site_1;
12890         if (flags & NDR_IN) {
12891                 ZERO_STRUCT(r->out);
12892
12893                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12894                 if (_ptr_computer_name) {
12895                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
12896                 } else {
12897                         r->in.computer_name = NULL;
12898                 }
12899                 if (r->in.computer_name) {
12900                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12901                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12902                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12903                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12904                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12905                                 return 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));
12906                         }
12907                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12908                         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));
12909                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12910                 }
12911                 NDR_PULL_ALLOC(ndr, r->out.site);
12912                 ZERO_STRUCTP(r->out.site);
12913         }
12914         if (flags & NDR_OUT) {
12915                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12916                         NDR_PULL_ALLOC(ndr, r->out.site);
12917                 }
12918                 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
12919                 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
12920                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site));
12921                 if (_ptr_site) {
12922                         NDR_PULL_ALLOC(ndr, *r->out.site);
12923                 } else {
12924                         *r->out.site = NULL;
12925                 }
12926                 if (*r->out.site) {
12927                         _mem_save_site_1 = NDR_PULL_GET_MEM_CTX(ndr);
12928                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.site, 0);
12929                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
12930                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
12931                         if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
12932                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.site), ndr_get_array_length(ndr, r->out.site));
12933                         }
12934                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
12935                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
12936                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_1, 0);
12937                 }
12938                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
12939                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12940         }
12941         return NDR_ERR_SUCCESS;
12942 }
12943
12944 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
12945 {
12946         ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
12947         ndr->depth++;
12948         if (flags & NDR_SET_VALUES) {
12949                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12950         }
12951         if (flags & NDR_IN) {
12952                 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
12953                 ndr->depth++;
12954                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12955                 ndr->depth++;
12956                 if (r->in.computer_name) {
12957                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12958                 }
12959                 ndr->depth--;
12960                 ndr->depth--;
12961         }
12962         if (flags & NDR_OUT) {
12963                 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
12964                 ndr->depth++;
12965                 ndr_print_ptr(ndr, "site", r->out.site);
12966                 ndr->depth++;
12967                 ndr_print_ptr(ndr, "site", *r->out.site);
12968                 ndr->depth++;
12969                 if (*r->out.site) {
12970                         ndr_print_string(ndr, "site", *r->out.site);
12971                 }
12972                 ndr->depth--;
12973                 ndr->depth--;
12974                 ndr_print_WERROR(ndr, "result", r->out.result);
12975                 ndr->depth--;
12976         }
12977         ndr->depth--;
12978 }
12979
12980 static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
12981 {
12982         if (flags & NDR_IN) {
12983                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12984                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12985                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12986                 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));
12987                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12988                 if (r->in.computer_name) {
12989                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12990                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12991                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12992                         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));
12993                 }
12994                 if (r->in.credential == NULL) {
12995                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12996                 }
12997                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12998                 if (r->in.return_authenticator == NULL) {
12999                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13000                 }
13001                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
13002                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
13003                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level));
13004                 NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
13005         }
13006         if (flags & NDR_OUT) {
13007                 if (r->out.return_authenticator == NULL) {
13008                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13009                 }
13010                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13011                 if (r->out.info == NULL) {
13012                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13013                 }
13014                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
13015                 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13016                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13017         }
13018         return NDR_ERR_SUCCESS;
13019 }
13020
13021 static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
13022 {
13023         uint32_t _ptr_computer_name;
13024         TALLOC_CTX *_mem_save_computer_name_0;
13025         TALLOC_CTX *_mem_save_credential_0;
13026         TALLOC_CTX *_mem_save_return_authenticator_0;
13027         TALLOC_CTX *_mem_save_info_0;
13028         if (flags & NDR_IN) {
13029                 ZERO_STRUCT(r->out);
13030
13031                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13032                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13033                 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13034                         return 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));
13035                 }
13036                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13037                 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));
13038                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13039                 if (_ptr_computer_name) {
13040                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13041                 } else {
13042                         r->in.computer_name = NULL;
13043                 }
13044                 if (r->in.computer_name) {
13045                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13046                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13047                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13048                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13049                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13050                                 return 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));
13051                         }
13052                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13053                         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));
13054                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13055                 }
13056                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13057                         NDR_PULL_ALLOC(ndr, r->in.credential);
13058                 }
13059                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13060                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13061                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13062                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13063                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13064                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
13065                 }
13066                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13067                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13068                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
13069                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13070                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
13071                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level));
13072                 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
13073                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13074                 *r->out.return_authenticator = *r->in.return_authenticator;
13075                 NDR_PULL_ALLOC(ndr, r->out.info);
13076                 ZERO_STRUCTP(r->out.info);
13077         }
13078         if (flags & NDR_OUT) {
13079                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13080                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13081                 }
13082                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13083                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13084                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13085                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13086                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13087                         NDR_PULL_ALLOC(ndr, r->out.info);
13088                 }
13089                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13090                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
13091                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
13092                 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13093                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
13094                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13095         }
13096         return NDR_ERR_SUCCESS;
13097 }
13098
13099 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
13100 {
13101         ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
13102         ndr->depth++;
13103         if (flags & NDR_SET_VALUES) {
13104                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13105         }
13106         if (flags & NDR_IN) {
13107                 ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
13108                 ndr->depth++;
13109                 ndr_print_string(ndr, "server_name", r->in.server_name);
13110                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13111                 ndr->depth++;
13112                 if (r->in.computer_name) {
13113                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
13114                 }
13115                 ndr->depth--;
13116                 ndr_print_ptr(ndr, "credential", r->in.credential);
13117                 ndr->depth++;
13118                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13119                 ndr->depth--;
13120                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
13121                 ndr->depth++;
13122                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
13123                 ndr->depth--;
13124                 ndr_print_uint32(ndr, "level", r->in.level);
13125                 ndr_print_set_switch_value(ndr, &r->in.query, r->in.level);
13126                 ndr_print_netr_DomainQuery(ndr, "query", &r->in.query);
13127                 ndr->depth--;
13128         }
13129         if (flags & NDR_OUT) {
13130                 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
13131                 ndr->depth++;
13132                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13133                 ndr->depth++;
13134                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13135                 ndr->depth--;
13136                 ndr_print_ptr(ndr, "info", r->out.info);
13137                 ndr->depth++;
13138                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
13139                 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
13140                 ndr->depth--;
13141                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13142                 ndr->depth--;
13143         }
13144         ndr->depth--;
13145 }
13146
13147 static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
13148 {
13149         if (flags & NDR_IN) {
13150                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13151                 if (r->in.server_name) {
13152                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13153                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13154                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13155                         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));
13156                 }
13157                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13158                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13159                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13160                 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));
13161                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13162                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13163                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13164                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13165                 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));
13166                 if (r->in.credential == NULL) {
13167                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13168                 }
13169                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13170                 if (r->in.new_password == NULL) {
13171                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13172                 }
13173                 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
13174         }
13175         if (flags & NDR_OUT) {
13176                 if (r->out.return_authenticator == NULL) {
13177                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13178                 }
13179                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13180                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13181         }
13182         return NDR_ERR_SUCCESS;
13183 }
13184
13185 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
13186 {
13187         uint32_t _ptr_server_name;
13188         TALLOC_CTX *_mem_save_server_name_0;
13189         TALLOC_CTX *_mem_save_credential_0;
13190         TALLOC_CTX *_mem_save_return_authenticator_0;
13191         TALLOC_CTX *_mem_save_new_password_0;
13192         if (flags & NDR_IN) {
13193                 ZERO_STRUCT(r->out);
13194
13195                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13196                 if (_ptr_server_name) {
13197                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13198                 } else {
13199                         r->in.server_name = NULL;
13200                 }
13201                 if (r->in.server_name) {
13202                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13203                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13204                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13205                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13206                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13207                                 return 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));
13208                         }
13209                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13210                         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));
13211                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13212                 }
13213                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13214                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13215                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13216                         return 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));
13217                 }
13218                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13219                 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));
13220                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13221                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13222                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13223                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13224                         return 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));
13225                 }
13226                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13227                 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));
13228                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13229                         NDR_PULL_ALLOC(ndr, r->in.credential);
13230                 }
13231                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13232                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13233                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13234                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13235                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13236                         NDR_PULL_ALLOC(ndr, r->in.new_password);
13237                 }
13238                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
13239                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
13240                 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, r->in.new_password));
13241                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
13242                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13243                 ZERO_STRUCTP(r->out.return_authenticator);
13244         }
13245         if (flags & NDR_OUT) {
13246                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13247                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13248                 }
13249                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13250                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13251                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13252                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13253                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13254         }
13255         return NDR_ERR_SUCCESS;
13256 }
13257
13258 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
13259 {
13260         ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
13261         ndr->depth++;
13262         if (flags & NDR_SET_VALUES) {
13263                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13264         }
13265         if (flags & NDR_IN) {
13266                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
13267                 ndr->depth++;
13268                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13269                 ndr->depth++;
13270                 if (r->in.server_name) {
13271                         ndr_print_string(ndr, "server_name", r->in.server_name);
13272                 }
13273                 ndr->depth--;
13274                 ndr_print_string(ndr, "account_name", r->in.account_name);
13275                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
13276                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13277                 ndr_print_ptr(ndr, "credential", r->in.credential);
13278                 ndr->depth++;
13279                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13280                 ndr->depth--;
13281                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
13282                 ndr->depth++;
13283                 ndr_print_netr_CryptPassword(ndr, "new_password", r->in.new_password);
13284                 ndr->depth--;
13285                 ndr->depth--;
13286         }
13287         if (flags & NDR_OUT) {
13288                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
13289                 ndr->depth++;
13290                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13291                 ndr->depth++;
13292                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13293                 ndr->depth--;
13294                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13295                 ndr->depth--;
13296         }
13297         ndr->depth--;
13298 }
13299
13300 static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordGet *r)
13301 {
13302         if (flags & NDR_IN) {
13303                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13304                 if (r->in.server_name) {
13305                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13306                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13307                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13308                         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));
13309                 }
13310                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13311                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13312                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13313                 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));
13314                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13315                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13316                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13317                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13318                 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));
13319                 if (r->in.credential == NULL) {
13320                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13321                 }
13322                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13323         }
13324         if (flags & NDR_OUT) {
13325                 if (r->out.return_authenticator == NULL) {
13326                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13327                 }
13328                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13329                 if (r->out.password == NULL) {
13330                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13331                 }
13332                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
13333                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13334         }
13335         return NDR_ERR_SUCCESS;
13336 }
13337
13338 static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r)
13339 {
13340         uint32_t _ptr_server_name;
13341         TALLOC_CTX *_mem_save_server_name_0;
13342         TALLOC_CTX *_mem_save_credential_0;
13343         TALLOC_CTX *_mem_save_return_authenticator_0;
13344         TALLOC_CTX *_mem_save_password_0;
13345         if (flags & NDR_IN) {
13346                 ZERO_STRUCT(r->out);
13347
13348                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13349                 if (_ptr_server_name) {
13350                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13351                 } else {
13352                         r->in.server_name = NULL;
13353                 }
13354                 if (r->in.server_name) {
13355                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13356                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13357                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13358                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13359                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13360                                 return 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));
13361                         }
13362                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13363                         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));
13364                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13365                 }
13366                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13367                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13368                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13369                         return 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));
13370                 }
13371                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13372                 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));
13373                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13374                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13375                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13376                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13377                         return 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));
13378                 }
13379                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13380                 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));
13381                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13382                         NDR_PULL_ALLOC(ndr, r->in.credential);
13383                 }
13384                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13385                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13386                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13387                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13388                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13389                 ZERO_STRUCTP(r->out.return_authenticator);
13390                 NDR_PULL_ALLOC(ndr, r->out.password);
13391                 ZERO_STRUCTP(r->out.password);
13392         }
13393         if (flags & NDR_OUT) {
13394                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13395                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13396                 }
13397                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13398                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13399                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13400                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13401                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13402                         NDR_PULL_ALLOC(ndr, r->out.password);
13403                 }
13404                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
13405                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
13406                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
13407                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
13408                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13409         }
13410         return NDR_ERR_SUCCESS;
13411 }
13412
13413 _PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordGet *r)
13414 {
13415         ndr_print_struct(ndr, name, "netr_ServerPasswordGet");
13416         ndr->depth++;
13417         if (flags & NDR_SET_VALUES) {
13418                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13419         }
13420         if (flags & NDR_IN) {
13421                 ndr_print_struct(ndr, "in", "netr_ServerPasswordGet");
13422                 ndr->depth++;
13423                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13424                 ndr->depth++;
13425                 if (r->in.server_name) {
13426                         ndr_print_string(ndr, "server_name", r->in.server_name);
13427                 }
13428                 ndr->depth--;
13429                 ndr_print_string(ndr, "account_name", r->in.account_name);
13430                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
13431                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13432                 ndr_print_ptr(ndr, "credential", r->in.credential);
13433                 ndr->depth++;
13434                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13435                 ndr->depth--;
13436                 ndr->depth--;
13437         }
13438         if (flags & NDR_OUT) {
13439                 ndr_print_struct(ndr, "out", "netr_ServerPasswordGet");
13440                 ndr->depth++;
13441                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13442                 ndr->depth++;
13443                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13444                 ndr->depth--;
13445                 ndr_print_ptr(ndr, "password", r->out.password);
13446                 ndr->depth++;
13447                 ndr_print_samr_Password(ndr, "password", r->out.password);
13448                 ndr->depth--;
13449                 ndr_print_WERROR(ndr, "result", r->out.result);
13450                 ndr->depth--;
13451         }
13452         ndr->depth--;
13453 }
13454
13455 static enum ndr_err_code ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
13456 {
13457         if (flags & NDR_IN) {
13458         }
13459         if (flags & NDR_OUT) {
13460                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13461         }
13462         return NDR_ERR_SUCCESS;
13463 }
13464
13465 static enum ndr_err_code ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
13466 {
13467         if (flags & NDR_IN) {
13468         }
13469         if (flags & NDR_OUT) {
13470                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13471         }
13472         return NDR_ERR_SUCCESS;
13473 }
13474
13475 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
13476 {
13477         ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
13478         ndr->depth++;
13479         if (flags & NDR_SET_VALUES) {
13480                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13481         }
13482         if (flags & NDR_IN) {
13483                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
13484                 ndr->depth++;
13485                 ndr->depth--;
13486         }
13487         if (flags & NDR_OUT) {
13488                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
13489                 ndr->depth++;
13490                 ndr_print_WERROR(ndr, "result", r->out.result);
13491                 ndr->depth--;
13492         }
13493         ndr->depth--;
13494 }
13495
13496 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesW *r)
13497 {
13498         uint32_t cntr_addresses_1;
13499         if (flags & NDR_IN) {
13500                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13501                 if (r->in.server_name) {
13502                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_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.server_name, CH_UTF16)));
13505                         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));
13506                 }
13507                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13508                 if (r->in.addresses == NULL) {
13509                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13510                 }
13511                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13512                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13513                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13514                 }
13515                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13516                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13517                 }
13518         }
13519         if (flags & NDR_OUT) {
13520                 if (r->out.ctr == NULL) {
13521                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13522                 }
13523                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
13524                 if (*r->out.ctr) {
13525                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13526                 }
13527                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13528         }
13529         return NDR_ERR_SUCCESS;
13530 }
13531
13532 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r)
13533 {
13534         uint32_t _ptr_server_name;
13535         uint32_t cntr_addresses_1;
13536         uint32_t _ptr_ctr;
13537         TALLOC_CTX *_mem_save_server_name_0;
13538         TALLOC_CTX *_mem_save_addresses_1;
13539         TALLOC_CTX *_mem_save_ctr_0;
13540         TALLOC_CTX *_mem_save_ctr_1;
13541         if (flags & NDR_IN) {
13542                 ZERO_STRUCT(r->out);
13543
13544                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13545                 if (_ptr_server_name) {
13546                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13547                 } else {
13548                         r->in.server_name = NULL;
13549                 }
13550                 if (r->in.server_name) {
13551                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13552                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13553                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13554                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13555                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13556                                 return 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));
13557                         }
13558                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13559                         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));
13560                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13561                 }
13562                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
13563                 if (r->in.count < 0 || r->in.count > 32000) {
13564                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13565                 }
13566                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
13567                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13568                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
13569                 }
13570                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
13571                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
13572                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13573                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13574                 }
13575                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13576                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13577                 }
13578                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
13579                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13580                 ZERO_STRUCTP(r->out.ctr);
13581                 if (r->in.addresses) {
13582                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
13583                 }
13584         }
13585         if (flags & NDR_OUT) {
13586                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13587                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13588                 }
13589                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13590                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13591                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
13592                 if (_ptr_ctr) {
13593                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
13594                 } else {
13595                         *r->out.ctr = NULL;
13596                 }
13597                 if (*r->out.ctr) {
13598                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
13599                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
13600                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13601                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
13602                 }
13603                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13604                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13605         }
13606         return NDR_ERR_SUCCESS;
13607 }
13608
13609 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesW *r)
13610 {
13611         uint32_t cntr_addresses_1;
13612         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesW");
13613         ndr->depth++;
13614         if (flags & NDR_SET_VALUES) {
13615                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13616         }
13617         if (flags & NDR_IN) {
13618                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesW");
13619                 ndr->depth++;
13620                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13621                 ndr->depth++;
13622                 if (r->in.server_name) {
13623                         ndr_print_string(ndr, "server_name", r->in.server_name);
13624                 }
13625                 ndr->depth--;
13626                 ndr_print_uint32(ndr, "count", r->in.count);
13627                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
13628                 ndr->depth++;
13629                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
13630                 ndr->depth++;
13631                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
13632                         char *idx_1=NULL;
13633                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
13634                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
13635                                 free(idx_1);
13636                         }
13637                 }
13638                 ndr->depth--;
13639                 ndr->depth--;
13640                 ndr->depth--;
13641         }
13642         if (flags & NDR_OUT) {
13643                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesW");
13644                 ndr->depth++;
13645                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13646                 ndr->depth++;
13647                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
13648                 ndr->depth++;
13649                 if (*r->out.ctr) {
13650                         ndr_print_netr_DsRAddressToSitenamesWCtr(ndr, "ctr", *r->out.ctr);
13651                 }
13652                 ndr->depth--;
13653                 ndr->depth--;
13654                 ndr_print_WERROR(ndr, "result", r->out.result);
13655                 ndr->depth--;
13656         }
13657         ndr->depth--;
13658 }
13659
13660 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
13661 {
13662         if (flags & NDR_IN) {
13663                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
13664                 if (r->in.server_unc) {
13665                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
13666                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13667                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
13668                         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));
13669                 }
13670                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
13671                 if (r->in.client_account) {
13672                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
13673                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13674                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
13675                         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));
13676                 }
13677                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.mask));
13678                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
13679                 if (r->in.domain_name) {
13680                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
13681                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13682                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
13683                         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));
13684                 }
13685                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
13686                 if (r->in.domain_guid) {
13687                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
13688                 }
13689                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
13690                 if (r->in.site_name) {
13691                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
13692                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13693                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
13694                         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));
13695                 }
13696                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
13697         }
13698         if (flags & NDR_OUT) {
13699                 if (r->out.info == NULL) {
13700                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13701                 }
13702                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
13703                 if (*r->out.info) {
13704                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
13705                 }
13706                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13707         }
13708         return NDR_ERR_SUCCESS;
13709 }
13710
13711 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
13712 {
13713         uint32_t _ptr_server_unc;
13714         uint32_t _ptr_client_account;
13715         uint32_t _ptr_domain_name;
13716         uint32_t _ptr_domain_guid;
13717         uint32_t _ptr_site_name;
13718         uint32_t _ptr_info;
13719         TALLOC_CTX *_mem_save_server_unc_0;
13720         TALLOC_CTX *_mem_save_client_account_0;
13721         TALLOC_CTX *_mem_save_domain_name_0;
13722         TALLOC_CTX *_mem_save_domain_guid_0;
13723         TALLOC_CTX *_mem_save_site_name_0;
13724         TALLOC_CTX *_mem_save_info_0;
13725         TALLOC_CTX *_mem_save_info_1;
13726         if (flags & NDR_IN) {
13727                 ZERO_STRUCT(r->out);
13728
13729                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
13730                 if (_ptr_server_unc) {
13731                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
13732                 } else {
13733                         r->in.server_unc = NULL;
13734                 }
13735                 if (r->in.server_unc) {
13736                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
13737                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
13738                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
13739                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
13740                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
13741                                 return 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));
13742                         }
13743                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
13744                         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));
13745                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
13746                 }
13747                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
13748                 if (_ptr_client_account) {
13749                         NDR_PULL_ALLOC(ndr, r->in.client_account);
13750                 } else {
13751                         r->in.client_account = NULL;
13752                 }
13753                 if (r->in.client_account) {
13754                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
13755                         NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
13756                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
13757                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
13758                         if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
13759                                 return 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));
13760                         }
13761                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
13762                         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));
13763                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
13764                 }
13765                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask));
13766                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
13767                 if (_ptr_domain_name) {
13768                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
13769                 } else {
13770                         r->in.domain_name = NULL;
13771                 }
13772                 if (r->in.domain_name) {
13773                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13774                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
13775                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
13776                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
13777                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
13778                                 return 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));
13779                         }
13780                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
13781                         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));
13782                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
13783                 }
13784                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
13785                 if (_ptr_domain_guid) {
13786                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
13787                 } else {
13788                         r->in.domain_guid = NULL;
13789                 }
13790                 if (r->in.domain_guid) {
13791                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13792                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
13793                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
13794                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
13795                 }
13796                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
13797                 if (_ptr_site_name) {
13798                         NDR_PULL_ALLOC(ndr, r->in.site_name);
13799                 } else {
13800                         r->in.site_name = NULL;
13801                 }
13802                 if (r->in.site_name) {
13803                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13804                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
13805                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
13806                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
13807                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
13808                                 return 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));
13809                         }
13810                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
13811                         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));
13812                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
13813                 }
13814                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
13815                 NDR_PULL_ALLOC(ndr, r->out.info);
13816                 ZERO_STRUCTP(r->out.info);
13817         }
13818         if (flags & NDR_OUT) {
13819                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13820                         NDR_PULL_ALLOC(ndr, r->out.info);
13821                 }
13822                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13823                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
13824                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
13825                 if (_ptr_info) {
13826                         NDR_PULL_ALLOC(ndr, *r->out.info);
13827                 } else {
13828                         *r->out.info = NULL;
13829                 }
13830                 if (*r->out.info) {
13831                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
13832                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
13833                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
13834                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
13835                 }
13836                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
13837                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13838         }
13839         return NDR_ERR_SUCCESS;
13840 }
13841
13842 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
13843 {
13844         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
13845         ndr->depth++;
13846         if (flags & NDR_SET_VALUES) {
13847                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13848         }
13849         if (flags & NDR_IN) {
13850                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
13851                 ndr->depth++;
13852                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
13853                 ndr->depth++;
13854                 if (r->in.server_unc) {
13855                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
13856                 }
13857                 ndr->depth--;
13858                 ndr_print_ptr(ndr, "client_account", r->in.client_account);
13859                 ndr->depth++;
13860                 if (r->in.client_account) {
13861                         ndr_print_string(ndr, "client_account", r->in.client_account);
13862                 }
13863                 ndr->depth--;
13864                 ndr_print_samr_AcctFlags(ndr, "mask", r->in.mask);
13865                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
13866                 ndr->depth++;
13867                 if (r->in.domain_name) {
13868                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
13869                 }
13870                 ndr->depth--;
13871                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
13872                 ndr->depth++;
13873                 if (r->in.domain_guid) {
13874                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
13875                 }
13876                 ndr->depth--;
13877                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
13878                 ndr->depth++;
13879                 if (r->in.site_name) {
13880                         ndr_print_string(ndr, "site_name", r->in.site_name);
13881                 }
13882                 ndr->depth--;
13883                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
13884                 ndr->depth--;
13885         }
13886         if (flags & NDR_OUT) {
13887                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
13888                 ndr->depth++;
13889                 ndr_print_ptr(ndr, "info", r->out.info);
13890                 ndr->depth++;
13891                 ndr_print_ptr(ndr, "info", *r->out.info);
13892                 ndr->depth++;
13893                 if (*r->out.info) {
13894                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
13895                 }
13896                 ndr->depth--;
13897                 ndr->depth--;
13898                 ndr_print_WERROR(ndr, "result", r->out.result);
13899                 ndr->depth--;
13900         }
13901         ndr->depth--;
13902 }
13903
13904 static enum ndr_err_code ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13905 {
13906         if (flags & NDR_IN) {
13907         }
13908         if (flags & NDR_OUT) {
13909                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13910         }
13911         return NDR_ERR_SUCCESS;
13912 }
13913
13914 static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13915 {
13916         if (flags & NDR_IN) {
13917         }
13918         if (flags & NDR_OUT) {
13919                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13920         }
13921         return NDR_ERR_SUCCESS;
13922 }
13923
13924 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13925 {
13926         ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13927         ndr->depth++;
13928         if (flags & NDR_SET_VALUES) {
13929                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13930         }
13931         if (flags & NDR_IN) {
13932                 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13933                 ndr->depth++;
13934                 ndr->depth--;
13935         }
13936         if (flags & NDR_OUT) {
13937                 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13938                 ndr->depth++;
13939                 ndr_print_WERROR(ndr, "result", r->out.result);
13940                 ndr->depth--;
13941         }
13942         ndr->depth--;
13943 }
13944
13945 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
13946 {
13947         if (flags & NDR_IN) {
13948                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13949                 if (r->in.server_name) {
13950                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13951                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13952                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13953                         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));
13954                 }
13955         }
13956         if (flags & NDR_OUT) {
13957                 if (r->out.dom_trust_list == NULL) {
13958                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13959                 }
13960                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
13961                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13962         }
13963         return NDR_ERR_SUCCESS;
13964 }
13965
13966 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r)
13967 {
13968         uint32_t _ptr_server_name;
13969         TALLOC_CTX *_mem_save_server_name_0;
13970         TALLOC_CTX *_mem_save_dom_trust_list_0;
13971         if (flags & NDR_IN) {
13972                 ZERO_STRUCT(r->out);
13973
13974                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13975                 if (_ptr_server_name) {
13976                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13977                 } else {
13978                         r->in.server_name = NULL;
13979                 }
13980                 if (r->in.server_name) {
13981                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13982                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13983                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13984                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13985                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13986                                 return 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));
13987                         }
13988                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13989                         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));
13990                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13991                 }
13992                 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13993                 ZERO_STRUCTP(r->out.dom_trust_list);
13994         }
13995         if (flags & NDR_OUT) {
13996                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13997                         NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13998                 }
13999                 _mem_save_dom_trust_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
14000                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dom_trust_list, LIBNDR_FLAG_REF_ALLOC);
14001                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
14002                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_trust_list_0, LIBNDR_FLAG_REF_ALLOC);
14003                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14004         }
14005         return NDR_ERR_SUCCESS;
14006 }
14007
14008 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
14009 {
14010         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomainsEx");
14011         ndr->depth++;
14012         if (flags & NDR_SET_VALUES) {
14013                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14014         }
14015         if (flags & NDR_IN) {
14016                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomainsEx");
14017                 ndr->depth++;
14018                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14019                 ndr->depth++;
14020                 if (r->in.server_name) {
14021                         ndr_print_string(ndr, "server_name", r->in.server_name);
14022                 }
14023                 ndr->depth--;
14024                 ndr->depth--;
14025         }
14026         if (flags & NDR_OUT) {
14027                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomainsEx");
14028                 ndr->depth++;
14029                 ndr_print_ptr(ndr, "dom_trust_list", r->out.dom_trust_list);
14030                 ndr->depth++;
14031                 ndr_print_netr_DomainTrustList(ndr, "dom_trust_list", r->out.dom_trust_list);
14032                 ndr->depth--;
14033                 ndr_print_WERROR(ndr, "result", r->out.result);
14034                 ndr->depth--;
14035         }
14036         ndr->depth--;
14037 }
14038
14039 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesExW *r)
14040 {
14041         uint32_t cntr_addresses_1;
14042         if (flags & NDR_IN) {
14043                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14044                 if (r->in.server_name) {
14045                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14046                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14047                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14048                         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));
14049                 }
14050                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14051                 if (r->in.addresses == NULL) {
14052                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14053                 }
14054                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14055                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14056                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
14057                 }
14058                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14059                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
14060                 }
14061         }
14062         if (flags & NDR_OUT) {
14063                 if (r->out.ctr == NULL) {
14064                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14065                 }
14066                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
14067                 if (*r->out.ctr) {
14068                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14069                 }
14070                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14071         }
14072         return NDR_ERR_SUCCESS;
14073 }
14074
14075 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r)
14076 {
14077         uint32_t _ptr_server_name;
14078         uint32_t cntr_addresses_1;
14079         uint32_t _ptr_ctr;
14080         TALLOC_CTX *_mem_save_server_name_0;
14081         TALLOC_CTX *_mem_save_addresses_1;
14082         TALLOC_CTX *_mem_save_ctr_0;
14083         TALLOC_CTX *_mem_save_ctr_1;
14084         if (flags & NDR_IN) {
14085                 ZERO_STRUCT(r->out);
14086
14087                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14088                 if (_ptr_server_name) {
14089                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14090                 } else {
14091                         r->in.server_name = NULL;
14092                 }
14093                 if (r->in.server_name) {
14094                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14095                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14096                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14097                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14098                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14099                                 return 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));
14100                         }
14101                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14102                         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));
14103                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14104                 }
14105                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
14106                 if (r->in.count < 0 || r->in.count > 32000) {
14107                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
14108                 }
14109                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
14110                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14111                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
14112                 }
14113                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
14114                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
14115                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14116                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
14117                 }
14118                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
14119                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
14120                 }
14121                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
14122                 NDR_PULL_ALLOC(ndr, r->out.ctr);
14123                 ZERO_STRUCTP(r->out.ctr);
14124                 if (r->in.addresses) {
14125                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
14126                 }
14127         }
14128         if (flags & NDR_OUT) {
14129                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14130                         NDR_PULL_ALLOC(ndr, r->out.ctr);
14131                 }
14132                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14133                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14134                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
14135                 if (_ptr_ctr) {
14136                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
14137                 } else {
14138                         *r->out.ctr = NULL;
14139                 }
14140                 if (*r->out.ctr) {
14141                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
14142                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
14143                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14144                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
14145                 }
14146                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14147                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14148         }
14149         return NDR_ERR_SUCCESS;
14150 }
14151
14152 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesExW *r)
14153 {
14154         uint32_t cntr_addresses_1;
14155         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExW");
14156         ndr->depth++;
14157         if (flags & NDR_SET_VALUES) {
14158                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14159         }
14160         if (flags & NDR_IN) {
14161                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesExW");
14162                 ndr->depth++;
14163                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14164                 ndr->depth++;
14165                 if (r->in.server_name) {
14166                         ndr_print_string(ndr, "server_name", r->in.server_name);
14167                 }
14168                 ndr->depth--;
14169                 ndr_print_uint32(ndr, "count", r->in.count);
14170                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
14171                 ndr->depth++;
14172                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", (int)r->in.count);
14173                 ndr->depth++;
14174                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
14175                         char *idx_1=NULL;
14176                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
14177                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
14178                                 free(idx_1);
14179                         }
14180                 }
14181                 ndr->depth--;
14182                 ndr->depth--;
14183                 ndr->depth--;
14184         }
14185         if (flags & NDR_OUT) {
14186                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesExW");
14187                 ndr->depth++;
14188                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14189                 ndr->depth++;
14190                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
14191                 ndr->depth++;
14192                 if (*r->out.ctr) {
14193                         ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr, "ctr", *r->out.ctr);
14194                 }
14195                 ndr->depth--;
14196                 ndr->depth--;
14197                 ndr_print_WERROR(ndr, "result", r->out.result);
14198                 ndr->depth--;
14199         }
14200         ndr->depth--;
14201 }
14202
14203 static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *ndr, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
14204 {
14205         if (flags & NDR_IN) {
14206                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14207                 if (r->in.server_name) {
14208                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14209                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14210                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14211                         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));
14212                 }
14213         }
14214         if (flags & NDR_OUT) {
14215                 if (r->out.ctr == NULL) {
14216                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14217                 }
14218                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
14219                 if (*r->out.ctr) {
14220                         NDR_CHECK(ndr_push_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14221                 }
14222                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14223         }
14224         return NDR_ERR_SUCCESS;
14225 }
14226
14227 static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r)
14228 {
14229         uint32_t _ptr_server_name;
14230         uint32_t _ptr_ctr;
14231         TALLOC_CTX *_mem_save_server_name_0;
14232         TALLOC_CTX *_mem_save_ctr_0;
14233         TALLOC_CTX *_mem_save_ctr_1;
14234         if (flags & NDR_IN) {
14235                 ZERO_STRUCT(r->out);
14236
14237                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14238                 if (_ptr_server_name) {
14239                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14240                 } else {
14241                         r->in.server_name = NULL;
14242                 }
14243                 if (r->in.server_name) {
14244                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14245                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14246                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14247                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14248                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14249                                 return 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));
14250                         }
14251                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14252                         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));
14253                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14254                 }
14255                 NDR_PULL_ALLOC(ndr, r->out.ctr);
14256                 ZERO_STRUCTP(r->out.ctr);
14257         }
14258         if (flags & NDR_OUT) {
14259                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14260                         NDR_PULL_ALLOC(ndr, r->out.ctr);
14261                 }
14262                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14263                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
14264                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
14265                 if (_ptr_ctr) {
14266                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
14267                 } else {
14268                         *r->out.ctr = NULL;
14269                 }
14270                 if (*r->out.ctr) {
14271                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
14272                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
14273                         NDR_CHECK(ndr_pull_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
14274                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
14275                 }
14276                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
14277                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14278         }
14279         return NDR_ERR_SUCCESS;
14280 }
14281
14282 _PUBLIC_ void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
14283 {
14284         ndr_print_struct(ndr, name, "netr_DsrGetDcSiteCoverageW");
14285         ndr->depth++;
14286         if (flags & NDR_SET_VALUES) {
14287                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14288         }
14289         if (flags & NDR_IN) {
14290                 ndr_print_struct(ndr, "in", "netr_DsrGetDcSiteCoverageW");
14291                 ndr->depth++;
14292                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14293                 ndr->depth++;
14294                 if (r->in.server_name) {
14295                         ndr_print_string(ndr, "server_name", r->in.server_name);
14296                 }
14297                 ndr->depth--;
14298                 ndr->depth--;
14299         }
14300         if (flags & NDR_OUT) {
14301                 ndr_print_struct(ndr, "out", "netr_DsrGetDcSiteCoverageW");
14302                 ndr->depth++;
14303                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
14304                 ndr->depth++;
14305                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
14306                 ndr->depth++;
14307                 if (*r->out.ctr) {
14308                         ndr_print_DcSitesCtr(ndr, "ctr", *r->out.ctr);
14309                 }
14310                 ndr->depth--;
14311                 ndr->depth--;
14312                 ndr_print_WERROR(ndr, "result", r->out.result);
14313                 ndr->depth--;
14314         }
14315         ndr->depth--;
14316 }
14317
14318 static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
14319 {
14320         if (flags & NDR_IN) {
14321                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14322                 if (r->in.server_name) {
14323                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14324                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14325                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14326                         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));
14327                 }
14328                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
14329                 if (r->in.computer_name) {
14330                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14331                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14332                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14333                         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));
14334                 }
14335                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
14336                 if (r->in.logon == NULL) {
14337                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14338                 }
14339                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
14340                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
14341                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
14342                 if (r->in.flags == NULL) {
14343                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14344                 }
14345                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
14346         }
14347         if (flags & NDR_OUT) {
14348                 if (r->out.validation == NULL) {
14349                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14350                 }
14351                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14352                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14353                 if (r->out.authoritative == NULL) {
14354                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14355                 }
14356                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
14357                 if (r->out.flags == NULL) {
14358                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14359                 }
14360                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
14361                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
14362         }
14363         return NDR_ERR_SUCCESS;
14364 }
14365
14366 static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
14367 {
14368         uint32_t _ptr_server_name;
14369         uint32_t _ptr_computer_name;
14370         TALLOC_CTX *_mem_save_server_name_0;
14371         TALLOC_CTX *_mem_save_computer_name_0;
14372         TALLOC_CTX *_mem_save_logon_0;
14373         TALLOC_CTX *_mem_save_validation_0;
14374         TALLOC_CTX *_mem_save_authoritative_0;
14375         TALLOC_CTX *_mem_save_flags_0;
14376         if (flags & NDR_IN) {
14377                 ZERO_STRUCT(r->out);
14378
14379                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14380                 if (_ptr_server_name) {
14381                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14382                 } else {
14383                         r->in.server_name = NULL;
14384                 }
14385                 if (r->in.server_name) {
14386                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14387                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14388                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14389                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14390                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14391                                 return 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));
14392                         }
14393                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14394                         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));
14395                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14396                 }
14397                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
14398                 if (_ptr_computer_name) {
14399                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
14400                 } else {
14401                         r->in.computer_name = NULL;
14402                 }
14403                 if (r->in.computer_name) {
14404                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14405                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
14406                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14407                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14408                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14409                                 return 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));
14410                         }
14411                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14412                         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));
14413                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
14414                 }
14415                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
14416                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14417                         NDR_PULL_ALLOC(ndr, r->in.logon);
14418                 }
14419                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
14420                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
14421                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
14422                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
14423                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
14424                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
14425                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14426                         NDR_PULL_ALLOC(ndr, r->in.flags);
14427                 }
14428                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14429                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
14430                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
14431                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14432                 NDR_PULL_ALLOC(ndr, r->out.validation);
14433                 ZERO_STRUCTP(r->out.validation);
14434                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
14435                 ZERO_STRUCTP(r->out.authoritative);
14436                 NDR_PULL_ALLOC(ndr, r->out.flags);
14437                 *r->out.flags = *r->in.flags;
14438         }
14439         if (flags & NDR_OUT) {
14440                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14441                         NDR_PULL_ALLOC(ndr, r->out.validation);
14442                 }
14443                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
14444                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
14445                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14446                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14447                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
14448                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14449                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
14450                 }
14451                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
14452                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
14453                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
14454                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
14455                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14456                         NDR_PULL_ALLOC(ndr, r->out.flags);
14457                 }
14458                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14459                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
14460                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
14461                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14462                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14463         }
14464         return NDR_ERR_SUCCESS;
14465 }
14466
14467 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
14468 {
14469         ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
14470         ndr->depth++;
14471         if (flags & NDR_SET_VALUES) {
14472                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14473         }
14474         if (flags & NDR_IN) {
14475                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
14476                 ndr->depth++;
14477                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14478                 ndr->depth++;
14479                 if (r->in.server_name) {
14480                         ndr_print_string(ndr, "server_name", r->in.server_name);
14481                 }
14482                 ndr->depth--;
14483                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14484                 ndr->depth++;
14485                 if (r->in.computer_name) {
14486                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
14487                 }
14488                 ndr->depth--;
14489                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
14490                 ndr_print_ptr(ndr, "logon", r->in.logon);
14491                 ndr->depth++;
14492                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
14493                 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
14494                 ndr->depth--;
14495                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
14496                 ndr_print_ptr(ndr, "flags", r->in.flags);
14497                 ndr->depth++;
14498                 ndr_print_uint32(ndr, "flags", *r->in.flags);
14499                 ndr->depth--;
14500                 ndr->depth--;
14501         }
14502         if (flags & NDR_OUT) {
14503                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
14504                 ndr->depth++;
14505                 ndr_print_ptr(ndr, "validation", r->out.validation);
14506                 ndr->depth++;
14507                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
14508                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
14509                 ndr->depth--;
14510                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
14511                 ndr->depth++;
14512                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
14513                 ndr->depth--;
14514                 ndr_print_ptr(ndr, "flags", r->out.flags);
14515                 ndr->depth++;
14516                 ndr_print_uint32(ndr, "flags", *r->out.flags);
14517                 ndr->depth--;
14518                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14519                 ndr->depth--;
14520         }
14521         ndr->depth--;
14522 }
14523
14524 static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
14525 {
14526         if (flags & NDR_IN) {
14527                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14528                 if (r->in.server_name) {
14529                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14530                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14531                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14532                         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));
14533                 }
14534                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
14535         }
14536         if (flags & NDR_OUT) {
14537                 if (r->out.trusts == NULL) {
14538                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14539                 }
14540                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
14541                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14542         }
14543         return NDR_ERR_SUCCESS;
14544 }
14545
14546 static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
14547 {
14548         uint32_t _ptr_server_name;
14549         TALLOC_CTX *_mem_save_server_name_0;
14550         TALLOC_CTX *_mem_save_trusts_0;
14551         if (flags & NDR_IN) {
14552                 ZERO_STRUCT(r->out);
14553
14554                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14555                 if (_ptr_server_name) {
14556                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14557                 } else {
14558                         r->in.server_name = NULL;
14559                 }
14560                 if (r->in.server_name) {
14561                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14562                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14563                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14564                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14565                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14566                                 return 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));
14567                         }
14568                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14569                         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));
14570                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14571                 }
14572                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
14573                 NDR_PULL_ALLOC(ndr, r->out.trusts);
14574                 ZERO_STRUCTP(r->out.trusts);
14575         }
14576         if (flags & NDR_OUT) {
14577                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14578                         NDR_PULL_ALLOC(ndr, r->out.trusts);
14579                 }
14580                 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
14581                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
14582                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
14583                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, LIBNDR_FLAG_REF_ALLOC);
14584                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14585         }
14586         return NDR_ERR_SUCCESS;
14587 }
14588
14589 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
14590 {
14591         ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
14592         ndr->depth++;
14593         if (flags & NDR_SET_VALUES) {
14594                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14595         }
14596         if (flags & NDR_IN) {
14597                 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
14598                 ndr->depth++;
14599                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14600                 ndr->depth++;
14601                 if (r->in.server_name) {
14602                         ndr_print_string(ndr, "server_name", r->in.server_name);
14603                 }
14604                 ndr->depth--;
14605                 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
14606                 ndr->depth--;
14607         }
14608         if (flags & NDR_OUT) {
14609                 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
14610                 ndr->depth++;
14611                 ndr_print_ptr(ndr, "trusts", r->out.trusts);
14612                 ndr->depth++;
14613                 ndr_print_netr_DomainTrustList(ndr, "trusts", r->out.trusts);
14614                 ndr->depth--;
14615                 ndr_print_WERROR(ndr, "result", r->out.result);
14616                 ndr->depth--;
14617         }
14618         ndr->depth--;
14619 }
14620
14621 static enum ndr_err_code ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push *ndr, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
14622 {
14623         if (flags & NDR_IN) {
14624                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14625                 if (r->in.server_name) {
14626                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14627                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14628                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14629                         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));
14630                 }
14631                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain));
14632                 if (r->in.domain) {
14633                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
14634                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14635                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
14636                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14637                 }
14638                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
14639                 if (r->in.domain_guid) {
14640                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
14641                 }
14642                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dsa_guid));
14643                 if (r->in.dsa_guid) {
14644                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
14645                 }
14646                 if (r->in.dns_host == NULL) {
14647                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14648                 }
14649                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
14650                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14651                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
14652                 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));
14653         }
14654         if (flags & NDR_OUT) {
14655                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14656         }
14657         return NDR_ERR_SUCCESS;
14658 }
14659
14660 static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull *ndr, int flags, struct netr_DsrDeregisterDNSHostRecords *r)
14661 {
14662         uint32_t _ptr_server_name;
14663         uint32_t _ptr_domain;
14664         uint32_t _ptr_domain_guid;
14665         uint32_t _ptr_dsa_guid;
14666         TALLOC_CTX *_mem_save_server_name_0;
14667         TALLOC_CTX *_mem_save_domain_0;
14668         TALLOC_CTX *_mem_save_domain_guid_0;
14669         TALLOC_CTX *_mem_save_dsa_guid_0;
14670         if (flags & NDR_IN) {
14671                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14672                 if (_ptr_server_name) {
14673                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14674                 } else {
14675                         r->in.server_name = NULL;
14676                 }
14677                 if (r->in.server_name) {
14678                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14679                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14680                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14681                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14682                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14683                                 return 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));
14684                         }
14685                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14686                         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));
14687                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14688                 }
14689                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
14690                 if (_ptr_domain) {
14691                         NDR_PULL_ALLOC(ndr, r->in.domain);
14692                 } else {
14693                         r->in.domain = NULL;
14694                 }
14695                 if (r->in.domain) {
14696                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
14697                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain, 0);
14698                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
14699                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
14700                         if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
14701                                 return 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));
14702                         }
14703                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t)));
14704                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t), CH_UTF16));
14705                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
14706                 }
14707                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
14708                 if (_ptr_domain_guid) {
14709                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
14710                 } else {
14711                         r->in.domain_guid = NULL;
14712                 }
14713                 if (r->in.domain_guid) {
14714                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
14715                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
14716                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.domain_guid));
14717                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
14718                 }
14719                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_guid));
14720                 if (_ptr_dsa_guid) {
14721                         NDR_PULL_ALLOC(ndr, r->in.dsa_guid);
14722                 } else {
14723                         r->in.dsa_guid = NULL;
14724                 }
14725                 if (r->in.dsa_guid) {
14726                         _mem_save_dsa_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
14727                         NDR_PULL_SET_MEM_CTX(ndr, r->in.dsa_guid, 0);
14728                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, r->in.dsa_guid));
14729                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_guid_0, 0);
14730                 }
14731                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_host));
14732                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_host));
14733                 if (ndr_get_array_length(ndr, &r->in.dns_host) > ndr_get_array_size(ndr, &r->in.dns_host)) {
14734                         return 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));
14735                 }
14736                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t)));
14737                 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));
14738         }
14739         if (flags & NDR_OUT) {
14740                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14741         }
14742         return NDR_ERR_SUCCESS;
14743 }
14744
14745 _PUBLIC_ void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
14746 {
14747         ndr_print_struct(ndr, name, "netr_DsrDeregisterDNSHostRecords");
14748         ndr->depth++;
14749         if (flags & NDR_SET_VALUES) {
14750                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14751         }
14752         if (flags & NDR_IN) {
14753                 ndr_print_struct(ndr, "in", "netr_DsrDeregisterDNSHostRecords");
14754                 ndr->depth++;
14755                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14756                 ndr->depth++;
14757                 if (r->in.server_name) {
14758                         ndr_print_string(ndr, "server_name", r->in.server_name);
14759                 }
14760                 ndr->depth--;
14761                 ndr_print_ptr(ndr, "domain", r->in.domain);
14762                 ndr->depth++;
14763                 if (r->in.domain) {
14764                         ndr_print_string(ndr, "domain", r->in.domain);
14765                 }
14766                 ndr->depth--;
14767                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
14768                 ndr->depth++;
14769                 if (r->in.domain_guid) {
14770                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
14771                 }
14772                 ndr->depth--;
14773                 ndr_print_ptr(ndr, "dsa_guid", r->in.dsa_guid);
14774                 ndr->depth++;
14775                 if (r->in.dsa_guid) {
14776                         ndr_print_GUID(ndr, "dsa_guid", r->in.dsa_guid);
14777                 }
14778                 ndr->depth--;
14779                 ndr_print_ptr(ndr, "dns_host", r->in.dns_host);
14780                 ndr->depth++;
14781                 ndr_print_string(ndr, "dns_host", r->in.dns_host);
14782                 ndr->depth--;
14783                 ndr->depth--;
14784         }
14785         if (flags & NDR_OUT) {
14786                 ndr_print_struct(ndr, "out", "netr_DsrDeregisterDNSHostRecords");
14787                 ndr->depth++;
14788                 ndr_print_WERROR(ndr, "result", r->out.result);
14789                 ndr->depth--;
14790         }
14791         ndr->depth--;
14792 }
14793
14794 static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push *ndr, int flags, const struct netr_ServerTrustPasswordsGet *r)
14795 {
14796         if (flags & NDR_IN) {
14797                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14798                 if (r->in.server_name) {
14799                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14800                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14801                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14802                         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));
14803                 }
14804                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
14805                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14806                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
14807                 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));
14808                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
14809                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14810                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14811                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14812                 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));
14813                 if (r->in.credential == NULL) {
14814                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14815                 }
14816                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14817         }
14818         if (flags & NDR_OUT) {
14819                 if (r->out.return_authenticator == NULL) {
14820                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14821                 }
14822                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14823                 if (r->out.password == NULL) {
14824                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14825                 }
14826                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password));
14827                 if (r->out.password2 == NULL) {
14828                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14829                 }
14830                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.password2));
14831                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
14832         }
14833         return NDR_ERR_SUCCESS;
14834 }
14835
14836 static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r)
14837 {
14838         uint32_t _ptr_server_name;
14839         TALLOC_CTX *_mem_save_server_name_0;
14840         TALLOC_CTX *_mem_save_credential_0;
14841         TALLOC_CTX *_mem_save_return_authenticator_0;
14842         TALLOC_CTX *_mem_save_password_0;
14843         TALLOC_CTX *_mem_save_password2_0;
14844         if (flags & NDR_IN) {
14845                 ZERO_STRUCT(r->out);
14846
14847                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14848                 if (_ptr_server_name) {
14849                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14850                 } else {
14851                         r->in.server_name = NULL;
14852                 }
14853                 if (r->in.server_name) {
14854                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14855                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14856                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14857                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14858                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14859                                 return 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));
14860                         }
14861                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14862                         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));
14863                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14864                 }
14865                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
14866                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
14867                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
14868                         return 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));
14869                 }
14870                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
14871                 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));
14872                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
14873                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14874                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14875                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14876                         return 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));
14877                 }
14878                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14879                 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));
14880                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14881                         NDR_PULL_ALLOC(ndr, r->in.credential);
14882                 }
14883                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14884                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
14885                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14886                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
14887                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14888                 ZERO_STRUCTP(r->out.return_authenticator);
14889                 NDR_PULL_ALLOC(ndr, r->out.password);
14890                 ZERO_STRUCTP(r->out.password);
14891                 NDR_PULL_ALLOC(ndr, r->out.password2);
14892                 ZERO_STRUCTP(r->out.password2);
14893         }
14894         if (flags & NDR_OUT) {
14895                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14896                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14897                 }
14898                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14899                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14900                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14901                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14902                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14903                         NDR_PULL_ALLOC(ndr, r->out.password);
14904                 }
14905                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
14906                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
14907                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password));
14908                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
14909                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14910                         NDR_PULL_ALLOC(ndr, r->out.password2);
14911                 }
14912                 _mem_save_password2_0 = NDR_PULL_GET_MEM_CTX(ndr);
14913                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password2, LIBNDR_FLAG_REF_ALLOC);
14914                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.password2));
14915                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password2_0, LIBNDR_FLAG_REF_ALLOC);
14916                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14917         }
14918         return NDR_ERR_SUCCESS;
14919 }
14920
14921 _PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerTrustPasswordsGet *r)
14922 {
14923         ndr_print_struct(ndr, name, "netr_ServerTrustPasswordsGet");
14924         ndr->depth++;
14925         if (flags & NDR_SET_VALUES) {
14926                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14927         }
14928         if (flags & NDR_IN) {
14929                 ndr_print_struct(ndr, "in", "netr_ServerTrustPasswordsGet");
14930                 ndr->depth++;
14931                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14932                 ndr->depth++;
14933                 if (r->in.server_name) {
14934                         ndr_print_string(ndr, "server_name", r->in.server_name);
14935                 }
14936                 ndr->depth--;
14937                 ndr_print_string(ndr, "account_name", r->in.account_name);
14938                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
14939                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
14940                 ndr_print_ptr(ndr, "credential", r->in.credential);
14941                 ndr->depth++;
14942                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14943                 ndr->depth--;
14944                 ndr->depth--;
14945         }
14946         if (flags & NDR_OUT) {
14947                 ndr_print_struct(ndr, "out", "netr_ServerTrustPasswordsGet");
14948                 ndr->depth++;
14949                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14950                 ndr->depth++;
14951                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14952                 ndr->depth--;
14953                 ndr_print_ptr(ndr, "password", r->out.password);
14954                 ndr->depth++;
14955                 ndr_print_samr_Password(ndr, "password", r->out.password);
14956                 ndr->depth--;
14957                 ndr_print_ptr(ndr, "password2", r->out.password2);
14958                 ndr->depth++;
14959                 ndr_print_samr_Password(ndr, "password2", r->out.password2);
14960                 ndr->depth--;
14961                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14962                 ndr->depth--;
14963         }
14964         ndr->depth--;
14965 }
14966
14967 static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_DsRGetForestTrustInformation *r)
14968 {
14969         if (flags & NDR_IN) {
14970                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14971                 if (r->in.server_name) {
14972                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14973                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14974                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14975                         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));
14976                 }
14977                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.trusted_domain_name));
14978                 if (r->in.trusted_domain_name) {
14979                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14980                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14981                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14982                         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));
14983                 }
14984                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14985         }
14986         if (flags & NDR_OUT) {
14987                 if (r->out.forest_trust_info == NULL) {
14988                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14989                 }
14990                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
14991                 if (*r->out.forest_trust_info) {
14992                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14993                 }
14994                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14995         }
14996         return NDR_ERR_SUCCESS;
14997 }
14998
14999 static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r)
15000 {
15001         uint32_t _ptr_server_name;
15002         uint32_t _ptr_trusted_domain_name;
15003         uint32_t _ptr_forest_trust_info;
15004         TALLOC_CTX *_mem_save_server_name_0;
15005         TALLOC_CTX *_mem_save_trusted_domain_name_0;
15006         TALLOC_CTX *_mem_save_forest_trust_info_0;
15007         TALLOC_CTX *_mem_save_forest_trust_info_1;
15008         if (flags & NDR_IN) {
15009                 ZERO_STRUCT(r->out);
15010
15011                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15012                 if (_ptr_server_name) {
15013                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15014                 } else {
15015                         r->in.server_name = NULL;
15016                 }
15017                 if (r->in.server_name) {
15018                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15019                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15020                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15021                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15022                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15023                                 return 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));
15024                         }
15025                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15026                         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));
15027                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15028                 }
15029                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
15030                 if (_ptr_trusted_domain_name) {
15031                         NDR_PULL_ALLOC(ndr, r->in.trusted_domain_name);
15032                 } else {
15033                         r->in.trusted_domain_name = NULL;
15034                 }
15035                 if (r->in.trusted_domain_name) {
15036                         _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15037                         NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0);
15038                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
15039                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
15040                         if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
15041                                 return 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));
15042                         }
15043                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
15044                         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));
15045                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
15046                 }
15047                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
15048                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15049                 ZERO_STRUCTP(r->out.forest_trust_info);
15050         }
15051         if (flags & NDR_OUT) {
15052                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15053                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15054                 }
15055                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15056                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
15057                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
15058                 if (_ptr_forest_trust_info) {
15059                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
15060                 } else {
15061                         *r->out.forest_trust_info = NULL;
15062                 }
15063                 if (*r->out.forest_trust_info) {
15064                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
15065                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
15066                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15067                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
15068                 }
15069                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
15070                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15071         }
15072         return NDR_ERR_SUCCESS;
15073 }
15074
15075 _PUBLIC_ void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r)
15076 {
15077         ndr_print_struct(ndr, name, "netr_DsRGetForestTrustInformation");
15078         ndr->depth++;
15079         if (flags & NDR_SET_VALUES) {
15080                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15081         }
15082         if (flags & NDR_IN) {
15083                 ndr_print_struct(ndr, "in", "netr_DsRGetForestTrustInformation");
15084                 ndr->depth++;
15085                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15086                 ndr->depth++;
15087                 if (r->in.server_name) {
15088                         ndr_print_string(ndr, "server_name", r->in.server_name);
15089                 }
15090                 ndr->depth--;
15091                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15092                 ndr->depth++;
15093                 if (r->in.trusted_domain_name) {
15094                         ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15095                 }
15096                 ndr->depth--;
15097                 ndr_print_uint32(ndr, "flags", r->in.flags);
15098                 ndr->depth--;
15099         }
15100         if (flags & NDR_OUT) {
15101                 ndr_print_struct(ndr, "out", "netr_DsRGetForestTrustInformation");
15102                 ndr->depth++;
15103                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
15104                 ndr->depth++;
15105                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
15106                 ndr->depth++;
15107                 if (*r->out.forest_trust_info) {
15108                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
15109                 }
15110                 ndr->depth--;
15111                 ndr->depth--;
15112                 ndr_print_WERROR(ndr, "result", r->out.result);
15113                 ndr->depth--;
15114         }
15115         ndr->depth--;
15116 }
15117
15118 static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_GetForestTrustInformation *r)
15119 {
15120         if (flags & NDR_IN) {
15121                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15122                 if (r->in.server_name) {
15123                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15124                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15125                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15126                         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));
15127                 }
15128                 if (r->in.trusted_domain_name == NULL) {
15129                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15130                 }
15131                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15132                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15133                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
15134                 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));
15135                 if (r->in.credential == NULL) {
15136                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15137                 }
15138                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15139                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
15140         }
15141         if (flags & NDR_OUT) {
15142                 if (r->out.return_authenticator == NULL) {
15143                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15144                 }
15145                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15146                 if (r->out.forest_trust_info == NULL) {
15147                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15148                 }
15149                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
15150                 if (*r->out.forest_trust_info) {
15151                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15152                 }
15153                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15154         }
15155         return NDR_ERR_SUCCESS;
15156 }
15157
15158 static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r)
15159 {
15160         uint32_t _ptr_server_name;
15161         uint32_t _ptr_forest_trust_info;
15162         TALLOC_CTX *_mem_save_server_name_0;
15163         TALLOC_CTX *_mem_save_credential_0;
15164         TALLOC_CTX *_mem_save_return_authenticator_0;
15165         TALLOC_CTX *_mem_save_forest_trust_info_0;
15166         TALLOC_CTX *_mem_save_forest_trust_info_1;
15167         if (flags & NDR_IN) {
15168                 ZERO_STRUCT(r->out);
15169
15170                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15171                 if (_ptr_server_name) {
15172                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15173                 } else {
15174                         r->in.server_name = NULL;
15175                 }
15176                 if (r->in.server_name) {
15177                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15178                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15179                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15180                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15181                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15182                                 return 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));
15183                         }
15184                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15185                         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));
15186                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15187                 }
15188                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
15189                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
15190                 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
15191                         return 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));
15192                 }
15193                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
15194                 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));
15195                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15196                         NDR_PULL_ALLOC(ndr, r->in.credential);
15197                 }
15198                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
15199                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
15200                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15201                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
15202                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
15203                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15204                 ZERO_STRUCTP(r->out.return_authenticator);
15205                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15206                 ZERO_STRUCTP(r->out.forest_trust_info);
15207         }
15208         if (flags & NDR_OUT) {
15209                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15210                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15211                 }
15212                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15213                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
15214                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15215                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
15216                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15217                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
15218                 }
15219                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15220                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
15221                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
15222                 if (_ptr_forest_trust_info) {
15223                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
15224                 } else {
15225                         *r->out.forest_trust_info = NULL;
15226                 }
15227                 if (*r->out.forest_trust_info) {
15228                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
15229                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
15230                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
15231                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
15232                 }
15233                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
15234                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15235         }
15236         return NDR_ERR_SUCCESS;
15237 }
15238
15239 _PUBLIC_ void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r)
15240 {
15241         ndr_print_struct(ndr, name, "netr_GetForestTrustInformation");
15242         ndr->depth++;
15243         if (flags & NDR_SET_VALUES) {
15244                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15245         }
15246         if (flags & NDR_IN) {
15247                 ndr_print_struct(ndr, "in", "netr_GetForestTrustInformation");
15248                 ndr->depth++;
15249                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15250                 ndr->depth++;
15251                 if (r->in.server_name) {
15252                         ndr_print_string(ndr, "server_name", r->in.server_name);
15253                 }
15254                 ndr->depth--;
15255                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15256                 ndr->depth++;
15257                 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
15258                 ndr->depth--;
15259                 ndr_print_ptr(ndr, "credential", r->in.credential);
15260                 ndr->depth++;
15261                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
15262                 ndr->depth--;
15263                 ndr_print_uint32(ndr, "flags", r->in.flags);
15264                 ndr->depth--;
15265         }
15266         if (flags & NDR_OUT) {
15267                 ndr_print_struct(ndr, "out", "netr_GetForestTrustInformation");
15268                 ndr->depth++;
15269                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
15270                 ndr->depth++;
15271                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
15272                 ndr->depth--;
15273                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
15274                 ndr->depth++;
15275                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
15276                 ndr->depth++;
15277                 if (*r->out.forest_trust_info) {
15278                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
15279                 }
15280                 ndr->depth--;
15281                 ndr->depth--;
15282                 ndr_print_WERROR(ndr, "result", r->out.result);
15283                 ndr->depth--;
15284         }
15285         ndr->depth--;
15286 }
15287
15288 static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
15289 {
15290         if (flags & NDR_IN) {
15291                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15292                 if (r->in.server_name) {
15293                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15294                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15295                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15296                         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));
15297                 }
15298                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
15299                 if (r->in.computer_name) {
15300                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15301                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15302                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15303                         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));
15304                 }
15305                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
15306                 if (r->in.credential) {
15307                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15308                 }
15309                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
15310                 if (r->in.return_authenticator) {
15311                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
15312                 }
15313                 NDR_CHECK(ndr_push_netr_LogonInfoClass(ndr, NDR_SCALARS, r->in.logon_level));
15314                 if (r->in.logon == NULL) {
15315                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15316                 }
15317                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
15318                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
15319                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
15320                 if (r->in.flags == NULL) {
15321                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15322                 }
15323                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
15324         }
15325         if (flags & NDR_OUT) {
15326                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
15327                 if (r->out.return_authenticator) {
15328                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15329                 }
15330                 if (r->out.validation == NULL) {
15331                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15332                 }
15333                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
15334                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
15335                 if (r->out.authoritative == NULL) {
15336                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15337                 }
15338                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
15339                 if (r->out.flags == NULL) {
15340                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15341                 }
15342                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
15343                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
15344         }
15345         return NDR_ERR_SUCCESS;
15346 }
15347
15348 static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
15349 {
15350         uint32_t _ptr_server_name;
15351         uint32_t _ptr_computer_name;
15352         uint32_t _ptr_credential;
15353         uint32_t _ptr_return_authenticator;
15354         TALLOC_CTX *_mem_save_server_name_0;
15355         TALLOC_CTX *_mem_save_computer_name_0;
15356         TALLOC_CTX *_mem_save_credential_0;
15357         TALLOC_CTX *_mem_save_return_authenticator_0;
15358         TALLOC_CTX *_mem_save_logon_0;
15359         TALLOC_CTX *_mem_save_validation_0;
15360         TALLOC_CTX *_mem_save_authoritative_0;
15361         TALLOC_CTX *_mem_save_flags_0;
15362         if (flags & NDR_IN) {
15363                 ZERO_STRUCT(r->out);
15364
15365                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15366                 if (_ptr_server_name) {
15367                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15368                 } else {
15369                         r->in.server_name = NULL;
15370                 }
15371                 if (r->in.server_name) {
15372                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15373                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15374                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15375                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15376                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15377                                 return 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));
15378                         }
15379                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15380                         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));
15381                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15382                 }
15383                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
15384                 if (_ptr_computer_name) {
15385                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
15386                 } else {
15387                         r->in.computer_name = NULL;
15388                 }
15389                 if (r->in.computer_name) {
15390                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15391                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
15392                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
15393                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
15394                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
15395                                 return 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));
15396                         }
15397                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
15398                         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));
15399                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
15400                 }
15401                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
15402                 if (_ptr_credential) {
15403                         NDR_PULL_ALLOC(ndr, r->in.credential);
15404                 } else {
15405                         r->in.credential = NULL;
15406                 }
15407                 if (r->in.credential) {
15408                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
15409                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
15410                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15411                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
15412                 }
15413                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
15414                 if (_ptr_return_authenticator) {
15415                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
15416                 } else {
15417                         r->in.return_authenticator = NULL;
15418                 }
15419                 if (r->in.return_authenticator) {
15420                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15421                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
15422                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
15423                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
15424                 }
15425                 NDR_CHECK(ndr_pull_netr_LogonInfoClass(ndr, NDR_SCALARS, &r->in.logon_level));
15426                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15427                         NDR_PULL_ALLOC(ndr, r->in.logon);
15428                 }
15429                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
15430                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
15431                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
15432                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
15433                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
15434                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
15435                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15436                         NDR_PULL_ALLOC(ndr, r->in.flags);
15437                 }
15438                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
15439                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
15440                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
15441                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
15442                 NDR_PULL_ALLOC(ndr, r->out.validation);
15443                 ZERO_STRUCTP(r->out.validation);
15444                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
15445                 ZERO_STRUCTP(r->out.authoritative);
15446                 NDR_PULL_ALLOC(ndr, r->out.flags);
15447                 *r->out.flags = *r->in.flags;
15448         }
15449         if (flags & NDR_OUT) {
15450                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
15451                 if (_ptr_return_authenticator) {
15452                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15453                 } else {
15454                         r->out.return_authenticator = NULL;
15455                 }
15456                 if (r->out.return_authenticator) {
15457                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15458                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
15459                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15460                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
15461                 }
15462                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15463                         NDR_PULL_ALLOC(ndr, r->out.validation);
15464                 }
15465                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
15466                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
15467                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
15468                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
15469                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
15470                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15471                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
15472                 }
15473                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
15474                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
15475                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
15476                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
15477                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15478                         NDR_PULL_ALLOC(ndr, r->out.flags);
15479                 }
15480                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
15481                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
15482                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
15483                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
15484                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
15485         }
15486         return NDR_ERR_SUCCESS;
15487 }
15488
15489 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
15490 {
15491         ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
15492         ndr->depth++;
15493         if (flags & NDR_SET_VALUES) {
15494                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15495         }
15496         if (flags & NDR_IN) {
15497                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
15498                 ndr->depth++;
15499                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15500                 ndr->depth++;
15501                 if (r->in.server_name) {
15502                         ndr_print_string(ndr, "server_name", r->in.server_name);
15503                 }
15504                 ndr->depth--;
15505                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
15506                 ndr->depth++;
15507                 if (r->in.computer_name) {
15508                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
15509                 }
15510                 ndr->depth--;
15511                 ndr_print_ptr(ndr, "credential", r->in.credential);
15512                 ndr->depth++;
15513                 if (r->in.credential) {
15514                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
15515                 }
15516                 ndr->depth--;
15517                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
15518                 ndr->depth++;
15519                 if (r->in.return_authenticator) {
15520                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
15521                 }
15522                 ndr->depth--;
15523                 ndr_print_netr_LogonInfoClass(ndr, "logon_level", r->in.logon_level);
15524                 ndr_print_ptr(ndr, "logon", r->in.logon);
15525                 ndr->depth++;
15526                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
15527                 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
15528                 ndr->depth--;
15529                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
15530                 ndr_print_ptr(ndr, "flags", r->in.flags);
15531                 ndr->depth++;
15532                 ndr_print_uint32(ndr, "flags", *r->in.flags);
15533                 ndr->depth--;
15534                 ndr->depth--;
15535         }
15536         if (flags & NDR_OUT) {
15537                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
15538                 ndr->depth++;
15539                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
15540                 ndr->depth++;
15541                 if (r->out.return_authenticator) {
15542                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
15543                 }
15544                 ndr->depth--;
15545                 ndr_print_ptr(ndr, "validation", r->out.validation);
15546                 ndr->depth++;
15547                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
15548                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
15549                 ndr->depth--;
15550                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
15551                 ndr->depth++;
15552                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
15553                 ndr->depth--;
15554                 ndr_print_ptr(ndr, "flags", r->out.flags);
15555                 ndr->depth++;
15556                 ndr_print_uint32(ndr, "flags", *r->out.flags);
15557                 ndr->depth--;
15558                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
15559                 ndr->depth--;
15560         }
15561         ndr->depth--;
15562 }
15563
15564 static enum ndr_err_code ndr_push_netr_ServerGetTrustInfo(struct ndr_push *ndr, int flags, const struct netr_ServerGetTrustInfo *r)
15565 {
15566         if (flags & NDR_IN) {
15567                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
15568                 if (r->in.server_name) {
15569                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15570                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15571                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
15572                         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));
15573                 }
15574                 if (r->in.account_name == NULL) {
15575                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15576                 }
15577                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
15578                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15579                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
15580                 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));
15581                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
15582                 if (r->in.computer_name == NULL) {
15583                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15584                 }
15585                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15586                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15587                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
15588                 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));
15589                 if (r->in.credential == NULL) {
15590                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15591                 }
15592                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15593         }
15594         if (flags & NDR_OUT) {
15595                 if (r->out.return_authenticator == NULL) {
15596                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15597                 }
15598                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15599                 if (r->out.new_owf_password == NULL) {
15600                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15601                 }
15602                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.new_owf_password));
15603                 if (r->out.old_owf_password == NULL) {
15604                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15605                 }
15606                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, r->out.old_owf_password));
15607                 if (r->out.trust_info == NULL) {
15608                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15609                 }
15610                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.trust_info));
15611                 if (*r->out.trust_info) {
15612                         NDR_CHECK(ndr_push_netr_TrustInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trust_info));
15613                 }
15614                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
15615         }
15616         return NDR_ERR_SUCCESS;
15617 }
15618
15619 static enum ndr_err_code ndr_pull_netr_ServerGetTrustInfo(struct ndr_pull *ndr, int flags, struct netr_ServerGetTrustInfo *r)
15620 {
15621         uint32_t _ptr_server_name;
15622         uint32_t _ptr_trust_info;
15623         TALLOC_CTX *_mem_save_server_name_0;
15624         TALLOC_CTX *_mem_save_credential_0;
15625         TALLOC_CTX *_mem_save_return_authenticator_0;
15626         TALLOC_CTX *_mem_save_new_owf_password_0;
15627         TALLOC_CTX *_mem_save_old_owf_password_0;
15628         TALLOC_CTX *_mem_save_trust_info_0;
15629         TALLOC_CTX *_mem_save_trust_info_1;
15630         if (flags & NDR_IN) {
15631                 ZERO_STRUCT(r->out);
15632
15633                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
15634                 if (_ptr_server_name) {
15635                         NDR_PULL_ALLOC(ndr, r->in.server_name);
15636                 } else {
15637                         r->in.server_name = NULL;
15638                 }
15639                 if (r->in.server_name) {
15640                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15641                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
15642                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
15643                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
15644                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
15645                                 return 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));
15646                         }
15647                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
15648                         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));
15649                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
15650                 }
15651                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
15652                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
15653                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
15654                         return 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));
15655                 }
15656                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
15657                 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));
15658                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
15659                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
15660                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
15661                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
15662                         return 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));
15663                 }
15664                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
15665                 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));
15666                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15667                         NDR_PULL_ALLOC(ndr, r->in.credential);
15668                 }
15669                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
15670                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
15671                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
15672                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
15673                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15674                 ZERO_STRUCTP(r->out.return_authenticator);
15675                 NDR_PULL_ALLOC(ndr, r->out.new_owf_password);
15676                 ZERO_STRUCTP(r->out.new_owf_password);
15677                 NDR_PULL_ALLOC(ndr, r->out.old_owf_password);
15678                 ZERO_STRUCTP(r->out.old_owf_password);
15679                 NDR_PULL_ALLOC(ndr, r->out.trust_info);
15680                 ZERO_STRUCTP(r->out.trust_info);
15681         }
15682         if (flags & NDR_OUT) {
15683                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15684                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
15685                 }
15686                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
15687                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
15688                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
15689                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
15690                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15691                         NDR_PULL_ALLOC(ndr, r->out.new_owf_password);
15692                 }
15693                 _mem_save_new_owf_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
15694                 NDR_PULL_SET_MEM_CTX(ndr, r->out.new_owf_password, LIBNDR_FLAG_REF_ALLOC);
15695                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.new_owf_password));
15696                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_owf_password_0, LIBNDR_FLAG_REF_ALLOC);
15697                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15698                         NDR_PULL_ALLOC(ndr, r->out.old_owf_password);
15699                 }
15700                 _mem_save_old_owf_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
15701                 NDR_PULL_SET_MEM_CTX(ndr, r->out.old_owf_password, LIBNDR_FLAG_REF_ALLOC);
15702                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, r->out.old_owf_password));
15703                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_old_owf_password_0, LIBNDR_FLAG_REF_ALLOC);
15704                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15705                         NDR_PULL_ALLOC(ndr, r->out.trust_info);
15706                 }
15707                 _mem_save_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15708                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trust_info, LIBNDR_FLAG_REF_ALLOC);
15709                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trust_info));
15710                 if (_ptr_trust_info) {
15711                         NDR_PULL_ALLOC(ndr, *r->out.trust_info);
15712                 } else {
15713                         *r->out.trust_info = NULL;
15714                 }
15715                 if (*r->out.trust_info) {
15716                         _mem_save_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
15717                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.trust_info, 0);
15718                         NDR_CHECK(ndr_pull_netr_TrustInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.trust_info));
15719                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trust_info_1, 0);
15720                 }
15721                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
15722                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
15723         }
15724         return NDR_ERR_SUCCESS;
15725 }
15726
15727 _PUBLIC_ void ndr_print_netr_ServerGetTrustInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerGetTrustInfo *r)
15728 {
15729         ndr_print_struct(ndr, name, "netr_ServerGetTrustInfo");
15730         ndr->depth++;
15731         if (flags & NDR_SET_VALUES) {
15732                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15733         }
15734         if (flags & NDR_IN) {
15735                 ndr_print_struct(ndr, "in", "netr_ServerGetTrustInfo");
15736                 ndr->depth++;
15737                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
15738                 ndr->depth++;
15739                 if (r->in.server_name) {
15740                         ndr_print_string(ndr, "server_name", r->in.server_name);
15741                 }
15742                 ndr->depth--;
15743                 ndr_print_ptr(ndr, "account_name", r->in.account_name);
15744                 ndr->depth++;
15745                 ndr_print_string(ndr, "account_name", r->in.account_name);
15746                 ndr->depth--;
15747                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
15748                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
15749                 ndr->depth++;
15750                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
15751                 ndr->depth--;
15752                 ndr_print_ptr(ndr, "credential", r->in.credential);
15753                 ndr->depth++;
15754                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
15755                 ndr->depth--;
15756                 ndr->depth--;
15757         }
15758         if (flags & NDR_OUT) {
15759                 ndr_print_struct(ndr, "out", "netr_ServerGetTrustInfo");
15760                 ndr->depth++;
15761                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
15762                 ndr->depth++;
15763                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
15764                 ndr->depth--;
15765                 ndr_print_ptr(ndr, "new_owf_password", r->out.new_owf_password);
15766                 ndr->depth++;
15767                 ndr_print_samr_Password(ndr, "new_owf_password", r->out.new_owf_password);
15768                 ndr->depth--;
15769                 ndr_print_ptr(ndr, "old_owf_password", r->out.old_owf_password);
15770                 ndr->depth++;
15771                 ndr_print_samr_Password(ndr, "old_owf_password", r->out.old_owf_password);
15772                 ndr->depth--;
15773                 ndr_print_ptr(ndr, "trust_info", r->out.trust_info);
15774                 ndr->depth++;
15775                 ndr_print_ptr(ndr, "trust_info", *r->out.trust_info);
15776                 ndr->depth++;
15777                 if (*r->out.trust_info) {
15778                         ndr_print_netr_TrustInfo(ndr, "trust_info", *r->out.trust_info);
15779                 }
15780                 ndr->depth--;
15781                 ndr->depth--;
15782                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
15783                 ndr->depth--;
15784         }
15785         ndr->depth--;
15786 }
15787
15788 static const struct ndr_interface_call netlogon_calls[] = {
15789         {
15790                 "netr_LogonUasLogon",
15791                 sizeof(struct netr_LogonUasLogon),
15792                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
15793                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
15794                 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
15795                 false,
15796         },
15797         {
15798                 "netr_LogonUasLogoff",
15799                 sizeof(struct netr_LogonUasLogoff),
15800                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
15801                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
15802                 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
15803                 false,
15804         },
15805         {
15806                 "netr_LogonSamLogon",
15807                 sizeof(struct netr_LogonSamLogon),
15808                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
15809                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
15810                 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
15811                 false,
15812         },
15813         {
15814                 "netr_LogonSamLogoff",
15815                 sizeof(struct netr_LogonSamLogoff),
15816                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
15817                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
15818                 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
15819                 false,
15820         },
15821         {
15822                 "netr_ServerReqChallenge",
15823                 sizeof(struct netr_ServerReqChallenge),
15824                 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
15825                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
15826                 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
15827                 false,
15828         },
15829         {
15830                 "netr_ServerAuthenticate",
15831                 sizeof(struct netr_ServerAuthenticate),
15832                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
15833                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
15834                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
15835                 false,
15836         },
15837         {
15838                 "netr_ServerPasswordSet",
15839                 sizeof(struct netr_ServerPasswordSet),
15840                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
15841                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
15842                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
15843                 false,
15844         },
15845         {
15846                 "netr_DatabaseDeltas",
15847                 sizeof(struct netr_DatabaseDeltas),
15848                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
15849                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
15850                 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
15851                 false,
15852         },
15853         {
15854                 "netr_DatabaseSync",
15855                 sizeof(struct netr_DatabaseSync),
15856                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
15857                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
15858                 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
15859                 false,
15860         },
15861         {
15862                 "netr_AccountDeltas",
15863                 sizeof(struct netr_AccountDeltas),
15864                 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
15865                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
15866                 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
15867                 false,
15868         },
15869         {
15870                 "netr_AccountSync",
15871                 sizeof(struct netr_AccountSync),
15872                 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
15873                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
15874                 (ndr_print_function_t) ndr_print_netr_AccountSync,
15875                 false,
15876         },
15877         {
15878                 "netr_GetDcName",
15879                 sizeof(struct netr_GetDcName),
15880                 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
15881                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
15882                 (ndr_print_function_t) ndr_print_netr_GetDcName,
15883                 false,
15884         },
15885         {
15886                 "netr_LogonControl",
15887                 sizeof(struct netr_LogonControl),
15888                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
15889                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
15890                 (ndr_print_function_t) ndr_print_netr_LogonControl,
15891                 false,
15892         },
15893         {
15894                 "netr_GetAnyDCName",
15895                 sizeof(struct netr_GetAnyDCName),
15896                 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
15897                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
15898                 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
15899                 false,
15900         },
15901         {
15902                 "netr_LogonControl2",
15903                 sizeof(struct netr_LogonControl2),
15904                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
15905                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
15906                 (ndr_print_function_t) ndr_print_netr_LogonControl2,
15907                 false,
15908         },
15909         {
15910                 "netr_ServerAuthenticate2",
15911                 sizeof(struct netr_ServerAuthenticate2),
15912                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
15913                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
15914                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
15915                 false,
15916         },
15917         {
15918                 "netr_DatabaseSync2",
15919                 sizeof(struct netr_DatabaseSync2),
15920                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
15921                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
15922                 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
15923                 false,
15924         },
15925         {
15926                 "netr_DatabaseRedo",
15927                 sizeof(struct netr_DatabaseRedo),
15928                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
15929                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
15930                 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
15931                 false,
15932         },
15933         {
15934                 "netr_LogonControl2Ex",
15935                 sizeof(struct netr_LogonControl2Ex),
15936                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
15937                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
15938                 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
15939                 false,
15940         },
15941         {
15942                 "netr_NetrEnumerateTrustedDomains",
15943                 sizeof(struct netr_NetrEnumerateTrustedDomains),
15944                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomains,
15945                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomains,
15946                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomains,
15947                 false,
15948         },
15949         {
15950                 "netr_DsRGetDCName",
15951                 sizeof(struct netr_DsRGetDCName),
15952                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
15953                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
15954                 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
15955                 false,
15956         },
15957         {
15958                 "netr_NETRLOGONDUMMYROUTINE1",
15959                 sizeof(struct netr_NETRLOGONDUMMYROUTINE1),
15960                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONDUMMYROUTINE1,
15961                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONDUMMYROUTINE1,
15962                 (ndr_print_function_t) ndr_print_netr_NETRLOGONDUMMYROUTINE1,
15963                 false,
15964         },
15965         {
15966                 "netr_NETRLOGONSETSERVICEBITS",
15967                 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
15968                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
15969                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
15970                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
15971                 false,
15972         },
15973         {
15974                 "netr_LogonGetTrustRid",
15975                 sizeof(struct netr_LogonGetTrustRid),
15976                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetTrustRid,
15977                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetTrustRid,
15978                 (ndr_print_function_t) ndr_print_netr_LogonGetTrustRid,
15979                 false,
15980         },
15981         {
15982                 "netr_NETRLOGONCOMPUTESERVERDIGEST",
15983                 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
15984                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
15985                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
15986                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
15987                 false,
15988         },
15989         {
15990                 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
15991                 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
15992                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
15993                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
15994                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
15995                 false,
15996         },
15997         {
15998                 "netr_ServerAuthenticate3",
15999                 sizeof(struct netr_ServerAuthenticate3),
16000                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
16001                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
16002                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
16003                 false,
16004         },
16005         {
16006                 "netr_DsRGetDCNameEx",
16007                 sizeof(struct netr_DsRGetDCNameEx),
16008                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
16009                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
16010                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
16011                 false,
16012         },
16013         {
16014                 "netr_DsRGetSiteName",
16015                 sizeof(struct netr_DsRGetSiteName),
16016                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
16017                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
16018                 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
16019                 false,
16020         },
16021         {
16022                 "netr_LogonGetDomainInfo",
16023                 sizeof(struct netr_LogonGetDomainInfo),
16024                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
16025                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
16026                 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
16027                 false,
16028         },
16029         {
16030                 "netr_ServerPasswordSet2",
16031                 sizeof(struct netr_ServerPasswordSet2),
16032                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
16033                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
16034                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
16035                 false,
16036         },
16037         {
16038                 "netr_ServerPasswordGet",
16039                 sizeof(struct netr_ServerPasswordGet),
16040                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordGet,
16041                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordGet,
16042                 (ndr_print_function_t) ndr_print_netr_ServerPasswordGet,
16043                 false,
16044         },
16045         {
16046                 "netr_NETRLOGONSENDTOSAM",
16047                 sizeof(struct netr_NETRLOGONSENDTOSAM),
16048                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
16049                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
16050                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
16051                 false,
16052         },
16053         {
16054                 "netr_DsRAddressToSitenamesW",
16055                 sizeof(struct netr_DsRAddressToSitenamesW),
16056                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesW,
16057                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesW,
16058                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesW,
16059                 false,
16060         },
16061         {
16062                 "netr_DsRGetDCNameEx2",
16063                 sizeof(struct netr_DsRGetDCNameEx2),
16064                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
16065                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
16066                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
16067                 false,
16068         },
16069         {
16070                 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
16071                 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
16072                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16073                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16074                 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
16075                 false,
16076         },
16077         {
16078                 "netr_NetrEnumerateTrustedDomainsEx",
16079                 sizeof(struct netr_NetrEnumerateTrustedDomainsEx),
16080                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomainsEx,
16081                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomainsEx,
16082                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomainsEx,
16083                 false,
16084         },
16085         {
16086                 "netr_DsRAddressToSitenamesExW",
16087                 sizeof(struct netr_DsRAddressToSitenamesExW),
16088                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesExW,
16089                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesExW,
16090                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesExW,
16091                 false,
16092         },
16093         {
16094                 "netr_DsrGetDcSiteCoverageW",
16095                 sizeof(struct netr_DsrGetDcSiteCoverageW),
16096                 (ndr_push_flags_fn_t) ndr_push_netr_DsrGetDcSiteCoverageW,
16097                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrGetDcSiteCoverageW,
16098                 (ndr_print_function_t) ndr_print_netr_DsrGetDcSiteCoverageW,
16099                 false,
16100         },
16101         {
16102                 "netr_LogonSamLogonEx",
16103                 sizeof(struct netr_LogonSamLogonEx),
16104                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
16105                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
16106                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
16107                 false,
16108         },
16109         {
16110                 "netr_DsrEnumerateDomainTrusts",
16111                 sizeof(struct netr_DsrEnumerateDomainTrusts),
16112                 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
16113                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
16114                 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
16115                 false,
16116         },
16117         {
16118                 "netr_DsrDeregisterDNSHostRecords",
16119                 sizeof(struct netr_DsrDeregisterDNSHostRecords),
16120                 (ndr_push_flags_fn_t) ndr_push_netr_DsrDeregisterDNSHostRecords,
16121                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrDeregisterDNSHostRecords,
16122                 (ndr_print_function_t) ndr_print_netr_DsrDeregisterDNSHostRecords,
16123                 false,
16124         },
16125         {
16126                 "netr_ServerTrustPasswordsGet",
16127                 sizeof(struct netr_ServerTrustPasswordsGet),
16128                 (ndr_push_flags_fn_t) ndr_push_netr_ServerTrustPasswordsGet,
16129                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerTrustPasswordsGet,
16130                 (ndr_print_function_t) ndr_print_netr_ServerTrustPasswordsGet,
16131                 false,
16132         },
16133         {
16134                 "netr_DsRGetForestTrustInformation",
16135                 sizeof(struct netr_DsRGetForestTrustInformation),
16136                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetForestTrustInformation,
16137                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetForestTrustInformation,
16138                 (ndr_print_function_t) ndr_print_netr_DsRGetForestTrustInformation,
16139                 false,
16140         },
16141         {
16142                 "netr_GetForestTrustInformation",
16143                 sizeof(struct netr_GetForestTrustInformation),
16144                 (ndr_push_flags_fn_t) ndr_push_netr_GetForestTrustInformation,
16145                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetForestTrustInformation,
16146                 (ndr_print_function_t) ndr_print_netr_GetForestTrustInformation,
16147                 false,
16148         },
16149         {
16150                 "netr_LogonSamLogonWithFlags",
16151                 sizeof(struct netr_LogonSamLogonWithFlags),
16152                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
16153                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
16154                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
16155                 false,
16156         },
16157         {
16158                 "netr_ServerGetTrustInfo",
16159                 sizeof(struct netr_ServerGetTrustInfo),
16160                 (ndr_push_flags_fn_t) ndr_push_netr_ServerGetTrustInfo,
16161                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerGetTrustInfo,
16162                 (ndr_print_function_t) ndr_print_netr_ServerGetTrustInfo,
16163                 false,
16164         },
16165         { NULL, 0, NULL, NULL, NULL, false }
16166 };
16167
16168 static const char * const netlogon_endpoint_strings[] = {
16169         "ncacn_np:[\\pipe\\netlogon]", 
16170         "ncacn_ip_tcp:", 
16171         "ncalrpc:", 
16172 };
16173
16174 static const struct ndr_interface_string_array netlogon_endpoints = {
16175         .count  = 3,
16176         .names  = netlogon_endpoint_strings
16177 };
16178
16179 static const char * const netlogon_authservice_strings[] = {
16180         "host", 
16181 };
16182
16183 static const struct ndr_interface_string_array netlogon_authservices = {
16184         .count  = 1,
16185         .names  = netlogon_authservice_strings
16186 };
16187
16188
16189 const struct ndr_interface_table ndr_table_netlogon = {
16190         .name           = "netlogon",
16191         .syntax_id      = {
16192                 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
16193                 NDR_NETLOGON_VERSION
16194         },
16195         .helpstring     = NDR_NETLOGON_HELPSTRING,
16196         .num_calls      = 47,
16197         .calls          = netlogon_calls,
16198         .endpoints      = &netlogon_endpoints,
16199         .authservices   = &netlogon_authservices
16200 };
16201