Re-run "make idl"
[sfrench/samba-autobuild/.git] / source3 / librpc / gen_ndr / ndr_netlogon.c
1 /* parser auto-generated by pidl */
2
3 #include "includes.h"
4 #include "librpc/gen_ndr/ndr_netlogon.h"
5
6 #include "librpc/gen_ndr/ndr_lsa.h"
7 #include "librpc/gen_ndr/ndr_samr.h"
8 #include "librpc/gen_ndr/ndr_security.h"
9 static enum ndr_err_code ndr_push_netr_UasInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasInfo *r)
10 {
11         if (ndr_flags & NDR_SCALARS) {
12                 NDR_CHECK(ndr_push_align(ndr, 4));
13                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
14                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priv));
15                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_flags));
16                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_count));
17                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_pw_count));
18                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logon));
19                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logoff));
20                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->logoff_time));
21                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->kickoff_time));
22                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->password_age));
23                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_can_change));
24                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_must_change));
25                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer));
26                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
27                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->script_path));
28                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
29         }
30         if (ndr_flags & NDR_BUFFERS) {
31                 if (r->account_name) {
32                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
33                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
34                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
35                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
36                 }
37                 if (r->computer) {
38                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
39                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
40                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
41                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer, ndr_charset_length(r->computer, CH_UTF16), sizeof(uint16_t), CH_UTF16));
42                 }
43                 if (r->domain) {
44                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
45                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
46                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
47                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
48                 }
49                 if (r->script_path) {
50                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
51                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
52                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
53                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->script_path, ndr_charset_length(r->script_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
54                 }
55         }
56         return NDR_ERR_SUCCESS;
57 }
58
59 static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasInfo *r)
60 {
61         uint32_t _ptr_account_name;
62         TALLOC_CTX *_mem_save_account_name_0;
63         uint32_t _ptr_computer;
64         TALLOC_CTX *_mem_save_computer_0;
65         uint32_t _ptr_domain;
66         TALLOC_CTX *_mem_save_domain_0;
67         uint32_t _ptr_script_path;
68         TALLOC_CTX *_mem_save_script_path_0;
69         if (ndr_flags & NDR_SCALARS) {
70                 NDR_CHECK(ndr_pull_align(ndr, 4));
71                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
72                 if (_ptr_account_name) {
73                         NDR_PULL_ALLOC(ndr, r->account_name);
74                 } else {
75                         r->account_name = NULL;
76                 }
77                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priv));
78                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_flags));
79                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_count));
80                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_pw_count));
81                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logon));
82                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logoff));
83                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->logoff_time));
84                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->kickoff_time));
85                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->password_age));
86                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_can_change));
87                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_must_change));
88                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer));
89                 if (_ptr_computer) {
90                         NDR_PULL_ALLOC(ndr, r->computer);
91                 } else {
92                         r->computer = NULL;
93                 }
94                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
95                 if (_ptr_domain) {
96                         NDR_PULL_ALLOC(ndr, r->domain);
97                 } else {
98                         r->domain = NULL;
99                 }
100                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_script_path));
101                 if (_ptr_script_path) {
102                         NDR_PULL_ALLOC(ndr, r->script_path);
103                 } else {
104                         r->script_path = NULL;
105                 }
106                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
107         }
108         if (ndr_flags & NDR_BUFFERS) {
109                 if (r->account_name) {
110                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
111                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
112                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
113                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
114                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
115                                 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));
116                         }
117                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
118                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
119                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
120                 }
121                 if (r->computer) {
122                         _mem_save_computer_0 = NDR_PULL_GET_MEM_CTX(ndr);
123                         NDR_PULL_SET_MEM_CTX(ndr, r->computer, 0);
124                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer));
125                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer));
126                         if (ndr_get_array_length(ndr, &r->computer) > ndr_get_array_size(ndr, &r->computer)) {
127                                 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));
128                         }
129                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t)));
130                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t), CH_UTF16));
131                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_0, 0);
132                 }
133                 if (r->domain) {
134                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
135                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
136                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
137                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
138                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
139                                 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));
140                         }
141                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
142                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
143                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
144                 }
145                 if (r->script_path) {
146                         _mem_save_script_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
147                         NDR_PULL_SET_MEM_CTX(ndr, r->script_path, 0);
148                         NDR_CHECK(ndr_pull_array_size(ndr, &r->script_path));
149                         NDR_CHECK(ndr_pull_array_length(ndr, &r->script_path));
150                         if (ndr_get_array_length(ndr, &r->script_path) > ndr_get_array_size(ndr, &r->script_path)) {
151                                 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));
152                         }
153                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t)));
154                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->script_path, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t), CH_UTF16));
155                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_script_path_0, 0);
156                 }
157         }
158         return NDR_ERR_SUCCESS;
159 }
160
161 _PUBLIC_ void ndr_print_netr_UasInfo(struct ndr_print *ndr, const char *name, const struct netr_UasInfo *r)
162 {
163         ndr_print_struct(ndr, name, "netr_UasInfo");
164         ndr->depth++;
165         ndr_print_ptr(ndr, "account_name", r->account_name);
166         ndr->depth++;
167         if (r->account_name) {
168                 ndr_print_string(ndr, "account_name", r->account_name);
169         }
170         ndr->depth--;
171         ndr_print_uint32(ndr, "priv", r->priv);
172         ndr_print_uint32(ndr, "auth_flags", r->auth_flags);
173         ndr_print_uint32(ndr, "logon_count", r->logon_count);
174         ndr_print_uint32(ndr, "bad_pw_count", r->bad_pw_count);
175         ndr_print_time_t(ndr, "last_logon", r->last_logon);
176         ndr_print_time_t(ndr, "last_logoff", r->last_logoff);
177         ndr_print_time_t(ndr, "logoff_time", r->logoff_time);
178         ndr_print_time_t(ndr, "kickoff_time", r->kickoff_time);
179         ndr_print_uint32(ndr, "password_age", r->password_age);
180         ndr_print_time_t(ndr, "pw_can_change", r->pw_can_change);
181         ndr_print_time_t(ndr, "pw_must_change", r->pw_must_change);
182         ndr_print_ptr(ndr, "computer", r->computer);
183         ndr->depth++;
184         if (r->computer) {
185                 ndr_print_string(ndr, "computer", r->computer);
186         }
187         ndr->depth--;
188         ndr_print_ptr(ndr, "domain", r->domain);
189         ndr->depth++;
190         if (r->domain) {
191                 ndr_print_string(ndr, "domain", r->domain);
192         }
193         ndr->depth--;
194         ndr_print_ptr(ndr, "script_path", r->script_path);
195         ndr->depth++;
196         if (r->script_path) {
197                 ndr_print_string(ndr, "script_path", r->script_path);
198         }
199         ndr->depth--;
200         ndr_print_uint32(ndr, "unknown", r->unknown);
201         ndr->depth--;
202 }
203
204 static enum ndr_err_code ndr_push_netr_UasLogoffInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasLogoffInfo *r)
205 {
206         if (ndr_flags & NDR_SCALARS) {
207                 NDR_CHECK(ndr_push_align(ndr, 4));
208                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->duration));
209                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
210         }
211         if (ndr_flags & NDR_BUFFERS) {
212         }
213         return NDR_ERR_SUCCESS;
214 }
215
216 static enum ndr_err_code ndr_pull_netr_UasLogoffInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasLogoffInfo *r)
217 {
218         if (ndr_flags & NDR_SCALARS) {
219                 NDR_CHECK(ndr_pull_align(ndr, 4));
220                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->duration));
221                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
222         }
223         if (ndr_flags & NDR_BUFFERS) {
224         }
225         return NDR_ERR_SUCCESS;
226 }
227
228 _PUBLIC_ void ndr_print_netr_UasLogoffInfo(struct ndr_print *ndr, const char *name, const struct netr_UasLogoffInfo *r)
229 {
230         ndr_print_struct(ndr, name, "netr_UasLogoffInfo");
231         ndr->depth++;
232         ndr_print_uint32(ndr, "duration", r->duration);
233         ndr_print_uint16(ndr, "logon_count", r->logon_count);
234         ndr->depth--;
235 }
236
237 _PUBLIC_ enum ndr_err_code ndr_push_netr_AcctLockStr(struct ndr_push *ndr, int ndr_flags, const struct netr_AcctLockStr *r)
238 {
239         if (ndr_flags & NDR_SCALARS) {
240                 NDR_CHECK(ndr_push_align(ndr, 4));
241                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->lockout_duration));
242                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reset_count));
243                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_attempt_lockout));
244                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dummy));
245         }
246         if (ndr_flags & NDR_BUFFERS) {
247         }
248         return NDR_ERR_SUCCESS;
249 }
250
251 _PUBLIC_ enum ndr_err_code ndr_pull_netr_AcctLockStr(struct ndr_pull *ndr, int ndr_flags, struct netr_AcctLockStr *r)
252 {
253         if (ndr_flags & NDR_SCALARS) {
254                 NDR_CHECK(ndr_pull_align(ndr, 4));
255                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->lockout_duration));
256                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reset_count));
257                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_attempt_lockout));
258                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dummy));
259         }
260         if (ndr_flags & NDR_BUFFERS) {
261         }
262         return NDR_ERR_SUCCESS;
263 }
264
265 _PUBLIC_ void ndr_print_netr_AcctLockStr(struct ndr_print *ndr, const char *name, const struct netr_AcctLockStr *r)
266 {
267         ndr_print_struct(ndr, name, "netr_AcctLockStr");
268         ndr->depth++;
269         ndr_print_dlong(ndr, "lockout_duration", r->lockout_duration);
270         ndr_print_udlong(ndr, "reset_count", r->reset_count);
271         ndr_print_uint32(ndr, "bad_attempt_lockout", r->bad_attempt_lockout);
272         ndr_print_uint32(ndr, "dummy", r->dummy);
273         ndr->depth--;
274 }
275
276 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonParameterControl(struct ndr_push *ndr, int ndr_flags, uint32_t r)
277 {
278         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
279         return NDR_ERR_SUCCESS;
280 }
281
282 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonParameterControl(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
283 {
284         uint32_t v;
285         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
286         *r = v;
287         return NDR_ERR_SUCCESS;
288 }
289
290 _PUBLIC_ void ndr_print_netr_LogonParameterControl(struct ndr_print *ndr, const char *name, uint32_t r)
291 {
292         ndr_print_uint32(ndr, name, r);
293         ndr->depth++;
294         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED, r);
295         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS, r);
296         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS, r);
297         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT, r);
298         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH, r);
299         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT, r);
300         ndr->depth--;
301 }
302
303 static enum ndr_err_code ndr_push_netr_IdentityInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_IdentityInfo *r)
304 {
305         if (ndr_flags & NDR_SCALARS) {
306                 NDR_CHECK(ndr_push_align(ndr, 4));
307                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
308                 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr, NDR_SCALARS, r->parameter_control));
309                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_low));
310                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_high));
311                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
312                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstation));
313         }
314         if (ndr_flags & NDR_BUFFERS) {
315                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
316                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
317                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
318         }
319         return NDR_ERR_SUCCESS;
320 }
321
322 static enum ndr_err_code ndr_pull_netr_IdentityInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_IdentityInfo *r)
323 {
324         if (ndr_flags & NDR_SCALARS) {
325                 NDR_CHECK(ndr_pull_align(ndr, 4));
326                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
327                 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr, NDR_SCALARS, &r->parameter_control));
328                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_low));
329                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_high));
330                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
331                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstation));
332         }
333         if (ndr_flags & NDR_BUFFERS) {
334                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
335                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
336                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
337         }
338         return NDR_ERR_SUCCESS;
339 }
340
341 _PUBLIC_ void ndr_print_netr_IdentityInfo(struct ndr_print *ndr, const char *name, const struct netr_IdentityInfo *r)
342 {
343         ndr_print_struct(ndr, name, "netr_IdentityInfo");
344         ndr->depth++;
345         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
346         ndr_print_netr_LogonParameterControl(ndr, "parameter_control", r->parameter_control);
347         ndr_print_uint32(ndr, "logon_id_low", r->logon_id_low);
348         ndr_print_uint32(ndr, "logon_id_high", r->logon_id_high);
349         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
350         ndr_print_lsa_String(ndr, "workstation", &r->workstation);
351         ndr->depth--;
352 }
353
354 static enum ndr_err_code ndr_push_netr_PasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordInfo *r)
355 {
356         if (ndr_flags & NDR_SCALARS) {
357                 NDR_CHECK(ndr_push_align(ndr, 4));
358                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
359                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
360                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
361         }
362         if (ndr_flags & NDR_BUFFERS) {
363                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
364                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
365                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
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                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
381                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
382         }
383         return NDR_ERR_SUCCESS;
384 }
385
386 _PUBLIC_ void ndr_print_netr_PasswordInfo(struct ndr_print *ndr, const char *name, const struct netr_PasswordInfo *r)
387 {
388         ndr_print_struct(ndr, name, "netr_PasswordInfo");
389         ndr->depth++;
390         ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
391         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
392         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
393         ndr->depth--;
394 }
395
396 static enum ndr_err_code ndr_push_netr_ChallengeResponse(struct ndr_push *ndr, int ndr_flags, const struct netr_ChallengeResponse *r)
397 {
398         {
399                 uint32_t _flags_save_STRUCT = ndr->flags;
400                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
401                 if (ndr_flags & NDR_SCALARS) {
402                         NDR_CHECK(ndr_push_align(ndr, 4));
403                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
404                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
405                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
406                 }
407                 if (ndr_flags & NDR_BUFFERS) {
408                         if (r->data) {
409                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
410                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
411                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
412                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
413                         }
414                 }
415                 ndr->flags = _flags_save_STRUCT;
416         }
417         return NDR_ERR_SUCCESS;
418 }
419
420 static enum ndr_err_code ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, int ndr_flags, struct netr_ChallengeResponse *r)
421 {
422         uint32_t _ptr_data;
423         TALLOC_CTX *_mem_save_data_0;
424         {
425                 uint32_t _flags_save_STRUCT = ndr->flags;
426                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
427                 if (ndr_flags & NDR_SCALARS) {
428                         NDR_CHECK(ndr_pull_align(ndr, 4));
429                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
430                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
431                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
432                         if (_ptr_data) {
433                                 NDR_PULL_ALLOC(ndr, r->data);
434                         } else {
435                                 r->data = NULL;
436                         }
437                 }
438                 if (ndr_flags & NDR_BUFFERS) {
439                         if (r->data) {
440                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
441                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
442                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
443                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
444                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
445                                         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));
446                                 }
447                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
448                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
449                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
450                         }
451                         if (r->data) {
452                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
453                         }
454                         if (r->data) {
455                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length));
456                         }
457                 }
458                 ndr->flags = _flags_save_STRUCT;
459         }
460         return NDR_ERR_SUCCESS;
461 }
462
463 _PUBLIC_ void ndr_print_netr_ChallengeResponse(struct ndr_print *ndr, const char *name, const struct netr_ChallengeResponse *r)
464 {
465         ndr_print_struct(ndr, name, "netr_ChallengeResponse");
466         {
467                 uint32_t _flags_save_STRUCT = ndr->flags;
468                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
469                 ndr->depth++;
470                 ndr_print_uint16(ndr, "length", r->length);
471                 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
472                 ndr_print_ptr(ndr, "data", r->data);
473                 ndr->depth++;
474                 if (r->data) {
475                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
476                 }
477                 ndr->depth--;
478                 ndr->depth--;
479                 ndr->flags = _flags_save_STRUCT;
480         }
481 }
482
483 static enum ndr_err_code ndr_push_netr_NetworkInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_NetworkInfo *r)
484 {
485         {
486                 uint32_t _flags_save_STRUCT = ndr->flags;
487                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
488                 if (ndr_flags & NDR_SCALARS) {
489                         NDR_CHECK(ndr_push_align(ndr, 4));
490                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
491                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
492                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
493                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
494                 }
495                 if (ndr_flags & NDR_BUFFERS) {
496                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
497                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
498                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
499                 }
500                 ndr->flags = _flags_save_STRUCT;
501         }
502         return NDR_ERR_SUCCESS;
503 }
504
505 static enum ndr_err_code ndr_pull_netr_NetworkInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_NetworkInfo *r)
506 {
507         {
508                 uint32_t _flags_save_STRUCT = ndr->flags;
509                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
510                 if (ndr_flags & NDR_SCALARS) {
511                         NDR_CHECK(ndr_pull_align(ndr, 4));
512                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
513                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
514                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
515                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
516                 }
517                 if (ndr_flags & NDR_BUFFERS) {
518                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
519                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
520                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
521                 }
522                 ndr->flags = _flags_save_STRUCT;
523         }
524         return NDR_ERR_SUCCESS;
525 }
526
527 _PUBLIC_ void ndr_print_netr_NetworkInfo(struct ndr_print *ndr, const char *name, const struct netr_NetworkInfo *r)
528 {
529         ndr_print_struct(ndr, name, "netr_NetworkInfo");
530         {
531                 uint32_t _flags_save_STRUCT = ndr->flags;
532                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
533                 ndr->depth++;
534                 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
535                 ndr_print_array_uint8(ndr, "challenge", r->challenge, 8);
536                 ndr_print_netr_ChallengeResponse(ndr, "nt", &r->nt);
537                 ndr_print_netr_ChallengeResponse(ndr, "lm", &r->lm);
538                 ndr->depth--;
539                 ndr->flags = _flags_save_STRUCT;
540         }
541 }
542
543 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonInfo(struct ndr_push *ndr, int ndr_flags, const union netr_LogonInfo *r)
544 {
545         if (ndr_flags & NDR_SCALARS) {
546                 int level = ndr_push_get_switch_value(ndr, r);
547                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
548                 switch (level) {
549                         case 1: {
550                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
551                         break; }
552
553                         case 2: {
554                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
555                         break; }
556
557                         case 3: {
558                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
559                         break; }
560
561                         case 5: {
562                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
563                         break; }
564
565                         case 6: {
566                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
567                         break; }
568
569                         default:
570                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
571                 }
572         }
573         if (ndr_flags & NDR_BUFFERS) {
574                 int level = ndr_push_get_switch_value(ndr, r);
575                 switch (level) {
576                         case 1:
577                                 if (r->password) {
578                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
579                                 }
580                         break;
581
582                         case 2:
583                                 if (r->network) {
584                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
585                                 }
586                         break;
587
588                         case 3:
589                                 if (r->password) {
590                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
591                                 }
592                         break;
593
594                         case 5:
595                                 if (r->password) {
596                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
597                                 }
598                         break;
599
600                         case 6:
601                                 if (r->network) {
602                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
603                                 }
604                         break;
605
606                         default:
607                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
608                 }
609         }
610         return NDR_ERR_SUCCESS;
611 }
612
613 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonInfo(struct ndr_pull *ndr, int ndr_flags, union netr_LogonInfo *r)
614 {
615         int level;
616         uint16_t _level;
617         TALLOC_CTX *_mem_save_password_0;
618         TALLOC_CTX *_mem_save_network_0;
619         level = ndr_pull_get_switch_value(ndr, r);
620         if (ndr_flags & NDR_SCALARS) {
621                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
622                 if (_level != level) {
623                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
624                 }
625                 switch (level) {
626                         case 1: {
627                                 uint32_t _ptr_password;
628                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
629                                 if (_ptr_password) {
630                                         NDR_PULL_ALLOC(ndr, r->password);
631                                 } else {
632                                         r->password = NULL;
633                                 }
634                         break; }
635
636                         case 2: {
637                                 uint32_t _ptr_network;
638                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
639                                 if (_ptr_network) {
640                                         NDR_PULL_ALLOC(ndr, r->network);
641                                 } else {
642                                         r->network = NULL;
643                                 }
644                         break; }
645
646                         case 3: {
647                                 uint32_t _ptr_password;
648                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
649                                 if (_ptr_password) {
650                                         NDR_PULL_ALLOC(ndr, r->password);
651                                 } else {
652                                         r->password = NULL;
653                                 }
654                         break; }
655
656                         case 5: {
657                                 uint32_t _ptr_password;
658                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
659                                 if (_ptr_password) {
660                                         NDR_PULL_ALLOC(ndr, r->password);
661                                 } else {
662                                         r->password = NULL;
663                                 }
664                         break; }
665
666                         case 6: {
667                                 uint32_t _ptr_network;
668                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
669                                 if (_ptr_network) {
670                                         NDR_PULL_ALLOC(ndr, r->network);
671                                 } else {
672                                         r->network = NULL;
673                                 }
674                         break; }
675
676                         default:
677                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
678                 }
679         }
680         if (ndr_flags & NDR_BUFFERS) {
681                 switch (level) {
682                         case 1:
683                                 if (r->password) {
684                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
685                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
686                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
687                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
688                                 }
689                         break;
690
691                         case 2:
692                                 if (r->network) {
693                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
694                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
695                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
696                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
697                                 }
698                         break;
699
700                         case 3:
701                                 if (r->password) {
702                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
703                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
704                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
705                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
706                                 }
707                         break;
708
709                         case 5:
710                                 if (r->password) {
711                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
712                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
713                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
714                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
715                                 }
716                         break;
717
718                         case 6:
719                                 if (r->network) {
720                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
721                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
722                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
723                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
724                                 }
725                         break;
726
727                         default:
728                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
729                 }
730         }
731         return NDR_ERR_SUCCESS;
732 }
733
734 _PUBLIC_ void ndr_print_netr_LogonInfo(struct ndr_print *ndr, const char *name, const union netr_LogonInfo *r)
735 {
736         int level;
737         level = ndr_print_get_switch_value(ndr, r);
738         ndr_print_union(ndr, name, level, "netr_LogonInfo");
739         switch (level) {
740                 case 1:
741                         ndr_print_ptr(ndr, "password", r->password);
742                         ndr->depth++;
743                         if (r->password) {
744                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
745                         }
746                         ndr->depth--;
747                 break;
748
749                 case 2:
750                         ndr_print_ptr(ndr, "network", r->network);
751                         ndr->depth++;
752                         if (r->network) {
753                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
754                         }
755                         ndr->depth--;
756                 break;
757
758                 case 3:
759                         ndr_print_ptr(ndr, "password", r->password);
760                         ndr->depth++;
761                         if (r->password) {
762                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
763                         }
764                         ndr->depth--;
765                 break;
766
767                 case 5:
768                         ndr_print_ptr(ndr, "password", r->password);
769                         ndr->depth++;
770                         if (r->password) {
771                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
772                         }
773                         ndr->depth--;
774                 break;
775
776                 case 6:
777                         ndr_print_ptr(ndr, "network", r->network);
778                         ndr->depth++;
779                         if (r->network) {
780                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
781                         }
782                         ndr->depth--;
783                 break;
784
785                 default:
786                         ndr_print_bad_level(ndr, name, level);
787         }
788 }
789
790 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_UserSessionKey *r)
791 {
792         {
793                 uint32_t _flags_save_STRUCT = ndr->flags;
794                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
795                 if (ndr_flags & NDR_SCALARS) {
796                         NDR_CHECK(ndr_push_align(ndr, 1));
797                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 16));
798                 }
799                 if (ndr_flags & NDR_BUFFERS) {
800                 }
801                 ndr->flags = _flags_save_STRUCT;
802         }
803         return NDR_ERR_SUCCESS;
804 }
805
806 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r)
807 {
808         {
809                 uint32_t _flags_save_STRUCT = ndr->flags;
810                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
811                 if (ndr_flags & NDR_SCALARS) {
812                         NDR_CHECK(ndr_pull_align(ndr, 1));
813                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16));
814                 }
815                 if (ndr_flags & NDR_BUFFERS) {
816                 }
817                 ndr->flags = _flags_save_STRUCT;
818         }
819         return NDR_ERR_SUCCESS;
820 }
821
822 _PUBLIC_ void ndr_print_netr_UserSessionKey(struct ndr_print *ndr, const char *name, const struct netr_UserSessionKey *r)
823 {
824         ndr_print_struct(ndr, name, "netr_UserSessionKey");
825         {
826                 uint32_t _flags_save_STRUCT = ndr->flags;
827                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
828                 ndr->depth++;
829                 ndr_print_array_uint8(ndr, "key", r->key, 16);
830                 ndr->depth--;
831                 ndr->flags = _flags_save_STRUCT;
832         }
833 }
834
835 _PUBLIC_ enum ndr_err_code ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_LMSessionKey *r)
836 {
837         {
838                 uint32_t _flags_save_STRUCT = ndr->flags;
839                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
840                 if (ndr_flags & NDR_SCALARS) {
841                         NDR_CHECK(ndr_push_align(ndr, 1));
842                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 8));
843                 }
844                 if (ndr_flags & NDR_BUFFERS) {
845                 }
846                 ndr->flags = _flags_save_STRUCT;
847         }
848         return NDR_ERR_SUCCESS;
849 }
850
851 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r)
852 {
853         {
854                 uint32_t _flags_save_STRUCT = ndr->flags;
855                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
856                 if (ndr_flags & NDR_SCALARS) {
857                         NDR_CHECK(ndr_pull_align(ndr, 1));
858                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8));
859                 }
860                 if (ndr_flags & NDR_BUFFERS) {
861                 }
862                 ndr->flags = _flags_save_STRUCT;
863         }
864         return NDR_ERR_SUCCESS;
865 }
866
867 _PUBLIC_ void ndr_print_netr_LMSessionKey(struct ndr_print *ndr, const char *name, const struct netr_LMSessionKey *r)
868 {
869         ndr_print_struct(ndr, name, "netr_LMSessionKey");
870         {
871                 uint32_t _flags_save_STRUCT = ndr->flags;
872                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
873                 ndr->depth++;
874                 ndr_print_array_uint8(ndr, "key", r->key, 8);
875                 ndr->depth--;
876                 ndr->flags = _flags_save_STRUCT;
877         }
878 }
879
880 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
881 {
882         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
883         return NDR_ERR_SUCCESS;
884 }
885
886 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
887 {
888         uint32_t v;
889         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
890         *r = v;
891         return NDR_ERR_SUCCESS;
892 }
893
894 _PUBLIC_ void ndr_print_netr_UserFlags(struct ndr_print *ndr, const char *name, uint32_t r)
895 {
896         ndr_print_uint32(ndr, name, r);
897         ndr->depth++;
898         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST, r);
899         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION, r);
900         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT, r);
901         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD, r);
902         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS, r);
903         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY, r);
904         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT, r);
905         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED, r);
906         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS, r);
907         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED, r);
908         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON, r);
909         ndr->depth--;
910 }
911
912 static enum ndr_err_code ndr_push_netr_SamBaseInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_SamBaseInfo *r)
913 {
914         uint32_t cntr_unknown_0;
915         if (ndr_flags & NDR_SCALARS) {
916                 NDR_CHECK(ndr_push_align(ndr, 4));
917                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
918                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
919                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
920                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
921                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
922                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
923                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
924                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
925                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
926                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
927                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
928                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
929                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
930                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
931                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
932                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
933                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
934                 NDR_CHECK(ndr_push_netr_UserFlags(ndr, NDR_SCALARS, r->user_flags));
935                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
936                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
937                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
938                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
939                 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
940                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
941                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
942                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
943                 }
944         }
945         if (ndr_flags & NDR_BUFFERS) {
946                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
947                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
948                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
949                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
950                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
951                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
952                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
953                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
954                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
955                 if (r->domain_sid) {
956                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
957                 }
958         }
959         return NDR_ERR_SUCCESS;
960 }
961
962 static enum ndr_err_code ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_SamBaseInfo *r)
963 {
964         uint32_t _ptr_domain_sid;
965         TALLOC_CTX *_mem_save_domain_sid_0;
966         uint32_t cntr_unknown_0;
967         if (ndr_flags & NDR_SCALARS) {
968                 NDR_CHECK(ndr_pull_align(ndr, 4));
969                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
970                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
971                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
972                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
973                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
974                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
975                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
976                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
977                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
978                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
979                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
980                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
981                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
982                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
983                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
984                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
985                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
986                 NDR_CHECK(ndr_pull_netr_UserFlags(ndr, NDR_SCALARS, &r->user_flags));
987                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
988                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
989                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
990                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
991                 if (_ptr_domain_sid) {
992                         NDR_PULL_ALLOC(ndr, r->domain_sid);
993                 } else {
994                         r->domain_sid = NULL;
995                 }
996                 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
997                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
998                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
999                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
1000                 }
1001         }
1002         if (ndr_flags & NDR_BUFFERS) {
1003                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1004                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1005                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1006                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1007                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1008                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1009                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1010                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1011                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1012                 if (r->domain_sid) {
1013                         _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1014                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1015                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1016                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1017                 }
1018         }
1019         return NDR_ERR_SUCCESS;
1020 }
1021
1022 _PUBLIC_ void ndr_print_netr_SamBaseInfo(struct ndr_print *ndr, const char *name, const struct netr_SamBaseInfo *r)
1023 {
1024         uint32_t cntr_unknown_0;
1025         ndr_print_struct(ndr, name, "netr_SamBaseInfo");
1026         ndr->depth++;
1027         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
1028         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
1029         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
1030         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
1031         ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
1032         ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
1033         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
1034         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
1035         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
1036         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
1037         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
1038         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
1039         ndr_print_uint16(ndr, "logon_count", r->logon_count);
1040         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
1041         ndr_print_uint32(ndr, "rid", r->rid);
1042         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
1043         ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
1044         ndr_print_netr_UserFlags(ndr, "user_flags", r->user_flags);
1045         ndr_print_netr_UserSessionKey(ndr, "key", &r->key);
1046         ndr_print_lsa_StringLarge(ndr, "logon_server", &r->logon_server);
1047         ndr_print_lsa_StringLarge(ndr, "domain", &r->domain);
1048         ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
1049         ndr->depth++;
1050         if (r->domain_sid) {
1051                 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
1052         }
1053         ndr->depth--;
1054         ndr_print_netr_LMSessionKey(ndr, "LMSessKey", &r->LMSessKey);
1055         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
1056         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 7);
1057         ndr->depth++;
1058         for (cntr_unknown_0=0;cntr_unknown_0<7;cntr_unknown_0++) {
1059                 char *idx_0=NULL;
1060                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
1061                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
1062                         free(idx_0);
1063                 }
1064         }
1065         ndr->depth--;
1066         ndr->depth--;
1067 }
1068
1069 static enum ndr_err_code ndr_push_netr_SamInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo2 *r)
1070 {
1071         if (ndr_flags & NDR_SCALARS) {
1072                 NDR_CHECK(ndr_push_align(ndr, 4));
1073                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1074         }
1075         if (ndr_flags & NDR_BUFFERS) {
1076                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1077         }
1078         return NDR_ERR_SUCCESS;
1079 }
1080
1081 static enum ndr_err_code ndr_pull_netr_SamInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo2 *r)
1082 {
1083         if (ndr_flags & NDR_SCALARS) {
1084                 NDR_CHECK(ndr_pull_align(ndr, 4));
1085                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1086         }
1087         if (ndr_flags & NDR_BUFFERS) {
1088                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1089         }
1090         return NDR_ERR_SUCCESS;
1091 }
1092
1093 _PUBLIC_ void ndr_print_netr_SamInfo2(struct ndr_print *ndr, const char *name, const struct netr_SamInfo2 *r)
1094 {
1095         ndr_print_struct(ndr, name, "netr_SamInfo2");
1096         ndr->depth++;
1097         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1098         ndr->depth--;
1099 }
1100
1101 static enum ndr_err_code ndr_push_netr_SidAttr(struct ndr_push *ndr, int ndr_flags, const struct netr_SidAttr *r)
1102 {
1103         if (ndr_flags & NDR_SCALARS) {
1104                 NDR_CHECK(ndr_push_align(ndr, 4));
1105                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
1106                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
1107         }
1108         if (ndr_flags & NDR_BUFFERS) {
1109                 if (r->sid) {
1110                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1111                 }
1112         }
1113         return NDR_ERR_SUCCESS;
1114 }
1115
1116 static enum ndr_err_code ndr_pull_netr_SidAttr(struct ndr_pull *ndr, int ndr_flags, struct netr_SidAttr *r)
1117 {
1118         uint32_t _ptr_sid;
1119         TALLOC_CTX *_mem_save_sid_0;
1120         if (ndr_flags & NDR_SCALARS) {
1121                 NDR_CHECK(ndr_pull_align(ndr, 4));
1122                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
1123                 if (_ptr_sid) {
1124                         NDR_PULL_ALLOC(ndr, r->sid);
1125                 } else {
1126                         r->sid = NULL;
1127                 }
1128                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
1129         }
1130         if (ndr_flags & NDR_BUFFERS) {
1131                 if (r->sid) {
1132                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1133                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
1134                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1135                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
1136                 }
1137         }
1138         return NDR_ERR_SUCCESS;
1139 }
1140
1141 _PUBLIC_ void ndr_print_netr_SidAttr(struct ndr_print *ndr, const char *name, const struct netr_SidAttr *r)
1142 {
1143         ndr_print_struct(ndr, name, "netr_SidAttr");
1144         ndr->depth++;
1145         ndr_print_ptr(ndr, "sid", r->sid);
1146         ndr->depth++;
1147         if (r->sid) {
1148                 ndr_print_dom_sid2(ndr, "sid", r->sid);
1149         }
1150         ndr->depth--;
1151         ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
1152         ndr->depth--;
1153 }
1154
1155 _PUBLIC_ enum ndr_err_code ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo3 *r)
1156 {
1157         uint32_t cntr_sids_1;
1158         if (ndr_flags & NDR_SCALARS) {
1159                 NDR_CHECK(ndr_push_align(ndr, 4));
1160                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1161                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1162                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1163         }
1164         if (ndr_flags & NDR_BUFFERS) {
1165                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1166                 if (r->sids) {
1167                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1168                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1169                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1170                         }
1171                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1172                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1173                         }
1174                 }
1175         }
1176         return NDR_ERR_SUCCESS;
1177 }
1178
1179 _PUBLIC_ enum ndr_err_code ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r)
1180 {
1181         uint32_t _ptr_sids;
1182         uint32_t cntr_sids_1;
1183         TALLOC_CTX *_mem_save_sids_0;
1184         TALLOC_CTX *_mem_save_sids_1;
1185         if (ndr_flags & NDR_SCALARS) {
1186                 NDR_CHECK(ndr_pull_align(ndr, 4));
1187                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1188                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1189                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1190                 if (_ptr_sids) {
1191                         NDR_PULL_ALLOC(ndr, r->sids);
1192                 } else {
1193                         r->sids = NULL;
1194                 }
1195         }
1196         if (ndr_flags & NDR_BUFFERS) {
1197                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1198                 if (r->sids) {
1199                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1200                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1201                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1202                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1203                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1204                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1205                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1206                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1207                         }
1208                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1209                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1210                         }
1211                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1212                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1213                 }
1214                 if (r->sids) {
1215                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1216                 }
1217         }
1218         return NDR_ERR_SUCCESS;
1219 }
1220
1221 _PUBLIC_ void ndr_print_netr_SamInfo3(struct ndr_print *ndr, const char *name, const struct netr_SamInfo3 *r)
1222 {
1223         uint32_t cntr_sids_1;
1224         ndr_print_struct(ndr, name, "netr_SamInfo3");
1225         ndr->depth++;
1226         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1227         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1228         ndr_print_ptr(ndr, "sids", r->sids);
1229         ndr->depth++;
1230         if (r->sids) {
1231                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", r->sidcount);
1232                 ndr->depth++;
1233                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1234                         char *idx_1=NULL;
1235                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1236                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1237                                 free(idx_1);
1238                         }
1239                 }
1240                 ndr->depth--;
1241         }
1242         ndr->depth--;
1243         ndr->depth--;
1244 }
1245
1246 static enum ndr_err_code ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo6 *r)
1247 {
1248         uint32_t cntr_sids_1;
1249         uint32_t cntr_unknown4_0;
1250         if (ndr_flags & NDR_SCALARS) {
1251                 NDR_CHECK(ndr_push_align(ndr, 4));
1252                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1253                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1254                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1255                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
1256                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principle));
1257                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1258                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4[cntr_unknown4_0]));
1259                 }
1260         }
1261         if (ndr_flags & NDR_BUFFERS) {
1262                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1263                 if (r->sids) {
1264                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1265                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1266                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1267                         }
1268                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1269                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1270                         }
1271                 }
1272                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1273                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1274         }
1275         return NDR_ERR_SUCCESS;
1276 }
1277
1278 static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r)
1279 {
1280         uint32_t _ptr_sids;
1281         uint32_t cntr_sids_1;
1282         TALLOC_CTX *_mem_save_sids_0;
1283         TALLOC_CTX *_mem_save_sids_1;
1284         uint32_t cntr_unknown4_0;
1285         if (ndr_flags & NDR_SCALARS) {
1286                 NDR_CHECK(ndr_pull_align(ndr, 4));
1287                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1288                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1289                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1290                 if (_ptr_sids) {
1291                         NDR_PULL_ALLOC(ndr, r->sids);
1292                 } else {
1293                         r->sids = NULL;
1294                 }
1295                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
1296                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle));
1297                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1298                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0]));
1299                 }
1300         }
1301         if (ndr_flags & NDR_BUFFERS) {
1302                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1303                 if (r->sids) {
1304                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1305                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1306                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1307                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1308                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1309                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1310                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1311                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1312                         }
1313                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1314                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1315                         }
1316                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1317                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1318                 }
1319                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1320                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1321                 if (r->sids) {
1322                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1323                 }
1324         }
1325         return NDR_ERR_SUCCESS;
1326 }
1327
1328 _PUBLIC_ void ndr_print_netr_SamInfo6(struct ndr_print *ndr, const char *name, const struct netr_SamInfo6 *r)
1329 {
1330         uint32_t cntr_sids_1;
1331         uint32_t cntr_unknown4_0;
1332         ndr_print_struct(ndr, name, "netr_SamInfo6");
1333         ndr->depth++;
1334         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1335         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1336         ndr_print_ptr(ndr, "sids", r->sids);
1337         ndr->depth++;
1338         if (r->sids) {
1339                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", r->sidcount);
1340                 ndr->depth++;
1341                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1342                         char *idx_1=NULL;
1343                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1344                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1345                                 free(idx_1);
1346                         }
1347                 }
1348                 ndr->depth--;
1349         }
1350         ndr->depth--;
1351         ndr_print_lsa_String(ndr, "forest", &r->forest);
1352         ndr_print_lsa_String(ndr, "principle", &r->principle);
1353         ndr->print(ndr, "%s: ARRAY(%d)", "unknown4", 20);
1354         ndr->depth++;
1355         for (cntr_unknown4_0=0;cntr_unknown4_0<20;cntr_unknown4_0++) {
1356                 char *idx_0=NULL;
1357                 if (asprintf(&idx_0, "[%d]", cntr_unknown4_0) != -1) {
1358                         ndr_print_uint32(ndr, "unknown4", r->unknown4[cntr_unknown4_0]);
1359                         free(idx_0);
1360                 }
1361         }
1362         ndr->depth--;
1363         ndr->depth--;
1364 }
1365
1366 static enum ndr_err_code ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PacInfo *r)
1367 {
1368         uint32_t cntr_expansionroom_0;
1369         if (ndr_flags & NDR_SCALARS) {
1370                 NDR_CHECK(ndr_push_align(ndr, 4));
1371                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1372                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1373                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1374                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1375                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1376                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1377                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth));
1378                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1379                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1380                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->expansionroom[cntr_expansionroom_0]));
1381                 }
1382                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1383                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1384                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1385                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1386         }
1387         if (ndr_flags & NDR_BUFFERS) {
1388                 if (r->pac) {
1389                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1390                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pac, r->pac_size));
1391                 }
1392                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1393                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1394                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1395                 if (r->auth) {
1396                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1397                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->auth, r->auth_size));
1398                 }
1399                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1400                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1401                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1402                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1403         }
1404         return NDR_ERR_SUCCESS;
1405 }
1406
1407 static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r)
1408 {
1409         uint32_t _ptr_pac;
1410         TALLOC_CTX *_mem_save_pac_0;
1411         uint32_t _ptr_auth;
1412         TALLOC_CTX *_mem_save_auth_0;
1413         uint32_t cntr_expansionroom_0;
1414         if (ndr_flags & NDR_SCALARS) {
1415                 NDR_CHECK(ndr_pull_align(ndr, 4));
1416                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pac_size));
1417                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1418                 if (_ptr_pac) {
1419                         NDR_PULL_ALLOC(ndr, r->pac);
1420                 } else {
1421                         r->pac = NULL;
1422                 }
1423                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1424                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1425                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1426                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_size));
1427                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_auth));
1428                 if (_ptr_auth) {
1429                         NDR_PULL_ALLOC(ndr, r->auth);
1430                 } else {
1431                         r->auth = NULL;
1432                 }
1433                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1434                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1435                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0]));
1436                 }
1437                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1438                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1439                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1440                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1441         }
1442         if (ndr_flags & NDR_BUFFERS) {
1443                 if (r->pac) {
1444                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1445                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1446                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pac));
1447                         NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac));
1448                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac)));
1449                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1450                 }
1451                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1452                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1453                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1454                 if (r->auth) {
1455                         _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr);
1456                         NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0);
1457                         NDR_CHECK(ndr_pull_array_size(ndr, &r->auth));
1458                         NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth));
1459                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth)));
1460                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0);
1461                 }
1462                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1463                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1464                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1465                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1466                 if (r->pac) {
1467                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pac, r->pac_size));
1468                 }
1469                 if (r->auth) {
1470                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->auth, r->auth_size));
1471                 }
1472         }
1473         return NDR_ERR_SUCCESS;
1474 }
1475
1476 _PUBLIC_ void ndr_print_netr_PacInfo(struct ndr_print *ndr, const char *name, const struct netr_PacInfo *r)
1477 {
1478         uint32_t cntr_expansionroom_0;
1479         ndr_print_struct(ndr, name, "netr_PacInfo");
1480         ndr->depth++;
1481         ndr_print_uint32(ndr, "pac_size", r->pac_size);
1482         ndr_print_ptr(ndr, "pac", r->pac);
1483         ndr->depth++;
1484         if (r->pac) {
1485                 ndr_print_array_uint8(ndr, "pac", r->pac, r->pac_size);
1486         }
1487         ndr->depth--;
1488         ndr_print_lsa_String(ndr, "logon_domain", &r->logon_domain);
1489         ndr_print_lsa_String(ndr, "logon_server", &r->logon_server);
1490         ndr_print_lsa_String(ndr, "principal_name", &r->principal_name);
1491         ndr_print_uint32(ndr, "auth_size", r->auth_size);
1492         ndr_print_ptr(ndr, "auth", r->auth);
1493         ndr->depth++;
1494         if (r->auth) {
1495                 ndr_print_array_uint8(ndr, "auth", r->auth, r->auth_size);
1496         }
1497         ndr->depth--;
1498         ndr_print_netr_UserSessionKey(ndr, "user_session_key", &r->user_session_key);
1499         ndr->print(ndr, "%s: ARRAY(%d)", "expansionroom", 10);
1500         ndr->depth++;
1501         for (cntr_expansionroom_0=0;cntr_expansionroom_0<10;cntr_expansionroom_0++) {
1502                 char *idx_0=NULL;
1503                 if (asprintf(&idx_0, "[%d]", cntr_expansionroom_0) != -1) {
1504                         ndr_print_uint32(ndr, "expansionroom", r->expansionroom[cntr_expansionroom_0]);
1505                         free(idx_0);
1506                 }
1507         }
1508         ndr->depth--;
1509         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1510         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1511         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1512         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1513         ndr->depth--;
1514 }
1515
1516 _PUBLIC_ enum ndr_err_code ndr_push_netr_Validation(struct ndr_push *ndr, int ndr_flags, const union netr_Validation *r)
1517 {
1518         if (ndr_flags & NDR_SCALARS) {
1519                 int level = ndr_push_get_switch_value(ndr, r);
1520                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
1521                 switch (level) {
1522                         case 2: {
1523                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam2));
1524                         break; }
1525
1526                         case 3: {
1527                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam3));
1528                         break; }
1529
1530                         case 4: {
1531                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1532                         break; }
1533
1534                         case 5: {
1535                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1536                         break; }
1537
1538                         case 6: {
1539                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam6));
1540                         break; }
1541
1542                         default:
1543                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1544                 }
1545         }
1546         if (ndr_flags & NDR_BUFFERS) {
1547                 int level = ndr_push_get_switch_value(ndr, r);
1548                 switch (level) {
1549                         case 2:
1550                                 if (r->sam2) {
1551                                         NDR_CHECK(ndr_push_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1552                                 }
1553                         break;
1554
1555                         case 3:
1556                                 if (r->sam3) {
1557                                         NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1558                                 }
1559                         break;
1560
1561                         case 4:
1562                                 if (r->pac) {
1563                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1564                                 }
1565                         break;
1566
1567                         case 5:
1568                                 if (r->pac) {
1569                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1570                                 }
1571                         break;
1572
1573                         case 6:
1574                                 if (r->sam6) {
1575                                         NDR_CHECK(ndr_push_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1576                                 }
1577                         break;
1578
1579                         default:
1580                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1581                 }
1582         }
1583         return NDR_ERR_SUCCESS;
1584 }
1585
1586 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int ndr_flags, union netr_Validation *r)
1587 {
1588         int level;
1589         uint16_t _level;
1590         TALLOC_CTX *_mem_save_sam2_0;
1591         TALLOC_CTX *_mem_save_sam3_0;
1592         TALLOC_CTX *_mem_save_pac_0;
1593         TALLOC_CTX *_mem_save_sam6_0;
1594         level = ndr_pull_get_switch_value(ndr, r);
1595         if (ndr_flags & NDR_SCALARS) {
1596                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1597                 if (_level != level) {
1598                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1599                 }
1600                 switch (level) {
1601                         case 2: {
1602                                 uint32_t _ptr_sam2;
1603                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2));
1604                                 if (_ptr_sam2) {
1605                                         NDR_PULL_ALLOC(ndr, r->sam2);
1606                                 } else {
1607                                         r->sam2 = NULL;
1608                                 }
1609                         break; }
1610
1611                         case 3: {
1612                                 uint32_t _ptr_sam3;
1613                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3));
1614                                 if (_ptr_sam3) {
1615                                         NDR_PULL_ALLOC(ndr, r->sam3);
1616                                 } else {
1617                                         r->sam3 = NULL;
1618                                 }
1619                         break; }
1620
1621                         case 4: {
1622                                 uint32_t _ptr_pac;
1623                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1624                                 if (_ptr_pac) {
1625                                         NDR_PULL_ALLOC(ndr, r->pac);
1626                                 } else {
1627                                         r->pac = NULL;
1628                                 }
1629                         break; }
1630
1631                         case 5: {
1632                                 uint32_t _ptr_pac;
1633                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1634                                 if (_ptr_pac) {
1635                                         NDR_PULL_ALLOC(ndr, r->pac);
1636                                 } else {
1637                                         r->pac = NULL;
1638                                 }
1639                         break; }
1640
1641                         case 6: {
1642                                 uint32_t _ptr_sam6;
1643                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6));
1644                                 if (_ptr_sam6) {
1645                                         NDR_PULL_ALLOC(ndr, r->sam6);
1646                                 } else {
1647                                         r->sam6 = NULL;
1648                                 }
1649                         break; }
1650
1651                         default:
1652                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1653                 }
1654         }
1655         if (ndr_flags & NDR_BUFFERS) {
1656                 switch (level) {
1657                         case 2:
1658                                 if (r->sam2) {
1659                                         _mem_save_sam2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1660                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam2, 0);
1661                                         NDR_CHECK(ndr_pull_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1662                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam2_0, 0);
1663                                 }
1664                         break;
1665
1666                         case 3:
1667                                 if (r->sam3) {
1668                                         _mem_save_sam3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1669                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam3, 0);
1670                                         NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1671                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam3_0, 0);
1672                                 }
1673                         break;
1674
1675                         case 4:
1676                                 if (r->pac) {
1677                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1678                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1679                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1680                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1681                                 }
1682                         break;
1683
1684                         case 5:
1685                                 if (r->pac) {
1686                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1687                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1688                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1689                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1690                                 }
1691                         break;
1692
1693                         case 6:
1694                                 if (r->sam6) {
1695                                         _mem_save_sam6_0 = NDR_PULL_GET_MEM_CTX(ndr);
1696                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam6, 0);
1697                                         NDR_CHECK(ndr_pull_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1698                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam6_0, 0);
1699                                 }
1700                         break;
1701
1702                         default:
1703                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1704                 }
1705         }
1706         return NDR_ERR_SUCCESS;
1707 }
1708
1709 _PUBLIC_ void ndr_print_netr_Validation(struct ndr_print *ndr, const char *name, const union netr_Validation *r)
1710 {
1711         int level;
1712         level = ndr_print_get_switch_value(ndr, r);
1713         ndr_print_union(ndr, name, level, "netr_Validation");
1714         switch (level) {
1715                 case 2:
1716                         ndr_print_ptr(ndr, "sam2", r->sam2);
1717                         ndr->depth++;
1718                         if (r->sam2) {
1719                                 ndr_print_netr_SamInfo2(ndr, "sam2", r->sam2);
1720                         }
1721                         ndr->depth--;
1722                 break;
1723
1724                 case 3:
1725                         ndr_print_ptr(ndr, "sam3", r->sam3);
1726                         ndr->depth++;
1727                         if (r->sam3) {
1728                                 ndr_print_netr_SamInfo3(ndr, "sam3", r->sam3);
1729                         }
1730                         ndr->depth--;
1731                 break;
1732
1733                 case 4:
1734                         ndr_print_ptr(ndr, "pac", r->pac);
1735                         ndr->depth++;
1736                         if (r->pac) {
1737                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1738                         }
1739                         ndr->depth--;
1740                 break;
1741
1742                 case 5:
1743                         ndr_print_ptr(ndr, "pac", r->pac);
1744                         ndr->depth++;
1745                         if (r->pac) {
1746                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1747                         }
1748                         ndr->depth--;
1749                 break;
1750
1751                 case 6:
1752                         ndr_print_ptr(ndr, "sam6", r->sam6);
1753                         ndr->depth++;
1754                         if (r->sam6) {
1755                                 ndr_print_netr_SamInfo6(ndr, "sam6", r->sam6);
1756                         }
1757                         ndr->depth--;
1758                 break;
1759
1760                 default:
1761                         ndr_print_bad_level(ndr, name, level);
1762         }
1763 }
1764
1765 _PUBLIC_ enum ndr_err_code ndr_push_netr_Credential(struct ndr_push *ndr, int ndr_flags, const struct netr_Credential *r)
1766 {
1767         {
1768                 uint32_t _flags_save_STRUCT = ndr->flags;
1769                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1770                 if (ndr_flags & NDR_SCALARS) {
1771                         NDR_CHECK(ndr_push_align(ndr, 1));
1772                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1773                 }
1774                 if (ndr_flags & NDR_BUFFERS) {
1775                 }
1776                 ndr->flags = _flags_save_STRUCT;
1777         }
1778         return NDR_ERR_SUCCESS;
1779 }
1780
1781 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r)
1782 {
1783         {
1784                 uint32_t _flags_save_STRUCT = ndr->flags;
1785                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1786                 if (ndr_flags & NDR_SCALARS) {
1787                         NDR_CHECK(ndr_pull_align(ndr, 1));
1788                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1789                 }
1790                 if (ndr_flags & NDR_BUFFERS) {
1791                 }
1792                 ndr->flags = _flags_save_STRUCT;
1793         }
1794         return NDR_ERR_SUCCESS;
1795 }
1796
1797 _PUBLIC_ void ndr_print_netr_Credential(struct ndr_print *ndr, const char *name, const struct netr_Credential *r)
1798 {
1799         ndr_print_struct(ndr, name, "netr_Credential");
1800         {
1801                 uint32_t _flags_save_STRUCT = ndr->flags;
1802                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1803                 ndr->depth++;
1804                 ndr_print_array_uint8(ndr, "data", r->data, 8);
1805                 ndr->depth--;
1806                 ndr->flags = _flags_save_STRUCT;
1807         }
1808 }
1809
1810 _PUBLIC_ enum ndr_err_code ndr_push_netr_Authenticator(struct ndr_push *ndr, int ndr_flags, const struct netr_Authenticator *r)
1811 {
1812         if (ndr_flags & NDR_SCALARS) {
1813                 NDR_CHECK(ndr_push_align(ndr, 4));
1814                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1815                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
1816         }
1817         if (ndr_flags & NDR_BUFFERS) {
1818         }
1819         return NDR_ERR_SUCCESS;
1820 }
1821
1822 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Authenticator(struct ndr_pull *ndr, int ndr_flags, struct netr_Authenticator *r)
1823 {
1824         if (ndr_flags & NDR_SCALARS) {
1825                 NDR_CHECK(ndr_pull_align(ndr, 4));
1826                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1827                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
1828         }
1829         if (ndr_flags & NDR_BUFFERS) {
1830         }
1831         return NDR_ERR_SUCCESS;
1832 }
1833
1834 _PUBLIC_ void ndr_print_netr_Authenticator(struct ndr_print *ndr, const char *name, const struct netr_Authenticator *r)
1835 {
1836         ndr_print_struct(ndr, name, "netr_Authenticator");
1837         ndr->depth++;
1838         ndr_print_netr_Credential(ndr, "cred", &r->cred);
1839         ndr_print_time_t(ndr, "timestamp", r->timestamp);
1840         ndr->depth--;
1841 }
1842
1843 static enum ndr_err_code ndr_push_netr_LogonLevel(struct ndr_push *ndr, int ndr_flags, enum netr_LogonLevel r)
1844 {
1845         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
1846         return NDR_ERR_SUCCESS;
1847 }
1848
1849 static enum ndr_err_code ndr_pull_netr_LogonLevel(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonLevel *r)
1850 {
1851         uint16_t v;
1852         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
1853         *r = v;
1854         return NDR_ERR_SUCCESS;
1855 }
1856
1857 _PUBLIC_ void ndr_print_netr_LogonLevel(struct ndr_print *ndr, const char *name, enum netr_LogonLevel r)
1858 {
1859         const char *val = NULL;
1860
1861         switch (r) {
1862                 case INTERACTIVE_LOGON_TYPE: val = "INTERACTIVE_LOGON_TYPE"; break;
1863                 case NET_LOGON_TYPE: val = "NET_LOGON_TYPE"; break;
1864         }
1865         ndr_print_enum(ndr, name, "ENUM", val, r);
1866 }
1867
1868 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)
1869 {
1870         if (ndr_flags & NDR_SCALARS) {
1871                 NDR_CHECK(ndr_push_align(ndr, 4));
1872                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
1873                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1874                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1875                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1876                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1877                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
1878                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
1879                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
1880                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
1881         }
1882         if (ndr_flags & NDR_BUFFERS) {
1883                 if (r->account_name) {
1884                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1885                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1886                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1887                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
1888                 }
1889                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1890                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1891                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1892                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1893         }
1894         return NDR_ERR_SUCCESS;
1895 }
1896
1897 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r)
1898 {
1899         uint32_t _ptr_account_name;
1900         TALLOC_CTX *_mem_save_account_name_0;
1901         if (ndr_flags & NDR_SCALARS) {
1902                 NDR_CHECK(ndr_pull_align(ndr, 4));
1903                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
1904                 if (_ptr_account_name) {
1905                         NDR_PULL_ALLOC(ndr, r->account_name);
1906                 } else {
1907                         r->account_name = NULL;
1908                 }
1909                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1910                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1911                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1912                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1913                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
1914                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
1915                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
1916                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
1917         }
1918         if (ndr_flags & NDR_BUFFERS) {
1919                 if (r->account_name) {
1920                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1921                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
1922                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
1923                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
1924                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
1925                                 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));
1926                         }
1927                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
1928                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
1929                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
1930                 }
1931                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1932                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1933                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1934                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1935         }
1936         return NDR_ERR_SUCCESS;
1937 }
1938
1939 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_USER *r)
1940 {
1941         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_USER");
1942         ndr->depth++;
1943         ndr_print_ptr(ndr, "account_name", r->account_name);
1944         ndr->depth++;
1945         if (r->account_name) {
1946                 ndr_print_string(ndr, "account_name", r->account_name);
1947         }
1948         ndr->depth--;
1949         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1950         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1951         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1952         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1953         ndr_print_uint32(ndr, "unknown5", r->unknown5);
1954         ndr_print_uint32(ndr, "unknown6", r->unknown6);
1955         ndr_print_uint32(ndr, "unknown7", r->unknown7);
1956         ndr_print_uint32(ndr, "unknown8", r->unknown8);
1957         ndr->depth--;
1958 }
1959
1960 static enum ndr_err_code ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY16 *r)
1961 {
1962         if (ndr_flags & NDR_SCALARS) {
1963                 NDR_CHECK(ndr_push_align(ndr, 4));
1964                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1965                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1966                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
1967                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd));
1968         }
1969         if (ndr_flags & NDR_BUFFERS) {
1970                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
1971         }
1972         return NDR_ERR_SUCCESS;
1973 }
1974
1975 static enum ndr_err_code ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY16 *r)
1976 {
1977         if (ndr_flags & NDR_SCALARS) {
1978                 NDR_CHECK(ndr_pull_align(ndr, 4));
1979                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
1980                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1981                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
1982                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd));
1983         }
1984         if (ndr_flags & NDR_BUFFERS) {
1985                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
1986         }
1987         return NDR_ERR_SUCCESS;
1988 }
1989
1990 _PUBLIC_ void ndr_print_netr_USER_KEY16(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY16 *r)
1991 {
1992         ndr_print_struct(ndr, name, "netr_USER_KEY16");
1993         ndr->depth++;
1994         ndr_print_uint16(ndr, "length", r->length);
1995         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
1996         ndr_print_uint32(ndr, "flags", r->flags);
1997         ndr_print_samr_Password(ndr, "pwd", &r->pwd);
1998         ndr->depth--;
1999 }
2000
2001 static enum ndr_err_code ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordHistory *r)
2002 {
2003         if (ndr_flags & NDR_SCALARS) {
2004                 NDR_CHECK(ndr_push_align(ndr, 4));
2005                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2006                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2007                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_flags));
2008                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2009                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2010                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lm_flags));
2011                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2012                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2013         }
2014         if (ndr_flags & NDR_BUFFERS) {
2015         }
2016         return NDR_ERR_SUCCESS;
2017 }
2018
2019 static enum ndr_err_code ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *r)
2020 {
2021         if (ndr_flags & NDR_SCALARS) {
2022                 NDR_CHECK(ndr_pull_align(ndr, 4));
2023                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_length));
2024                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_size));
2025                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_flags));
2026                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length));
2027                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size));
2028                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags));
2029                 NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length);
2030                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2031                 NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length);
2032                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2033         }
2034         if (ndr_flags & NDR_BUFFERS) {
2035         }
2036         return NDR_ERR_SUCCESS;
2037 }
2038
2039 _PUBLIC_ void ndr_print_netr_PasswordHistory(struct ndr_print *ndr, const char *name, const struct netr_PasswordHistory *r)
2040 {
2041         ndr_print_struct(ndr, name, "netr_PasswordHistory");
2042         ndr->depth++;
2043         ndr_print_uint16(ndr, "nt_length", r->nt_length);
2044         ndr_print_uint16(ndr, "nt_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->nt_length:r->nt_size);
2045         ndr_print_uint32(ndr, "nt_flags", r->nt_flags);
2046         ndr_print_uint16(ndr, "lm_length", r->lm_length);
2047         ndr_print_uint16(ndr, "lm_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->lm_length:r->lm_size);
2048         ndr_print_uint32(ndr, "lm_flags", r->lm_flags);
2049         ndr_print_array_uint8(ndr, "nt_history", r->nt_history, r->nt_length);
2050         ndr_print_array_uint8(ndr, "lm_history", r->lm_history, r->lm_length);
2051         ndr->depth--;
2052 }
2053
2054 static enum ndr_err_code ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS2 *r)
2055 {
2056         if (ndr_flags & NDR_SCALARS) {
2057                 NDR_CHECK(ndr_push_align(ndr, 4));
2058                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2059                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2060                 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2061         }
2062         if (ndr_flags & NDR_BUFFERS) {
2063                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
2064                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
2065         }
2066         return NDR_ERR_SUCCESS;
2067 }
2068
2069 static enum ndr_err_code ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS2 *r)
2070 {
2071         if (ndr_flags & NDR_SCALARS) {
2072                 NDR_CHECK(ndr_pull_align(ndr, 4));
2073                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2074                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2075                 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2076         }
2077         if (ndr_flags & NDR_BUFFERS) {
2078                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
2079                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
2080         }
2081         return NDR_ERR_SUCCESS;
2082 }
2083
2084 _PUBLIC_ void ndr_print_netr_USER_KEYS2(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS2 *r)
2085 {
2086         ndr_print_struct(ndr, name, "netr_USER_KEYS2");
2087         ndr->depth++;
2088         ndr_print_netr_USER_KEY16(ndr, "lmpassword", &r->lmpassword);
2089         ndr_print_netr_USER_KEY16(ndr, "ntpassword", &r->ntpassword);
2090         ndr_print_netr_PasswordHistory(ndr, "history", &r->history);
2091         ndr->depth--;
2092 }
2093
2094 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)
2095 {
2096         if (ndr_flags & NDR_SCALARS) {
2097                 NDR_CHECK(ndr_push_align(ndr, 4));
2098                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2099         }
2100         if (ndr_flags & NDR_BUFFERS) {
2101                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
2102         }
2103         return NDR_ERR_SUCCESS;
2104 }
2105
2106 static enum ndr_err_code ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY_UNION *r)
2107 {
2108         if (ndr_flags & NDR_SCALARS) {
2109                 NDR_CHECK(ndr_pull_align(ndr, 4));
2110                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2111         }
2112         if (ndr_flags & NDR_BUFFERS) {
2113                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
2114         }
2115         return NDR_ERR_SUCCESS;
2116 }
2117
2118 _PUBLIC_ void ndr_print_netr_USER_KEY_UNION(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY_UNION *r)
2119 {
2120         ndr_print_struct(ndr, name, "netr_USER_KEY_UNION");
2121         ndr->depth++;
2122         ndr_print_netr_USER_KEYS2(ndr, "keys2", &r->keys2);
2123         ndr->depth--;
2124 }
2125
2126 _PUBLIC_ enum ndr_err_code ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS *r)
2127 {
2128         if (ndr_flags & NDR_SCALARS) {
2129                 NDR_CHECK(ndr_push_align(ndr, 4));
2130                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2131                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2132         }
2133         if (ndr_flags & NDR_BUFFERS) {
2134                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
2135         }
2136         return NDR_ERR_SUCCESS;
2137 }
2138
2139 _PUBLIC_ enum ndr_err_code ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS *r)
2140 {
2141         if (ndr_flags & NDR_SCALARS) {
2142                 NDR_CHECK(ndr_pull_align(ndr, 4));
2143                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2144                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2145         }
2146         if (ndr_flags & NDR_BUFFERS) {
2147                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
2148         }
2149         return NDR_ERR_SUCCESS;
2150 }
2151
2152 _PUBLIC_ void ndr_print_netr_USER_KEYS(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS *r)
2153 {
2154         ndr_print_struct(ndr, name, "netr_USER_KEYS");
2155         ndr->depth++;
2156         ndr_print_uint32(ndr, "version", r->version);
2157         ndr_print_netr_USER_KEY_UNION(ndr, "keys", &r->keys);
2158         ndr->depth--;
2159 }
2160
2161 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)
2162 {
2163         if (ndr_flags & NDR_SCALARS) {
2164                 NDR_CHECK(ndr_push_align(ndr, 4));
2165                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->SensitiveDataFlag));
2166                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2167                 {
2168                         uint32_t _flags_save_uint8 = ndr->flags;
2169                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2170                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->SensitiveData));
2171                         ndr->flags = _flags_save_uint8;
2172                 }
2173         }
2174         if (ndr_flags & NDR_BUFFERS) {
2175                 {
2176                         uint32_t _flags_save_uint8 = ndr->flags;
2177                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2178                         if (r->SensitiveData) {
2179                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2180                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, r->DataLength));
2181                         }
2182                         ndr->flags = _flags_save_uint8;
2183                 }
2184         }
2185         return NDR_ERR_SUCCESS;
2186 }
2187
2188 static enum ndr_err_code ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r)
2189 {
2190         uint32_t _ptr_SensitiveData;
2191         TALLOC_CTX *_mem_save_SensitiveData_0;
2192         if (ndr_flags & NDR_SCALARS) {
2193                 NDR_CHECK(ndr_pull_align(ndr, 4));
2194                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->SensitiveDataFlag));
2195                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataLength));
2196                 {
2197                         uint32_t _flags_save_uint8 = ndr->flags;
2198                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2199                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_SensitiveData));
2200                         if (_ptr_SensitiveData) {
2201                                 NDR_PULL_ALLOC(ndr, r->SensitiveData);
2202                         } else {
2203                                 r->SensitiveData = NULL;
2204                         }
2205                         ndr->flags = _flags_save_uint8;
2206                 }
2207         }
2208         if (ndr_flags & NDR_BUFFERS) {
2209                 {
2210                         uint32_t _flags_save_uint8 = ndr->flags;
2211                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2212                         if (r->SensitiveData) {
2213                                 _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr);
2214                                 NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0);
2215                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData));
2216                                 NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData));
2217                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)));
2218                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0);
2219                         }
2220                         ndr->flags = _flags_save_uint8;
2221                 }
2222                 if (r->SensitiveData) {
2223                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->SensitiveData, r->DataLength));
2224                 }
2225         }
2226         return NDR_ERR_SUCCESS;
2227 }
2228
2229 _PUBLIC_ void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print *ndr, const char *name, const struct netr_USER_PRIVATE_INFO *r)
2230 {
2231         ndr_print_struct(ndr, name, "netr_USER_PRIVATE_INFO");
2232         ndr->depth++;
2233         ndr_print_uint8(ndr, "SensitiveDataFlag", r->SensitiveDataFlag);
2234         ndr_print_uint32(ndr, "DataLength", r->DataLength);
2235         ndr_print_ptr(ndr, "SensitiveData", r->SensitiveData);
2236         ndr->depth++;
2237         if (r->SensitiveData) {
2238                 ndr_print_array_uint8(ndr, "SensitiveData", r->SensitiveData, r->DataLength);
2239         }
2240         ndr->depth--;
2241         ndr->depth--;
2242 }
2243
2244 static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_USER *r)
2245 {
2246         if (ndr_flags & NDR_SCALARS) {
2247                 NDR_CHECK(ndr_push_align(ndr, 4));
2248                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2249                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2250                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2251                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2252                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2253                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2254                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2255                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2256                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2257                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2258                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2259                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2260                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2261                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2262                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2263                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2264                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2265                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2266                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2267                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_present));
2268                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present));
2269                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2270                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2271                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2272                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2273                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2274                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2275                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2276                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2277                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2278                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2279                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2280                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2281                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2282                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2283                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2284                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2285         }
2286         if (ndr_flags & NDR_BUFFERS) {
2287                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2288                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2289                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2290                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2291                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2292                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2293                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2294                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2295                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
2296                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
2297                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2298                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2299                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2300                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2301                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2302                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2303                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2304                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2305         }
2306         return NDR_ERR_SUCCESS;
2307 }
2308
2309 static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_USER *r)
2310 {
2311         if (ndr_flags & NDR_SCALARS) {
2312                 NDR_CHECK(ndr_pull_align(ndr, 4));
2313                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2314                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2315                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2316                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2317                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2318                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2319                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2320                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2321                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2322                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2323                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2324                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2325                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2326                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2327                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2328                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2329                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2330                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2331                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2332                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_present));
2333                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present));
2334                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
2335                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2336                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2337                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
2338                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
2339                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2340                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2341                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2342                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2343                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2344                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2345                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2346                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2347                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2348                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2349                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2350         }
2351         if (ndr_flags & NDR_BUFFERS) {
2352                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2353                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2354                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2355                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2356                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2357                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2358                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2359                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2360                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
2361                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
2362                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2363                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2364                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2365                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2366                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2367                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2368                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2369                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2370         }
2371         return NDR_ERR_SUCCESS;
2372 }
2373
2374 _PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_USER *r)
2375 {
2376         ndr_print_struct(ndr, name, "netr_DELTA_USER");
2377         ndr->depth++;
2378         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2379         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2380         ndr_print_uint32(ndr, "rid", r->rid);
2381         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2382         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2383         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2384         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2385         ndr_print_lsa_String(ndr, "description", &r->description);
2386         ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2387         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2388         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2389         ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2390         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2391         ndr_print_uint16(ndr, "logon_count", r->logon_count);
2392         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2393         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2394         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2395         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
2396         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
2397         ndr_print_uint8(ndr, "nt_password_present", r->nt_password_present);
2398         ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present);
2399         ndr_print_uint8(ndr, "password_expired", r->password_expired);
2400         ndr_print_lsa_String(ndr, "comment", &r->comment);
2401         ndr_print_lsa_String(ndr, "parameters", &r->parameters);
2402         ndr_print_uint16(ndr, "country_code", r->country_code);
2403         ndr_print_uint16(ndr, "code_page", r->code_page);
2404         ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info);
2405         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2406         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2407         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2408         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2409         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2410         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2411         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2412         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2413         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2414         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2415         ndr->depth--;
2416 }
2417
2418 static enum ndr_err_code ndr_push_netr_DELTA_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DOMAIN *r)
2419 {
2420         if (ndr_flags & NDR_SCALARS) {
2421                 NDR_CHECK(ndr_push_align(ndr, 4));
2422                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2423                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2424                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->force_logoff_time));
2425                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
2426                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
2427                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
2428                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
2429                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2430                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
2431                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2432                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2433                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2434                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2435                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2436                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2437                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_to_chgpass));
2438                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2439                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2440                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2441         }
2442         if (ndr_flags & NDR_BUFFERS) {
2443                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2444                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2445                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2446                 NDR_CHECK(ndr_push_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2447                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2448                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2449                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2450         }
2451         return NDR_ERR_SUCCESS;
2452 }
2453
2454 static enum ndr_err_code ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DOMAIN *r)
2455 {
2456         if (ndr_flags & NDR_SCALARS) {
2457                 NDR_CHECK(ndr_pull_align(ndr, 4));
2458                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2459                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2460                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->force_logoff_time));
2461                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
2462                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
2463                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
2464                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
2465                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
2466                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
2467                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2468                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2469                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_SCALARS, &r->account_lockout));
2470                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2471                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2472                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2473                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_to_chgpass));
2474                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2475                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2476                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2477         }
2478         if (ndr_flags & NDR_BUFFERS) {
2479                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2480                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2481                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2482                 NDR_CHECK(ndr_pull_lsa_BinaryString(ndr, NDR_BUFFERS, &r->account_lockout));
2483                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2484                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2485                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2486         }
2487         return NDR_ERR_SUCCESS;
2488 }
2489
2490 _PUBLIC_ void ndr_print_netr_DELTA_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DOMAIN *r)
2491 {
2492         ndr_print_struct(ndr, name, "netr_DELTA_DOMAIN");
2493         ndr->depth++;
2494         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
2495         ndr_print_lsa_String(ndr, "comment", &r->comment);
2496         ndr_print_dlong(ndr, "force_logoff_time", r->force_logoff_time);
2497         ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
2498         ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
2499         ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
2500         ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
2501         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
2502         ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
2503         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2504         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2505         ndr_print_lsa_BinaryString(ndr, "account_lockout", &r->account_lockout);
2506         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2507         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2508         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2509         ndr_print_uint32(ndr, "logon_to_chgpass", r->logon_to_chgpass);
2510         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2511         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2512         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2513         ndr->depth--;
2514 }
2515
2516 static enum ndr_err_code ndr_push_netr_DELTA_GROUP(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP *r)
2517 {
2518         if (ndr_flags & NDR_SCALARS) {
2519                 NDR_CHECK(ndr_push_align(ndr, 4));
2520                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2521                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2522                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
2523                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2524                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2525                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2526                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2527                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2528                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2529                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2530                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2531                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2532                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2533                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2534         }
2535         if (ndr_flags & NDR_BUFFERS) {
2536                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2537                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2538                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2539                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2540                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2541                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2542                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2543         }
2544         return NDR_ERR_SUCCESS;
2545 }
2546
2547 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP *r)
2548 {
2549         if (ndr_flags & NDR_SCALARS) {
2550                 NDR_CHECK(ndr_pull_align(ndr, 4));
2551                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2552                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2553                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
2554                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2555                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2556                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2557                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2558                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2559                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2560                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2561                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2562                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2563                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2564                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2565         }
2566         if (ndr_flags & NDR_BUFFERS) {
2567                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2568                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2569                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2570                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2571                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2572                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2573                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2574         }
2575         return NDR_ERR_SUCCESS;
2576 }
2577
2578 _PUBLIC_ void ndr_print_netr_DELTA_GROUP(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP *r)
2579 {
2580         ndr_print_struct(ndr, name, "netr_DELTA_GROUP");
2581         ndr->depth++;
2582         ndr_print_lsa_String(ndr, "group_name", &r->group_name);
2583         ndr_print_uint32(ndr, "rid", r->rid);
2584         ndr_print_uint32(ndr, "attributes", r->attributes);
2585         ndr_print_lsa_String(ndr, "description", &r->description);
2586         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2587         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2588         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2589         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2590         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2591         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2592         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2593         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2594         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2595         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2596         ndr->depth--;
2597 }
2598
2599 static enum ndr_err_code ndr_push_netr_DELTA_RENAME(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_RENAME *r)
2600 {
2601         if (ndr_flags & NDR_SCALARS) {
2602                 NDR_CHECK(ndr_push_align(ndr, 4));
2603                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2604                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2605                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2606                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2607                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2608                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2609                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2610                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2611                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2612                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2613         }
2614         if (ndr_flags & NDR_BUFFERS) {
2615                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2616                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2617                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2618                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2619                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2620                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2621         }
2622         return NDR_ERR_SUCCESS;
2623 }
2624
2625 static enum ndr_err_code ndr_pull_netr_DELTA_RENAME(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_RENAME *r)
2626 {
2627         if (ndr_flags & NDR_SCALARS) {
2628                 NDR_CHECK(ndr_pull_align(ndr, 4));
2629                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2630                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2631                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2632                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2633                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2634                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2635                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2636                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2637                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2638                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2639         }
2640         if (ndr_flags & NDR_BUFFERS) {
2641                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2642                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2643                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2644                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2645                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2646                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2647         }
2648         return NDR_ERR_SUCCESS;
2649 }
2650
2651 _PUBLIC_ void ndr_print_netr_DELTA_RENAME(struct ndr_print *ndr, const char *name, const struct netr_DELTA_RENAME *r)
2652 {
2653         ndr_print_struct(ndr, name, "netr_DELTA_RENAME");
2654         ndr->depth++;
2655         ndr_print_lsa_String(ndr, "OldName", &r->OldName);
2656         ndr_print_lsa_String(ndr, "NewName", &r->NewName);
2657         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2658         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2659         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2660         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2661         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2662         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2663         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2664         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2665         ndr->depth--;
2666 }
2667
2668 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)
2669 {
2670         uint32_t cntr_rids_1;
2671         uint32_t cntr_attribs_1;
2672         if (ndr_flags & NDR_SCALARS) {
2673                 NDR_CHECK(ndr_push_align(ndr, 4));
2674                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
2675                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribs));
2676                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2677                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2678                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2679                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2680                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2681         }
2682         if (ndr_flags & NDR_BUFFERS) {
2683                 if (r->rids) {
2684                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2685                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2686                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
2687                         }
2688                 }
2689                 if (r->attribs) {
2690                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2691                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2692                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribs[cntr_attribs_1]));
2693                         }
2694                 }
2695         }
2696         return NDR_ERR_SUCCESS;
2697 }
2698
2699 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r)
2700 {
2701         uint32_t _ptr_rids;
2702         uint32_t cntr_rids_1;
2703         TALLOC_CTX *_mem_save_rids_0;
2704         TALLOC_CTX *_mem_save_rids_1;
2705         uint32_t _ptr_attribs;
2706         uint32_t cntr_attribs_1;
2707         TALLOC_CTX *_mem_save_attribs_0;
2708         TALLOC_CTX *_mem_save_attribs_1;
2709         if (ndr_flags & NDR_SCALARS) {
2710                 NDR_CHECK(ndr_pull_align(ndr, 4));
2711                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
2712                 if (_ptr_rids) {
2713                         NDR_PULL_ALLOC(ndr, r->rids);
2714                 } else {
2715                         r->rids = NULL;
2716                 }
2717                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribs));
2718                 if (_ptr_attribs) {
2719                         NDR_PULL_ALLOC(ndr, r->attribs);
2720                 } else {
2721                         r->attribs = NULL;
2722                 }
2723                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
2724                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2725                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2726                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2727                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2728         }
2729         if (ndr_flags & NDR_BUFFERS) {
2730                 if (r->rids) {
2731                         _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
2732                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2733                         NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
2734                         NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
2735                         _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
2736                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2737                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2738                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
2739                         }
2740                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
2741                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
2742                 }
2743                 if (r->attribs) {
2744                         _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr);
2745                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2746                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs));
2747                         NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs));
2748                         _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr);
2749                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2750                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2751                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1]));
2752                         }
2753                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0);
2754                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_0, 0);
2755                 }
2756                 if (r->rids) {
2757                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
2758                 }
2759                 if (r->attribs) {
2760                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attribs, r->num_rids));
2761                 }
2762         }
2763         return NDR_ERR_SUCCESS;
2764 }
2765
2766 _PUBLIC_ void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP_MEMBER *r)
2767 {
2768         uint32_t cntr_rids_1;
2769         uint32_t cntr_attribs_1;
2770         ndr_print_struct(ndr, name, "netr_DELTA_GROUP_MEMBER");
2771         ndr->depth++;
2772         ndr_print_ptr(ndr, "rids", r->rids);
2773         ndr->depth++;
2774         if (r->rids) {
2775                 ndr->print(ndr, "%s: ARRAY(%d)", "rids", r->num_rids);
2776                 ndr->depth++;
2777                 for (cntr_rids_1=0;cntr_rids_1<r->num_rids;cntr_rids_1++) {
2778                         char *idx_1=NULL;
2779                         if (asprintf(&idx_1, "[%d]", cntr_rids_1) != -1) {
2780                                 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
2781                                 free(idx_1);
2782                         }
2783                 }
2784                 ndr->depth--;
2785         }
2786         ndr->depth--;
2787         ndr_print_ptr(ndr, "attribs", r->attribs);
2788         ndr->depth++;
2789         if (r->attribs) {
2790                 ndr->print(ndr, "%s: ARRAY(%d)", "attribs", r->num_rids);
2791                 ndr->depth++;
2792                 for (cntr_attribs_1=0;cntr_attribs_1<r->num_rids;cntr_attribs_1++) {
2793                         char *idx_1=NULL;
2794                         if (asprintf(&idx_1, "[%d]", cntr_attribs_1) != -1) {
2795                                 ndr_print_uint32(ndr, "attribs", r->attribs[cntr_attribs_1]);
2796                                 free(idx_1);
2797                         }
2798                 }
2799                 ndr->depth--;
2800         }
2801         ndr->depth--;
2802         ndr_print_uint32(ndr, "num_rids", r->num_rids);
2803         ndr_print_uint32(ndr, "unknown1", r->unknown1);
2804         ndr_print_uint32(ndr, "unknown2", r->unknown2);
2805         ndr_print_uint32(ndr, "unknown3", r->unknown3);
2806         ndr_print_uint32(ndr, "unknown4", r->unknown4);
2807         ndr->depth--;
2808 }
2809
2810 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS *r)
2811 {
2812         if (ndr_flags & NDR_SCALARS) {
2813                 NDR_CHECK(ndr_push_align(ndr, 4));
2814                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2815                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2816                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2817                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2818                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2819                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2820                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2821                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2822                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2823                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2824                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2825                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2826         }
2827         if (ndr_flags & NDR_BUFFERS) {
2828                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2829                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2830                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2831                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2832                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2833                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2834         }
2835         return NDR_ERR_SUCCESS;
2836 }
2837
2838 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS *r)
2839 {
2840         if (ndr_flags & NDR_SCALARS) {
2841                 NDR_CHECK(ndr_pull_align(ndr, 4));
2842                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2843                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2844                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2845                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2846                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2847                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2848                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2849                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2850                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2851                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2852                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2853                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2854         }
2855         if (ndr_flags & NDR_BUFFERS) {
2856                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2857                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2858                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2859                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2860                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2861                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2862         }
2863         return NDR_ERR_SUCCESS;
2864 }
2865
2866 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS *r)
2867 {
2868         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS");
2869         ndr->depth++;
2870         ndr_print_lsa_String(ndr, "alias_name", &r->alias_name);
2871         ndr_print_uint32(ndr, "rid", r->rid);
2872         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2873         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2874         ndr_print_lsa_String(ndr, "description", &r->description);
2875         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2876         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2877         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2878         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2879         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2880         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2881         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2882         ndr->depth--;
2883 }
2884
2885 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)
2886 {
2887         if (ndr_flags & NDR_SCALARS) {
2888                 NDR_CHECK(ndr_push_align(ndr, 4));
2889                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2890                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2891                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2892                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2893                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2894         }
2895         if (ndr_flags & NDR_BUFFERS) {
2896                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2897         }
2898         return NDR_ERR_SUCCESS;
2899 }
2900
2901 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS_MEMBER *r)
2902 {
2903         if (ndr_flags & NDR_SCALARS) {
2904                 NDR_CHECK(ndr_pull_align(ndr, 4));
2905                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2906                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2907                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2908                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2909                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2910         }
2911         if (ndr_flags & NDR_BUFFERS) {
2912                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2913         }
2914         return NDR_ERR_SUCCESS;
2915 }
2916
2917 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS_MEMBER *r)
2918 {
2919         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS_MEMBER");
2920         ndr->depth++;
2921         ndr_print_lsa_SidArray(ndr, "sids", &r->sids);
2922         ndr_print_uint32(ndr, "unknown1", r->unknown1);
2923         ndr_print_uint32(ndr, "unknown2", r->unknown2);
2924         ndr_print_uint32(ndr, "unknown3", r->unknown3);
2925         ndr_print_uint32(ndr, "unknown4", r->unknown4);
2926         ndr->depth--;
2927 }
2928
2929 static enum ndr_err_code ndr_push_netr_QUOTA_LIMITS(struct ndr_push *ndr, int ndr_flags, const struct netr_QUOTA_LIMITS *r)
2930 {
2931         if (ndr_flags & NDR_SCALARS) {
2932                 NDR_CHECK(ndr_push_align(ndr, 4));
2933                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagedpoollimit));
2934                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonpagedpoollimit));
2935                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minimumworkingsetsize));
2936                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maximumworkingsetsize));
2937                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagefilelimit));
2938                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timelimit));
2939         }
2940         if (ndr_flags & NDR_BUFFERS) {
2941         }
2942         return NDR_ERR_SUCCESS;
2943 }
2944
2945 static enum ndr_err_code ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull *ndr, int ndr_flags, struct netr_QUOTA_LIMITS *r)
2946 {
2947         if (ndr_flags & NDR_SCALARS) {
2948                 NDR_CHECK(ndr_pull_align(ndr, 4));
2949                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagedpoollimit));
2950                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonpagedpoollimit));
2951                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minimumworkingsetsize));
2952                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maximumworkingsetsize));
2953                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagefilelimit));
2954                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timelimit));
2955         }
2956         if (ndr_flags & NDR_BUFFERS) {
2957         }
2958         return NDR_ERR_SUCCESS;
2959 }
2960
2961 _PUBLIC_ void ndr_print_netr_QUOTA_LIMITS(struct ndr_print *ndr, const char *name, const struct netr_QUOTA_LIMITS *r)
2962 {
2963         ndr_print_struct(ndr, name, "netr_QUOTA_LIMITS");
2964         ndr->depth++;
2965         ndr_print_uint32(ndr, "pagedpoollimit", r->pagedpoollimit);
2966         ndr_print_uint32(ndr, "nonpagedpoollimit", r->nonpagedpoollimit);
2967         ndr_print_uint32(ndr, "minimumworkingsetsize", r->minimumworkingsetsize);
2968         ndr_print_uint32(ndr, "maximumworkingsetsize", r->maximumworkingsetsize);
2969         ndr_print_uint32(ndr, "pagefilelimit", r->pagefilelimit);
2970         ndr_print_NTTIME(ndr, "timelimit", r->timelimit);
2971         ndr->depth--;
2972 }
2973
2974 static enum ndr_err_code ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_POLICY *r)
2975 {
2976         uint32_t cntr_eventauditoptions_1;
2977         if (ndr_flags & NDR_SCALARS) {
2978                 NDR_CHECK(ndr_push_align(ndr, 4));
2979                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlogsize));
2980                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->auditretentionperiod));
2981                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auditingmode));
2982                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount));
2983                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->eventauditoptions));
2984                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
2985                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
2986                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
2987                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2988                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time));
2989                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2990                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2991                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2992                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2993                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2994                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2995                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2996                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2997                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2998                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2999         }
3000         if (ndr_flags & NDR_BUFFERS) {
3001                 if (r->eventauditoptions) {
3002                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount + 1));
3003                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3004                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventauditoptions[cntr_eventauditoptions_1]));
3005                         }
3006                 }
3007                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3008                 if (r->sid) {
3009                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3010                 }
3011                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3012                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3013                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3014                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3015                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3016         }
3017         return NDR_ERR_SUCCESS;
3018 }
3019
3020 static enum ndr_err_code ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r)
3021 {
3022         uint32_t _ptr_eventauditoptions;
3023         uint32_t cntr_eventauditoptions_1;
3024         TALLOC_CTX *_mem_save_eventauditoptions_0;
3025         TALLOC_CTX *_mem_save_eventauditoptions_1;
3026         uint32_t _ptr_sid;
3027         TALLOC_CTX *_mem_save_sid_0;
3028         if (ndr_flags & NDR_SCALARS) {
3029                 NDR_CHECK(ndr_pull_align(ndr, 4));
3030                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlogsize));
3031                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->auditretentionperiod));
3032                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auditingmode));
3033                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxauditeventcount));
3034                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eventauditoptions));
3035                 if (_ptr_eventauditoptions) {
3036                         NDR_PULL_ALLOC(ndr, r->eventauditoptions);
3037                 } else {
3038                         r->eventauditoptions = NULL;
3039                 }
3040                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3041                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
3042                 if (_ptr_sid) {
3043                         NDR_PULL_ALLOC(ndr, r->sid);
3044                 } else {
3045                         r->sid = NULL;
3046                 }
3047                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3048                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
3049                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time));
3050                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3051                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3052                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3053                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3054                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3055                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3056                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3057                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3058                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3059                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3060         }
3061         if (ndr_flags & NDR_BUFFERS) {
3062                 if (r->eventauditoptions) {
3063                         _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr);
3064                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3065                         NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions));
3066                         NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions));
3067                         _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr);
3068                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3069                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3070                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1]));
3071                         }
3072                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0);
3073                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_0, 0);
3074                 }
3075                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3076                 if (r->sid) {
3077                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
3078                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
3079                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3080                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
3081                 }
3082                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3083                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3084                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3085                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3086                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3087                 if (r->eventauditoptions) {
3088                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eventauditoptions, r->maxauditeventcount + 1));
3089                 }
3090         }
3091         return NDR_ERR_SUCCESS;
3092 }
3093
3094 _PUBLIC_ void ndr_print_netr_DELTA_POLICY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_POLICY *r)
3095 {
3096         uint32_t cntr_eventauditoptions_1;
3097         ndr_print_struct(ndr, name, "netr_DELTA_POLICY");
3098         ndr->depth++;
3099         ndr_print_uint32(ndr, "maxlogsize", r->maxlogsize);
3100         ndr_print_NTTIME(ndr, "auditretentionperiod", r->auditretentionperiod);
3101         ndr_print_uint8(ndr, "auditingmode", r->auditingmode);
3102         ndr_print_uint32(ndr, "maxauditeventcount", r->maxauditeventcount);
3103         ndr_print_ptr(ndr, "eventauditoptions", r->eventauditoptions);
3104         ndr->depth++;
3105         if (r->eventauditoptions) {
3106                 ndr->print(ndr, "%s: ARRAY(%d)", "eventauditoptions", r->maxauditeventcount + 1);
3107                 ndr->depth++;
3108                 for (cntr_eventauditoptions_1=0;cntr_eventauditoptions_1<r->maxauditeventcount + 1;cntr_eventauditoptions_1++) {
3109                         char *idx_1=NULL;
3110                         if (asprintf(&idx_1, "[%d]", cntr_eventauditoptions_1) != -1) {
3111                                 ndr_print_uint32(ndr, "eventauditoptions", r->eventauditoptions[cntr_eventauditoptions_1]);
3112                                 free(idx_1);
3113                         }
3114                 }
3115                 ndr->depth--;
3116         }
3117         ndr->depth--;
3118         ndr_print_lsa_String(ndr, "primary_domain_name", &r->primary_domain_name);
3119         ndr_print_ptr(ndr, "sid", r->sid);
3120         ndr->depth++;
3121         if (r->sid) {
3122                 ndr_print_dom_sid2(ndr, "sid", r->sid);
3123         }
3124         ndr->depth--;
3125         ndr_print_netr_QUOTA_LIMITS(ndr, "quota_limits", &r->quota_limits);
3126         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
3127         ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
3128         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3129         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3130         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3131         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3132         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3133         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3134         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3135         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3136         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3137         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3138         ndr->depth--;
3139 }
3140
3141 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)
3142 {
3143         uint32_t cntr_controller_names_1;
3144         if (ndr_flags & NDR_SCALARS) {
3145                 NDR_CHECK(ndr_push_align(ndr, 4));
3146                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3147                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3148                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->controller_names));
3149                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3150                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3151                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3152                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3153                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3154                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3155                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_offset));
3156                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3157                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3158                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3159         }
3160         if (ndr_flags & NDR_BUFFERS) {
3161                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3162                 if (r->controller_names) {
3163                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3164                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3165                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3166                         }
3167                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3168                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3169                         }
3170                 }
3171                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3172                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3173                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3174                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3175                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3176         }
3177         return NDR_ERR_SUCCESS;
3178 }
3179
3180 static enum ndr_err_code ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r)
3181 {
3182         uint32_t _ptr_controller_names;
3183         uint32_t cntr_controller_names_1;
3184         TALLOC_CTX *_mem_save_controller_names_0;
3185         TALLOC_CTX *_mem_save_controller_names_1;
3186         if (ndr_flags & NDR_SCALARS) {
3187                 NDR_CHECK(ndr_pull_align(ndr, 4));
3188                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3189                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_controllers));
3190                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_controller_names));
3191                 if (_ptr_controller_names) {
3192                         NDR_PULL_ALLOC(ndr, r->controller_names);
3193                 } else {
3194                         r->controller_names = NULL;
3195                 }
3196                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3197                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3198                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3199                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3200                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3201                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3202                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_offset));
3203                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3204                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3205                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3206         }
3207         if (ndr_flags & NDR_BUFFERS) {
3208                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3209                 if (r->controller_names) {
3210                         _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
3211                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3212                         NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names));
3213                         NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names));
3214                         _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
3215                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3216                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3217                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3218                         }
3219                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3220                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3221                         }
3222                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0);
3223                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_0, 0);
3224                 }
3225                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3226                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3227                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3228                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3229                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3230                 if (r->controller_names) {
3231                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->controller_names, r->num_controllers));
3232                 }
3233         }
3234         return NDR_ERR_SUCCESS;
3235 }
3236
3237 _PUBLIC_ void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3238 {
3239         uint32_t cntr_controller_names_1;
3240         ndr_print_struct(ndr, name, "netr_DELTA_TRUSTED_DOMAIN");
3241         ndr->depth++;
3242         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
3243         ndr_print_uint32(ndr, "num_controllers", r->num_controllers);
3244         ndr_print_ptr(ndr, "controller_names", r->controller_names);
3245         ndr->depth++;
3246         if (r->controller_names) {
3247                 ndr->print(ndr, "%s: ARRAY(%d)", "controller_names", r->num_controllers);
3248                 ndr->depth++;
3249                 for (cntr_controller_names_1=0;cntr_controller_names_1<r->num_controllers;cntr_controller_names_1++) {
3250                         char *idx_1=NULL;
3251                         if (asprintf(&idx_1, "[%d]", cntr_controller_names_1) != -1) {
3252                                 ndr_print_lsa_String(ndr, "controller_names", &r->controller_names[cntr_controller_names_1]);
3253                                 free(idx_1);
3254                         }
3255                 }
3256                 ndr->depth--;
3257         }
3258         ndr->depth--;
3259         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3260         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3261         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3262         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3263         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3264         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3265         ndr_print_uint32(ndr, "posix_offset", r->posix_offset);
3266         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3267         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3268         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3269         ndr->depth--;
3270 }
3271
3272 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)
3273 {
3274         if (ndr_flags & NDR_SCALARS) {
3275                 NDR_CHECK(ndr_push_align(ndr, 2));
3276                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3277         }
3278         if (ndr_flags & NDR_BUFFERS) {
3279         }
3280         return NDR_ERR_SUCCESS;
3281 }
3282
3283 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_TRUST *r)
3284 {
3285         if (ndr_flags & NDR_SCALARS) {
3286                 NDR_CHECK(ndr_pull_align(ndr, 2));
3287                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3288         }
3289         if (ndr_flags & NDR_BUFFERS) {
3290         }
3291         return NDR_ERR_SUCCESS;
3292 }
3293
3294 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_TRUST *r)
3295 {
3296         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_TRUST");
3297         ndr->depth++;
3298         ndr_print_uint16(ndr, "unknown", r->unknown);
3299         ndr->depth--;
3300 }
3301
3302 static enum ndr_err_code ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ACCOUNT *r)
3303 {
3304         uint32_t cntr_privilege_attrib_1;
3305         uint32_t cntr_privilege_name_1;
3306         if (ndr_flags & NDR_SCALARS) {
3307                 NDR_CHECK(ndr_push_align(ndr, 4));
3308                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3309                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_control));
3310                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_attrib));
3311                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_name));
3312                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3313                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->system_flags));
3314                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3315                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3316                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3317                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3318                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3319                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3320                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3321                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3322                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3323                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3324         }
3325         if (ndr_flags & NDR_BUFFERS) {
3326                 if (r->privilege_attrib) {
3327                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3328                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3329                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_attrib[cntr_privilege_attrib_1]));
3330                         }
3331                 }
3332                 if (r->privilege_name) {
3333                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3334                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3335                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3336                         }
3337                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3338                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3339                         }
3340                 }
3341                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3342                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3343                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3344                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3345                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3346         }
3347         return NDR_ERR_SUCCESS;
3348 }
3349
3350 static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r)
3351 {
3352         uint32_t _ptr_privilege_attrib;
3353         uint32_t cntr_privilege_attrib_1;
3354         TALLOC_CTX *_mem_save_privilege_attrib_0;
3355         TALLOC_CTX *_mem_save_privilege_attrib_1;
3356         uint32_t _ptr_privilege_name;
3357         uint32_t cntr_privilege_name_1;
3358         TALLOC_CTX *_mem_save_privilege_name_0;
3359         TALLOC_CTX *_mem_save_privilege_name_1;
3360         if (ndr_flags & NDR_SCALARS) {
3361                 NDR_CHECK(ndr_pull_align(ndr, 4));
3362                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_entries));
3363                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_control));
3364                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_attrib));
3365                 if (_ptr_privilege_attrib) {
3366                         NDR_PULL_ALLOC(ndr, r->privilege_attrib);
3367                 } else {
3368                         r->privilege_attrib = NULL;
3369                 }
3370                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_name));
3371                 if (_ptr_privilege_name) {
3372                         NDR_PULL_ALLOC(ndr, r->privilege_name);
3373                 } else {
3374                         r->privilege_name = NULL;
3375                 }
3376                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3377                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->system_flags));
3378                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3379                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3380                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3381                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3382                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3383                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3384                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3385                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3386                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3387                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3388         }
3389         if (ndr_flags & NDR_BUFFERS) {
3390                 if (r->privilege_attrib) {
3391                         _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
3392                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3393                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib));
3394                         NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib));
3395                         _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr);
3396                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3397                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3398                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1]));
3399                         }
3400                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0);
3401                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_0, 0);
3402                 }
3403                 if (r->privilege_name) {
3404                         _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3405                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3406                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name));
3407                         NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name));
3408                         _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
3409                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3410                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3411                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3412                         }
3413                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3414                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3415                         }
3416                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0);
3417                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_0, 0);
3418                 }
3419                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3420                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3421                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3422                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3423                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3424                 if (r->privilege_attrib) {
3425                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_attrib, r->privilege_entries));
3426                 }
3427                 if (r->privilege_name) {
3428                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_name, r->privilege_entries));
3429                 }
3430         }
3431         return NDR_ERR_SUCCESS;
3432 }
3433
3434 _PUBLIC_ void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ACCOUNT *r)
3435 {
3436         uint32_t cntr_privilege_attrib_1;
3437         uint32_t cntr_privilege_name_1;
3438         ndr_print_struct(ndr, name, "netr_DELTA_ACCOUNT");
3439         ndr->depth++;
3440         ndr_print_uint32(ndr, "privilege_entries", r->privilege_entries);
3441         ndr_print_uint32(ndr, "privilege_control", r->privilege_control);
3442         ndr_print_ptr(ndr, "privilege_attrib", r->privilege_attrib);
3443         ndr->depth++;
3444         if (r->privilege_attrib) {
3445                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_attrib", r->privilege_entries);
3446                 ndr->depth++;
3447                 for (cntr_privilege_attrib_1=0;cntr_privilege_attrib_1<r->privilege_entries;cntr_privilege_attrib_1++) {
3448                         char *idx_1=NULL;
3449                         if (asprintf(&idx_1, "[%d]", cntr_privilege_attrib_1) != -1) {
3450                                 ndr_print_uint32(ndr, "privilege_attrib", r->privilege_attrib[cntr_privilege_attrib_1]);
3451                                 free(idx_1);
3452                         }
3453                 }
3454                 ndr->depth--;
3455         }
3456         ndr->depth--;
3457         ndr_print_ptr(ndr, "privilege_name", r->privilege_name);
3458         ndr->depth++;
3459         if (r->privilege_name) {
3460                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_name", r->privilege_entries);
3461                 ndr->depth++;
3462                 for (cntr_privilege_name_1=0;cntr_privilege_name_1<r->privilege_entries;cntr_privilege_name_1++) {
3463                         char *idx_1=NULL;
3464                         if (asprintf(&idx_1, "[%d]", cntr_privilege_name_1) != -1) {
3465                                 ndr_print_lsa_String(ndr, "privilege_name", &r->privilege_name[cntr_privilege_name_1]);
3466                                 free(idx_1);
3467                         }
3468                 }
3469                 ndr->depth--;
3470         }
3471         ndr->depth--;
3472         ndr_print_netr_QUOTA_LIMITS(ndr, "quotalimits", &r->quotalimits);
3473         ndr_print_uint32(ndr, "system_flags", r->system_flags);
3474         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3475         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3476         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3477         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3478         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3479         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3480         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3481         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3482         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3483         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3484         ndr->depth--;
3485 }
3486
3487 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)
3488 {
3489         if (ndr_flags & NDR_SCALARS) {
3490                 NDR_CHECK(ndr_push_align(ndr, 2));
3491                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3492         }
3493         if (ndr_flags & NDR_BUFFERS) {
3494         }
3495         return NDR_ERR_SUCCESS;
3496 }
3497
3498 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_ACCOUNT *r)
3499 {
3500         if (ndr_flags & NDR_SCALARS) {
3501                 NDR_CHECK(ndr_pull_align(ndr, 2));
3502                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3503         }
3504         if (ndr_flags & NDR_BUFFERS) {
3505         }
3506         return NDR_ERR_SUCCESS;
3507 }
3508
3509 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_ACCOUNT *r)
3510 {
3511         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_ACCOUNT");
3512         ndr->depth++;
3513         ndr_print_uint16(ndr, "unknown", r->unknown);
3514         ndr->depth--;
3515 }
3516
3517 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)
3518 {
3519         if (ndr_flags & NDR_SCALARS) {
3520                 NDR_CHECK(ndr_push_align(ndr, 2));
3521                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3522         }
3523         if (ndr_flags & NDR_BUFFERS) {
3524         }
3525         return NDR_ERR_SUCCESS;
3526 }
3527
3528 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_SECRET *r)
3529 {
3530         if (ndr_flags & NDR_SCALARS) {
3531                 NDR_CHECK(ndr_pull_align(ndr, 2));
3532                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3533         }
3534         if (ndr_flags & NDR_BUFFERS) {
3535         }
3536         return NDR_ERR_SUCCESS;
3537 }
3538
3539 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_SECRET *r)
3540 {
3541         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_SECRET");
3542         ndr->depth++;
3543         ndr_print_uint16(ndr, "unknown", r->unknown);
3544         ndr->depth--;
3545 }
3546
3547 static enum ndr_err_code ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int ndr_flags, const struct netr_CIPHER_VALUE *r)
3548 {
3549         if (ndr_flags & NDR_SCALARS) {
3550                 NDR_CHECK(ndr_push_align(ndr, 4));
3551                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3552                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3553                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cipher_data));
3554         }
3555         if (ndr_flags & NDR_BUFFERS) {
3556                 if (r->cipher_data) {
3557                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3558                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3559                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3560                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->cipher_data, r->len));
3561                 }
3562         }
3563         return NDR_ERR_SUCCESS;
3564 }
3565
3566 static enum ndr_err_code ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r)
3567 {
3568         uint32_t _ptr_cipher_data;
3569         TALLOC_CTX *_mem_save_cipher_data_0;
3570         if (ndr_flags & NDR_SCALARS) {
3571                 NDR_CHECK(ndr_pull_align(ndr, 4));
3572                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
3573                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlen));
3574                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cipher_data));
3575                 if (_ptr_cipher_data) {
3576                         NDR_PULL_ALLOC(ndr, r->cipher_data);
3577                 } else {
3578                         r->cipher_data = NULL;
3579                 }
3580         }
3581         if (ndr_flags & NDR_BUFFERS) {
3582                 if (r->cipher_data) {
3583                         _mem_save_cipher_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
3584                         NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0);
3585                         NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data));
3586                         NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data));
3587                         if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) {
3588                                 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));
3589                         }
3590                         NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data));
3591                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data)));
3592                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0);
3593                 }
3594                 if (r->cipher_data) {
3595                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cipher_data, r->maxlen));
3596                 }
3597                 if (r->cipher_data) {
3598                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->cipher_data, r->len));
3599                 }
3600         }
3601         return NDR_ERR_SUCCESS;
3602 }
3603
3604 _PUBLIC_ void ndr_print_netr_CIPHER_VALUE(struct ndr_print *ndr, const char *name, const struct netr_CIPHER_VALUE *r)
3605 {
3606         ndr_print_struct(ndr, name, "netr_CIPHER_VALUE");
3607         ndr->depth++;
3608         ndr_print_uint32(ndr, "len", r->len);
3609         ndr_print_uint32(ndr, "maxlen", r->maxlen);
3610         ndr_print_ptr(ndr, "cipher_data", r->cipher_data);
3611         ndr->depth++;
3612         if (r->cipher_data) {
3613                 ndr_print_array_uint8(ndr, "cipher_data", r->cipher_data, r->len);
3614         }
3615         ndr->depth--;
3616         ndr->depth--;
3617 }
3618
3619 static enum ndr_err_code ndr_push_netr_DELTA_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_SECRET *r)
3620 {
3621         if (ndr_flags & NDR_SCALARS) {
3622                 NDR_CHECK(ndr_push_align(ndr, 4));
3623                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3624                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->current_cipher_set_time));
3625                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3626                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_cipher_set_time));
3627                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3628                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3629                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3630                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3631                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3632                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3633                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3634                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3635                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3636                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3637         }
3638         if (ndr_flags & NDR_BUFFERS) {
3639                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3640                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3641                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3642                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3643                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3644                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3645                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3646         }
3647         return NDR_ERR_SUCCESS;
3648 }
3649
3650 static enum ndr_err_code ndr_pull_netr_DELTA_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_SECRET *r)
3651 {
3652         if (ndr_flags & NDR_SCALARS) {
3653                 NDR_CHECK(ndr_pull_align(ndr, 4));
3654                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3655                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->current_cipher_set_time));
3656                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3657                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_cipher_set_time));
3658                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3659                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3660                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3661                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3662                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3663                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3664                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3665                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3666                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3667                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3668         }
3669         if (ndr_flags & NDR_BUFFERS) {
3670                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3671                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3672                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3673                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3674                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3675                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3676                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3677         }
3678         return NDR_ERR_SUCCESS;
3679 }
3680
3681 _PUBLIC_ void ndr_print_netr_DELTA_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_SECRET *r)
3682 {
3683         ndr_print_struct(ndr, name, "netr_DELTA_SECRET");
3684         ndr->depth++;
3685         ndr_print_netr_CIPHER_VALUE(ndr, "current_cipher", &r->current_cipher);
3686         ndr_print_NTTIME(ndr, "current_cipher_set_time", r->current_cipher_set_time);
3687         ndr_print_netr_CIPHER_VALUE(ndr, "old_cipher", &r->old_cipher);
3688         ndr_print_NTTIME(ndr, "old_cipher_set_time", r->old_cipher_set_time);
3689         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3690         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3691         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3692         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3693         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3694         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3695         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3696         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3697         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3698         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3699         ndr->depth--;
3700 }
3701
3702 static enum ndr_err_code ndr_push_netr_DeltaEnum(struct ndr_push *ndr, int ndr_flags, enum netr_DeltaEnum r)
3703 {
3704         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
3705         return NDR_ERR_SUCCESS;
3706 }
3707
3708 static enum ndr_err_code ndr_pull_netr_DeltaEnum(struct ndr_pull *ndr, int ndr_flags, enum netr_DeltaEnum *r)
3709 {
3710         uint16_t v;
3711         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
3712         *r = v;
3713         return NDR_ERR_SUCCESS;
3714 }
3715
3716 _PUBLIC_ void ndr_print_netr_DeltaEnum(struct ndr_print *ndr, const char *name, enum netr_DeltaEnum r)
3717 {
3718         const char *val = NULL;
3719
3720         switch (r) {
3721                 case NETR_DELTA_DOMAIN: val = "NETR_DELTA_DOMAIN"; break;
3722                 case NETR_DELTA_GROUP: val = "NETR_DELTA_GROUP"; break;
3723                 case NETR_DELTA_DELETE_GROUP: val = "NETR_DELTA_DELETE_GROUP"; break;
3724                 case NETR_DELTA_RENAME_GROUP: val = "NETR_DELTA_RENAME_GROUP"; break;
3725                 case NETR_DELTA_USER: val = "NETR_DELTA_USER"; break;
3726                 case NETR_DELTA_DELETE_USER: val = "NETR_DELTA_DELETE_USER"; break;
3727                 case NETR_DELTA_RENAME_USER: val = "NETR_DELTA_RENAME_USER"; break;
3728                 case NETR_DELTA_GROUP_MEMBER: val = "NETR_DELTA_GROUP_MEMBER"; break;
3729                 case NETR_DELTA_ALIAS: val = "NETR_DELTA_ALIAS"; break;
3730                 case NETR_DELTA_DELETE_ALIAS: val = "NETR_DELTA_DELETE_ALIAS"; break;
3731                 case NETR_DELTA_RENAME_ALIAS: val = "NETR_DELTA_RENAME_ALIAS"; break;
3732                 case NETR_DELTA_ALIAS_MEMBER: val = "NETR_DELTA_ALIAS_MEMBER"; break;
3733                 case NETR_DELTA_POLICY: val = "NETR_DELTA_POLICY"; break;
3734                 case NETR_DELTA_TRUSTED_DOMAIN: val = "NETR_DELTA_TRUSTED_DOMAIN"; break;
3735                 case NETR_DELTA_DELETE_TRUST: val = "NETR_DELTA_DELETE_TRUST"; break;
3736                 case NETR_DELTA_ACCOUNT: val = "NETR_DELTA_ACCOUNT"; break;
3737                 case NETR_DELTA_DELETE_ACCOUNT: val = "NETR_DELTA_DELETE_ACCOUNT"; break;
3738                 case NETR_DELTA_SECRET: val = "NETR_DELTA_SECRET"; break;
3739                 case NETR_DELTA_DELETE_SECRET: val = "NETR_DELTA_DELETE_SECRET"; break;
3740                 case NETR_DELTA_DELETE_GROUP2: val = "NETR_DELTA_DELETE_GROUP2"; break;
3741                 case NETR_DELTA_DELETE_USER2: val = "NETR_DELTA_DELETE_USER2"; break;
3742                 case NETR_DELTA_MODIFY_COUNT: val = "NETR_DELTA_MODIFY_COUNT"; break;
3743         }
3744         ndr_print_enum(ndr, name, "ENUM", val, r);
3745 }
3746
3747 static enum ndr_err_code ndr_push_netr_DELTA_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_UNION *r)
3748 {
3749         if (ndr_flags & NDR_SCALARS) {
3750                 int level = ndr_push_get_switch_value(ndr, r);
3751                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
3752                 switch (level) {
3753                         case NETR_DELTA_DOMAIN: {
3754                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
3755                         break; }
3756
3757                         case NETR_DELTA_GROUP: {
3758                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group));
3759                         break; }
3760
3761                         case NETR_DELTA_DELETE_GROUP: {
3762                         break; }
3763
3764                         case NETR_DELTA_RENAME_GROUP: {
3765                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_group));
3766                         break; }
3767
3768                         case NETR_DELTA_USER: {
3769                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
3770                         break; }
3771
3772                         case NETR_DELTA_DELETE_USER: {
3773                         break; }
3774
3775                         case NETR_DELTA_RENAME_USER: {
3776                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_user));
3777                         break; }
3778
3779                         case NETR_DELTA_GROUP_MEMBER: {
3780                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_member));
3781                         break; }
3782
3783                         case NETR_DELTA_ALIAS: {
3784                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias));
3785                         break; }
3786
3787                         case NETR_DELTA_DELETE_ALIAS: {
3788                         break; }
3789
3790                         case NETR_DELTA_RENAME_ALIAS: {
3791                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_alias));
3792                         break; }
3793
3794                         case NETR_DELTA_ALIAS_MEMBER: {
3795                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias_member));
3796                         break; }
3797
3798                         case NETR_DELTA_POLICY: {
3799                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
3800                         break; }
3801
3802                         case NETR_DELTA_TRUSTED_DOMAIN: {
3803                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain));
3804                         break; }
3805
3806                         case NETR_DELTA_DELETE_TRUST: {
3807                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
3808                         break; }
3809
3810                         case NETR_DELTA_ACCOUNT: {
3811                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account));
3812                         break; }
3813
3814                         case NETR_DELTA_DELETE_ACCOUNT: {
3815                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
3816                         break; }
3817
3818                         case NETR_DELTA_SECRET: {
3819                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret));
3820                         break; }
3821
3822                         case NETR_DELTA_DELETE_SECRET: {
3823                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
3824                         break; }
3825
3826                         case NETR_DELTA_DELETE_GROUP2: {
3827                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_group));
3828                         break; }
3829
3830                         case NETR_DELTA_DELETE_USER2: {
3831                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_user));
3832                         break; }
3833
3834                         case NETR_DELTA_MODIFY_COUNT: {
3835                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->modified_count));
3836                         break; }
3837
3838                         default:
3839                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3840                 }
3841         }
3842         if (ndr_flags & NDR_BUFFERS) {
3843                 int level = ndr_push_get_switch_value(ndr, r);
3844                 switch (level) {
3845                         case NETR_DELTA_DOMAIN:
3846                                 if (r->domain) {
3847                                         NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
3848                                 }
3849                         break;
3850
3851                         case NETR_DELTA_GROUP:
3852                                 if (r->group) {
3853                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
3854                                 }
3855                         break;
3856
3857                         case NETR_DELTA_DELETE_GROUP:
3858                         break;
3859
3860                         case NETR_DELTA_RENAME_GROUP:
3861                                 if (r->rename_group) {
3862                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
3863                                 }
3864                         break;
3865
3866                         case NETR_DELTA_USER:
3867                                 if (r->user) {
3868                                         NDR_CHECK(ndr_push_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
3869                                 }
3870                         break;
3871
3872                         case NETR_DELTA_DELETE_USER:
3873                         break;
3874
3875                         case NETR_DELTA_RENAME_USER:
3876                                 if (r->rename_user) {
3877                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
3878                                 }
3879                         break;
3880
3881                         case NETR_DELTA_GROUP_MEMBER:
3882                                 if (r->group_member) {
3883                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
3884                                 }
3885                         break;
3886
3887                         case NETR_DELTA_ALIAS:
3888                                 if (r->alias) {
3889                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
3890                                 }
3891                         break;
3892
3893                         case NETR_DELTA_DELETE_ALIAS:
3894                         break;
3895
3896                         case NETR_DELTA_RENAME_ALIAS:
3897                                 if (r->rename_alias) {
3898                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
3899                                 }
3900                         break;
3901
3902                         case NETR_DELTA_ALIAS_MEMBER:
3903                                 if (r->alias_member) {
3904                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
3905                                 }
3906                         break;
3907
3908                         case NETR_DELTA_POLICY:
3909                                 if (r->policy) {
3910                                         NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
3911                                 }
3912                         break;
3913
3914                         case NETR_DELTA_TRUSTED_DOMAIN:
3915                                 if (r->trusted_domain) {
3916                                         NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
3917                                 }
3918                         break;
3919
3920                         case NETR_DELTA_DELETE_TRUST:
3921                         break;
3922
3923                         case NETR_DELTA_ACCOUNT:
3924                                 if (r->account) {
3925                                         NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
3926                                 }
3927                         break;
3928
3929                         case NETR_DELTA_DELETE_ACCOUNT:
3930                         break;
3931
3932                         case NETR_DELTA_SECRET:
3933                                 if (r->secret) {
3934                                         NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
3935                                 }
3936                         break;
3937
3938                         case NETR_DELTA_DELETE_SECRET:
3939                         break;
3940
3941                         case NETR_DELTA_DELETE_GROUP2:
3942                                 if (r->delete_group) {
3943                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
3944                                 }
3945                         break;
3946
3947                         case NETR_DELTA_DELETE_USER2:
3948                                 if (r->delete_user) {
3949                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
3950                                 }
3951                         break;
3952
3953                         case NETR_DELTA_MODIFY_COUNT:
3954                                 if (r->modified_count) {
3955                                         NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->modified_count));
3956                                 }
3957                         break;
3958
3959                         default:
3960                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3961                 }
3962         }
3963         return NDR_ERR_SUCCESS;
3964 }
3965
3966 static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_UNION *r)
3967 {
3968         int level;
3969         uint16_t _level;
3970         TALLOC_CTX *_mem_save_domain_0;
3971         TALLOC_CTX *_mem_save_group_0;
3972         TALLOC_CTX *_mem_save_rename_group_0;
3973         TALLOC_CTX *_mem_save_user_0;
3974         TALLOC_CTX *_mem_save_rename_user_0;
3975         TALLOC_CTX *_mem_save_group_member_0;
3976         TALLOC_CTX *_mem_save_alias_0;
3977         TALLOC_CTX *_mem_save_rename_alias_0;
3978         TALLOC_CTX *_mem_save_alias_member_0;
3979         TALLOC_CTX *_mem_save_policy_0;
3980         TALLOC_CTX *_mem_save_trusted_domain_0;
3981         TALLOC_CTX *_mem_save_account_0;
3982         TALLOC_CTX *_mem_save_secret_0;
3983         TALLOC_CTX *_mem_save_delete_group_0;
3984         TALLOC_CTX *_mem_save_delete_user_0;
3985         TALLOC_CTX *_mem_save_modified_count_0;
3986         level = ndr_pull_get_switch_value(ndr, r);
3987         if (ndr_flags & NDR_SCALARS) {
3988                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
3989                 if (_level != level) {
3990                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
3991                 }
3992                 switch (level) {
3993                         case NETR_DELTA_DOMAIN: {
3994                                 uint32_t _ptr_domain;
3995                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
3996                                 if (_ptr_domain) {
3997                                         NDR_PULL_ALLOC(ndr, r->domain);
3998                                 } else {
3999                                         r->domain = NULL;
4000                                 }
4001                         break; }
4002
4003                         case NETR_DELTA_GROUP: {
4004                                 uint32_t _ptr_group;
4005                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group));
4006                                 if (_ptr_group) {
4007                                         NDR_PULL_ALLOC(ndr, r->group);
4008                                 } else {
4009                                         r->group = NULL;
4010                                 }
4011                         break; }
4012
4013                         case NETR_DELTA_DELETE_GROUP: {
4014                         break; }
4015
4016                         case NETR_DELTA_RENAME_GROUP: {
4017                                 uint32_t _ptr_rename_group;
4018                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group));
4019                                 if (_ptr_rename_group) {
4020                                         NDR_PULL_ALLOC(ndr, r->rename_group);
4021                                 } else {
4022                                         r->rename_group = NULL;
4023                                 }
4024                         break; }
4025
4026                         case NETR_DELTA_USER: {
4027                                 uint32_t _ptr_user;
4028                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
4029                                 if (_ptr_user) {
4030                                         NDR_PULL_ALLOC(ndr, r->user);
4031                                 } else {
4032                                         r->user = NULL;
4033                                 }
4034                         break; }
4035
4036                         case NETR_DELTA_DELETE_USER: {
4037                         break; }
4038
4039                         case NETR_DELTA_RENAME_USER: {
4040                                 uint32_t _ptr_rename_user;
4041                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user));
4042                                 if (_ptr_rename_user) {
4043                                         NDR_PULL_ALLOC(ndr, r->rename_user);
4044                                 } else {
4045                                         r->rename_user = NULL;
4046                                 }
4047                         break; }
4048
4049                         case NETR_DELTA_GROUP_MEMBER: {
4050                                 uint32_t _ptr_group_member;
4051                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member));
4052                                 if (_ptr_group_member) {
4053                                         NDR_PULL_ALLOC(ndr, r->group_member);
4054                                 } else {
4055                                         r->group_member = NULL;
4056                                 }
4057                         break; }
4058
4059                         case NETR_DELTA_ALIAS: {
4060                                 uint32_t _ptr_alias;
4061                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias));
4062                                 if (_ptr_alias) {
4063                                         NDR_PULL_ALLOC(ndr, r->alias);
4064                                 } else {
4065                                         r->alias = NULL;
4066                                 }
4067                         break; }
4068
4069                         case NETR_DELTA_DELETE_ALIAS: {
4070                         break; }
4071
4072                         case NETR_DELTA_RENAME_ALIAS: {
4073                                 uint32_t _ptr_rename_alias;
4074                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias));
4075                                 if (_ptr_rename_alias) {
4076                                         NDR_PULL_ALLOC(ndr, r->rename_alias);
4077                                 } else {
4078                                         r->rename_alias = NULL;
4079                                 }
4080                         break; }
4081
4082                         case NETR_DELTA_ALIAS_MEMBER: {
4083                                 uint32_t _ptr_alias_member;
4084                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member));
4085                                 if (_ptr_alias_member) {
4086                                         NDR_PULL_ALLOC(ndr, r->alias_member);
4087                                 } else {
4088                                         r->alias_member = NULL;
4089                                 }
4090                         break; }
4091
4092                         case NETR_DELTA_POLICY: {
4093                                 uint32_t _ptr_policy;
4094                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
4095                                 if (_ptr_policy) {
4096                                         NDR_PULL_ALLOC(ndr, r->policy);
4097                                 } else {
4098                                         r->policy = NULL;
4099                                 }
4100                         break; }
4101
4102                         case NETR_DELTA_TRUSTED_DOMAIN: {
4103                                 uint32_t _ptr_trusted_domain;
4104                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain));
4105                                 if (_ptr_trusted_domain) {
4106                                         NDR_PULL_ALLOC(ndr, r->trusted_domain);
4107                                 } else {
4108                                         r->trusted_domain = NULL;
4109                                 }
4110                         break; }
4111
4112                         case NETR_DELTA_DELETE_TRUST: {
4113                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4114                         break; }
4115
4116                         case NETR_DELTA_ACCOUNT: {
4117                                 uint32_t _ptr_account;
4118                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account));
4119                                 if (_ptr_account) {
4120                                         NDR_PULL_ALLOC(ndr, r->account);
4121                                 } else {
4122                                         r->account = NULL;
4123                                 }
4124                         break; }
4125
4126                         case NETR_DELTA_DELETE_ACCOUNT: {
4127                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4128                         break; }
4129
4130                         case NETR_DELTA_SECRET: {
4131                                 uint32_t _ptr_secret;
4132                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret));
4133                                 if (_ptr_secret) {
4134                                         NDR_PULL_ALLOC(ndr, r->secret);
4135                                 } else {
4136                                         r->secret = NULL;
4137                                 }
4138                         break; }
4139
4140                         case NETR_DELTA_DELETE_SECRET: {
4141                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4142                         break; }
4143
4144                         case NETR_DELTA_DELETE_GROUP2: {
4145                                 uint32_t _ptr_delete_group;
4146                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group));
4147                                 if (_ptr_delete_group) {
4148                                         NDR_PULL_ALLOC(ndr, r->delete_group);
4149                                 } else {
4150                                         r->delete_group = NULL;
4151                                 }
4152                         break; }
4153
4154                         case NETR_DELTA_DELETE_USER2: {
4155                                 uint32_t _ptr_delete_user;
4156                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user));
4157                                 if (_ptr_delete_user) {
4158                                         NDR_PULL_ALLOC(ndr, r->delete_user);
4159                                 } else {
4160                                         r->delete_user = NULL;
4161                                 }
4162                         break; }
4163
4164                         case NETR_DELTA_MODIFY_COUNT: {
4165                                 uint32_t _ptr_modified_count;
4166                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count));
4167                                 if (_ptr_modified_count) {
4168                                         NDR_PULL_ALLOC(ndr, r->modified_count);
4169                                 } else {
4170                                         r->modified_count = NULL;
4171                                 }
4172                         break; }
4173
4174                         default:
4175                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4176                 }
4177         }
4178         if (ndr_flags & NDR_BUFFERS) {
4179                 switch (level) {
4180                         case NETR_DELTA_DOMAIN:
4181                                 if (r->domain) {
4182                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4183                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
4184                                         NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4185                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
4186                                 }
4187                         break;
4188
4189                         case NETR_DELTA_GROUP:
4190                                 if (r->group) {
4191                                         _mem_save_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4192                                         NDR_PULL_SET_MEM_CTX(ndr, r->group, 0);
4193                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4194                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_0, 0);
4195                                 }
4196                         break;
4197
4198                         case NETR_DELTA_DELETE_GROUP:
4199                         break;
4200
4201                         case NETR_DELTA_RENAME_GROUP:
4202                                 if (r->rename_group) {
4203                                         _mem_save_rename_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4204                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_group, 0);
4205                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4206                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_group_0, 0);
4207                                 }
4208                         break;
4209
4210                         case NETR_DELTA_USER:
4211                                 if (r->user) {
4212                                         _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4213                                         NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
4214                                         NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4215                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
4216                                 }
4217                         break;
4218
4219                         case NETR_DELTA_DELETE_USER:
4220                         break;
4221
4222                         case NETR_DELTA_RENAME_USER:
4223                                 if (r->rename_user) {
4224                                         _mem_save_rename_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4225                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_user, 0);
4226                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4227                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_user_0, 0);
4228                                 }
4229                         break;
4230
4231                         case NETR_DELTA_GROUP_MEMBER:
4232                                 if (r->group_member) {
4233                                         _mem_save_group_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4234                                         NDR_PULL_SET_MEM_CTX(ndr, r->group_member, 0);
4235                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4236                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_member_0, 0);
4237                                 }
4238                         break;
4239
4240                         case NETR_DELTA_ALIAS:
4241                                 if (r->alias) {
4242                                         _mem_save_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4243                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias, 0);
4244                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4245                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_0, 0);
4246                                 }
4247                         break;
4248
4249                         case NETR_DELTA_DELETE_ALIAS:
4250                         break;
4251
4252                         case NETR_DELTA_RENAME_ALIAS:
4253                                 if (r->rename_alias) {
4254                                         _mem_save_rename_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4255                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_alias, 0);
4256                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4257                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_alias_0, 0);
4258                                 }
4259                         break;
4260
4261                         case NETR_DELTA_ALIAS_MEMBER:
4262                                 if (r->alias_member) {
4263                                         _mem_save_alias_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4264                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias_member, 0);
4265                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4266                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_member_0, 0);
4267                                 }
4268                         break;
4269
4270                         case NETR_DELTA_POLICY:
4271                                 if (r->policy) {
4272                                         _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
4273                                         NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
4274                                         NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4275                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
4276                                 }
4277                         break;
4278
4279                         case NETR_DELTA_TRUSTED_DOMAIN:
4280                                 if (r->trusted_domain) {
4281                                         _mem_save_trusted_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4282                                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain, 0);
4283                                         NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4284                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_0, 0);
4285                                 }
4286                         break;
4287
4288                         case NETR_DELTA_DELETE_TRUST:
4289                         break;
4290
4291                         case NETR_DELTA_ACCOUNT:
4292                                 if (r->account) {
4293                                         _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
4294                                         NDR_PULL_SET_MEM_CTX(ndr, r->account, 0);
4295                                         NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4296                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0);
4297                                 }
4298                         break;
4299
4300                         case NETR_DELTA_DELETE_ACCOUNT:
4301                         break;
4302
4303                         case NETR_DELTA_SECRET:
4304                                 if (r->secret) {
4305                                         _mem_save_secret_0 = NDR_PULL_GET_MEM_CTX(ndr);
4306                                         NDR_PULL_SET_MEM_CTX(ndr, r->secret, 0);
4307                                         NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4308                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_0, 0);
4309                                 }
4310                         break;
4311
4312                         case NETR_DELTA_DELETE_SECRET:
4313                         break;
4314
4315                         case NETR_DELTA_DELETE_GROUP2:
4316                                 if (r->delete_group) {
4317                                         _mem_save_delete_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4318                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_group, 0);
4319                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4320                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_group_0, 0);
4321                                 }
4322                         break;
4323
4324                         case NETR_DELTA_DELETE_USER2:
4325                                 if (r->delete_user) {
4326                                         _mem_save_delete_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4327                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_user, 0);
4328                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4329                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_user_0, 0);
4330                                 }
4331                         break;
4332
4333                         case NETR_DELTA_MODIFY_COUNT:
4334                                 if (r->modified_count) {
4335                                         _mem_save_modified_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
4336                                         NDR_PULL_SET_MEM_CTX(ndr, r->modified_count, 0);
4337                                         NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->modified_count));
4338                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_modified_count_0, 0);
4339                                 }
4340                         break;
4341
4342                         default:
4343                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4344                 }
4345         }
4346         return NDR_ERR_SUCCESS;
4347 }
4348
4349 _PUBLIC_ void ndr_print_netr_DELTA_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_UNION *r)
4350 {
4351         int level;
4352         level = ndr_print_get_switch_value(ndr, r);
4353         ndr_print_union(ndr, name, level, "netr_DELTA_UNION");
4354         switch (level) {
4355                 case NETR_DELTA_DOMAIN:
4356                         ndr_print_ptr(ndr, "domain", r->domain);
4357                         ndr->depth++;
4358                         if (r->domain) {
4359                                 ndr_print_netr_DELTA_DOMAIN(ndr, "domain", r->domain);
4360                         }
4361                         ndr->depth--;
4362                 break;
4363
4364                 case NETR_DELTA_GROUP:
4365                         ndr_print_ptr(ndr, "group", r->group);
4366                         ndr->depth++;
4367                         if (r->group) {
4368                                 ndr_print_netr_DELTA_GROUP(ndr, "group", r->group);
4369                         }
4370                         ndr->depth--;
4371                 break;
4372
4373                 case NETR_DELTA_DELETE_GROUP:
4374                 break;
4375
4376                 case NETR_DELTA_RENAME_GROUP:
4377                         ndr_print_ptr(ndr, "rename_group", r->rename_group);
4378                         ndr->depth++;
4379                         if (r->rename_group) {
4380                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_group", r->rename_group);
4381                         }
4382                         ndr->depth--;
4383                 break;
4384
4385                 case NETR_DELTA_USER:
4386                         ndr_print_ptr(ndr, "user", r->user);
4387                         ndr->depth++;
4388                         if (r->user) {
4389                                 ndr_print_netr_DELTA_USER(ndr, "user", r->user);
4390                         }
4391                         ndr->depth--;
4392                 break;
4393
4394                 case NETR_DELTA_DELETE_USER:
4395                 break;
4396
4397                 case NETR_DELTA_RENAME_USER:
4398                         ndr_print_ptr(ndr, "rename_user", r->rename_user);
4399                         ndr->depth++;
4400                         if (r->rename_user) {
4401                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_user", r->rename_user);
4402                         }
4403                         ndr->depth--;
4404                 break;
4405
4406                 case NETR_DELTA_GROUP_MEMBER:
4407                         ndr_print_ptr(ndr, "group_member", r->group_member);
4408                         ndr->depth++;
4409                         if (r->group_member) {
4410                                 ndr_print_netr_DELTA_GROUP_MEMBER(ndr, "group_member", r->group_member);
4411                         }
4412                         ndr->depth--;
4413                 break;
4414
4415                 case NETR_DELTA_ALIAS:
4416                         ndr_print_ptr(ndr, "alias", r->alias);
4417                         ndr->depth++;
4418                         if (r->alias) {
4419                                 ndr_print_netr_DELTA_ALIAS(ndr, "alias", r->alias);
4420                         }
4421                         ndr->depth--;
4422                 break;
4423
4424                 case NETR_DELTA_DELETE_ALIAS:
4425                 break;
4426
4427                 case NETR_DELTA_RENAME_ALIAS:
4428                         ndr_print_ptr(ndr, "rename_alias", r->rename_alias);
4429                         ndr->depth++;
4430                         if (r->rename_alias) {
4431                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_alias", r->rename_alias);
4432                         }
4433                         ndr->depth--;
4434                 break;
4435
4436                 case NETR_DELTA_ALIAS_MEMBER:
4437                         ndr_print_ptr(ndr, "alias_member", r->alias_member);
4438                         ndr->depth++;
4439                         if (r->alias_member) {
4440                                 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr, "alias_member", r->alias_member);
4441                         }
4442                         ndr->depth--;
4443                 break;
4444
4445                 case NETR_DELTA_POLICY:
4446                         ndr_print_ptr(ndr, "policy", r->policy);
4447                         ndr->depth++;
4448                         if (r->policy) {
4449                                 ndr_print_netr_DELTA_POLICY(ndr, "policy", r->policy);
4450                         }
4451                         ndr->depth--;
4452                 break;
4453
4454                 case NETR_DELTA_TRUSTED_DOMAIN:
4455                         ndr_print_ptr(ndr, "trusted_domain", r->trusted_domain);
4456                         ndr->depth++;
4457                         if (r->trusted_domain) {
4458                                 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr, "trusted_domain", r->trusted_domain);
4459                         }
4460                         ndr->depth--;
4461                 break;
4462
4463                 case NETR_DELTA_DELETE_TRUST:
4464                         ndr_print_netr_DELTA_DELETE_TRUST(ndr, "delete_trust", &r->delete_trust);
4465                 break;
4466
4467                 case NETR_DELTA_ACCOUNT:
4468                         ndr_print_ptr(ndr, "account", r->account);
4469                         ndr->depth++;
4470                         if (r->account) {
4471                                 ndr_print_netr_DELTA_ACCOUNT(ndr, "account", r->account);
4472                         }
4473                         ndr->depth--;
4474                 break;
4475
4476                 case NETR_DELTA_DELETE_ACCOUNT:
4477                         ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr, "delete_account", &r->delete_account);
4478                 break;
4479
4480                 case NETR_DELTA_SECRET:
4481                         ndr_print_ptr(ndr, "secret", r->secret);
4482                         ndr->depth++;
4483                         if (r->secret) {
4484                                 ndr_print_netr_DELTA_SECRET(ndr, "secret", r->secret);
4485                         }
4486                         ndr->depth--;
4487                 break;
4488
4489                 case NETR_DELTA_DELETE_SECRET:
4490                         ndr_print_netr_DELTA_DELETE_SECRET(ndr, "delete_secret", &r->delete_secret);
4491                 break;
4492
4493                 case NETR_DELTA_DELETE_GROUP2:
4494                         ndr_print_ptr(ndr, "delete_group", r->delete_group);
4495                         ndr->depth++;
4496                         if (r->delete_group) {
4497                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_group", r->delete_group);
4498                         }
4499                         ndr->depth--;
4500                 break;
4501
4502                 case NETR_DELTA_DELETE_USER2:
4503                         ndr_print_ptr(ndr, "delete_user", r->delete_user);
4504                         ndr->depth++;
4505                         if (r->delete_user) {
4506                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_user", r->delete_user);
4507                         }
4508                         ndr->depth--;
4509                 break;
4510
4511                 case NETR_DELTA_MODIFY_COUNT:
4512                         ndr_print_ptr(ndr, "modified_count", r->modified_count);
4513                         ndr->depth++;
4514                         if (r->modified_count) {
4515                                 ndr_print_udlong(ndr, "modified_count", *r->modified_count);
4516                         }
4517                         ndr->depth--;
4518                 break;
4519
4520                 default:
4521                         ndr_print_bad_level(ndr, name, level);
4522         }
4523 }
4524
4525 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)
4526 {
4527         if (ndr_flags & NDR_SCALARS) {
4528                 int level = ndr_push_get_switch_value(ndr, r);
4529                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
4530                 switch (level) {
4531                         case NETR_DELTA_DOMAIN: {
4532                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4533                         break; }
4534
4535                         case NETR_DELTA_GROUP: {
4536                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4537                         break; }
4538
4539                         case NETR_DELTA_DELETE_GROUP: {
4540                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4541                         break; }
4542
4543                         case NETR_DELTA_RENAME_GROUP: {
4544                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4545                         break; }
4546
4547                         case NETR_DELTA_USER: {
4548                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4549                         break; }
4550
4551                         case NETR_DELTA_DELETE_USER: {
4552                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4553                         break; }
4554
4555                         case NETR_DELTA_RENAME_USER: {
4556                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4557                         break; }
4558
4559                         case NETR_DELTA_GROUP_MEMBER: {
4560                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4561                         break; }
4562
4563                         case NETR_DELTA_ALIAS: {
4564                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4565                         break; }
4566
4567                         case NETR_DELTA_DELETE_ALIAS: {
4568                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4569                         break; }
4570
4571                         case NETR_DELTA_RENAME_ALIAS: {
4572                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4573                         break; }
4574
4575                         case NETR_DELTA_ALIAS_MEMBER: {
4576                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4577                         break; }
4578
4579                         case NETR_DELTA_POLICY: {
4580                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4581                         break; }
4582
4583                         case NETR_DELTA_TRUSTED_DOMAIN: {
4584                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4585                         break; }
4586
4587                         case NETR_DELTA_DELETE_TRUST: {
4588                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4589                         break; }
4590
4591                         case NETR_DELTA_ACCOUNT: {
4592                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4593                         break; }
4594
4595                         case NETR_DELTA_DELETE_ACCOUNT: {
4596                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4597                         break; }
4598
4599                         case NETR_DELTA_SECRET: {
4600                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4601                         break; }
4602
4603                         case NETR_DELTA_DELETE_SECRET: {
4604                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4605                         break; }
4606
4607                         case NETR_DELTA_DELETE_GROUP2: {
4608                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4609                         break; }
4610
4611                         case NETR_DELTA_DELETE_USER2: {
4612                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4613                         break; }
4614
4615                         case NETR_DELTA_MODIFY_COUNT: {
4616                         break; }
4617
4618                         default:
4619                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4620                 }
4621         }
4622         if (ndr_flags & NDR_BUFFERS) {
4623                 int level = ndr_push_get_switch_value(ndr, r);
4624                 switch (level) {
4625                         case NETR_DELTA_DOMAIN:
4626                         break;
4627
4628                         case NETR_DELTA_GROUP:
4629                         break;
4630
4631                         case NETR_DELTA_DELETE_GROUP:
4632                         break;
4633
4634                         case NETR_DELTA_RENAME_GROUP:
4635                         break;
4636
4637                         case NETR_DELTA_USER:
4638                         break;
4639
4640                         case NETR_DELTA_DELETE_USER:
4641                         break;
4642
4643                         case NETR_DELTA_RENAME_USER:
4644                         break;
4645
4646                         case NETR_DELTA_GROUP_MEMBER:
4647                         break;
4648
4649                         case NETR_DELTA_ALIAS:
4650                         break;
4651
4652                         case NETR_DELTA_DELETE_ALIAS:
4653                         break;
4654
4655                         case NETR_DELTA_RENAME_ALIAS:
4656                         break;
4657
4658                         case NETR_DELTA_ALIAS_MEMBER:
4659                         break;
4660
4661                         case NETR_DELTA_POLICY:
4662                                 if (r->sid) {
4663                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4664                                 }
4665                         break;
4666
4667                         case NETR_DELTA_TRUSTED_DOMAIN:
4668                                 if (r->sid) {
4669                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4670                                 }
4671                         break;
4672
4673                         case NETR_DELTA_DELETE_TRUST:
4674                                 if (r->sid) {
4675                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4676                                 }
4677                         break;
4678
4679                         case NETR_DELTA_ACCOUNT:
4680                                 if (r->sid) {
4681                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4682                                 }
4683                         break;
4684
4685                         case NETR_DELTA_DELETE_ACCOUNT:
4686                                 if (r->sid) {
4687                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4688                                 }
4689                         break;
4690
4691                         case NETR_DELTA_SECRET:
4692                                 if (r->name) {
4693                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4694                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4695                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4696                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4697                                 }
4698                         break;
4699
4700                         case NETR_DELTA_DELETE_SECRET:
4701                                 if (r->name) {
4702                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4703                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4704                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4705                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4706                                 }
4707                         break;
4708
4709                         case NETR_DELTA_DELETE_GROUP2:
4710                         break;
4711
4712                         case NETR_DELTA_DELETE_USER2:
4713                         break;
4714
4715                         case NETR_DELTA_MODIFY_COUNT:
4716                         break;
4717
4718                         default:
4719                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4720                 }
4721         }
4722         return NDR_ERR_SUCCESS;
4723 }
4724
4725 static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_ID_UNION *r)
4726 {
4727         int level;
4728         uint16_t _level;
4729         TALLOC_CTX *_mem_save_sid_0;
4730         TALLOC_CTX *_mem_save_name_0;
4731         level = ndr_pull_get_switch_value(ndr, r);
4732         if (ndr_flags & NDR_SCALARS) {
4733                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4734                 if (_level != level) {
4735                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4736                 }
4737                 switch (level) {
4738                         case NETR_DELTA_DOMAIN: {
4739                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4740                         break; }
4741
4742                         case NETR_DELTA_GROUP: {
4743                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4744                         break; }
4745
4746                         case NETR_DELTA_DELETE_GROUP: {
4747                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4748                         break; }
4749
4750                         case NETR_DELTA_RENAME_GROUP: {
4751                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4752                         break; }
4753
4754                         case NETR_DELTA_USER: {
4755                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4756                         break; }
4757
4758                         case NETR_DELTA_DELETE_USER: {
4759                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4760                         break; }
4761
4762                         case NETR_DELTA_RENAME_USER: {
4763                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4764                         break; }
4765
4766                         case NETR_DELTA_GROUP_MEMBER: {
4767                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4768                         break; }
4769
4770                         case NETR_DELTA_ALIAS: {
4771                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4772                         break; }
4773
4774                         case NETR_DELTA_DELETE_ALIAS: {
4775                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4776                         break; }
4777
4778                         case NETR_DELTA_RENAME_ALIAS: {
4779                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4780                         break; }
4781
4782                         case NETR_DELTA_ALIAS_MEMBER: {
4783                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4784                         break; }
4785
4786                         case NETR_DELTA_POLICY: {
4787                                 uint32_t _ptr_sid;
4788                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4789                                 if (_ptr_sid) {
4790                                         NDR_PULL_ALLOC(ndr, r->sid);
4791                                 } else {
4792                                         r->sid = NULL;
4793                                 }
4794                         break; }
4795
4796                         case NETR_DELTA_TRUSTED_DOMAIN: {
4797                                 uint32_t _ptr_sid;
4798                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4799                                 if (_ptr_sid) {
4800                                         NDR_PULL_ALLOC(ndr, r->sid);
4801                                 } else {
4802                                         r->sid = NULL;
4803                                 }
4804                         break; }
4805
4806                         case NETR_DELTA_DELETE_TRUST: {
4807                                 uint32_t _ptr_sid;
4808                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4809                                 if (_ptr_sid) {
4810                                         NDR_PULL_ALLOC(ndr, r->sid);
4811                                 } else {
4812                                         r->sid = NULL;
4813                                 }
4814                         break; }
4815
4816                         case NETR_DELTA_ACCOUNT: {
4817                                 uint32_t _ptr_sid;
4818                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4819                                 if (_ptr_sid) {
4820                                         NDR_PULL_ALLOC(ndr, r->sid);
4821                                 } else {
4822                                         r->sid = NULL;
4823                                 }
4824                         break; }
4825
4826                         case NETR_DELTA_DELETE_ACCOUNT: {
4827                                 uint32_t _ptr_sid;
4828                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4829                                 if (_ptr_sid) {
4830                                         NDR_PULL_ALLOC(ndr, r->sid);
4831                                 } else {
4832                                         r->sid = NULL;
4833                                 }
4834                         break; }
4835
4836                         case NETR_DELTA_SECRET: {
4837                                 uint32_t _ptr_name;
4838                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4839                                 if (_ptr_name) {
4840                                         NDR_PULL_ALLOC(ndr, r->name);
4841                                 } else {
4842                                         r->name = NULL;
4843                                 }
4844                         break; }
4845
4846                         case NETR_DELTA_DELETE_SECRET: {
4847                                 uint32_t _ptr_name;
4848                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4849                                 if (_ptr_name) {
4850                                         NDR_PULL_ALLOC(ndr, r->name);
4851                                 } else {
4852                                         r->name = NULL;
4853                                 }
4854                         break; }
4855
4856                         case NETR_DELTA_DELETE_GROUP2: {
4857                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4858                         break; }
4859
4860                         case NETR_DELTA_DELETE_USER2: {
4861                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4862                         break; }
4863
4864                         case NETR_DELTA_MODIFY_COUNT: {
4865                         break; }
4866
4867                         default:
4868                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4869                 }
4870         }
4871         if (ndr_flags & NDR_BUFFERS) {
4872                 switch (level) {
4873                         case NETR_DELTA_DOMAIN:
4874                         break;
4875
4876                         case NETR_DELTA_GROUP:
4877                         break;
4878
4879                         case NETR_DELTA_DELETE_GROUP:
4880                         break;
4881
4882                         case NETR_DELTA_RENAME_GROUP:
4883                         break;
4884
4885                         case NETR_DELTA_USER:
4886                         break;
4887
4888                         case NETR_DELTA_DELETE_USER:
4889                         break;
4890
4891                         case NETR_DELTA_RENAME_USER:
4892                         break;
4893
4894                         case NETR_DELTA_GROUP_MEMBER:
4895                         break;
4896
4897                         case NETR_DELTA_ALIAS:
4898                         break;
4899
4900                         case NETR_DELTA_DELETE_ALIAS:
4901                         break;
4902
4903                         case NETR_DELTA_RENAME_ALIAS:
4904                         break;
4905
4906                         case NETR_DELTA_ALIAS_MEMBER:
4907                         break;
4908
4909                         case NETR_DELTA_POLICY:
4910                                 if (r->sid) {
4911                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4912                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4913                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4914                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4915                                 }
4916                         break;
4917
4918                         case NETR_DELTA_TRUSTED_DOMAIN:
4919                                 if (r->sid) {
4920                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4921                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4922                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4923                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4924                                 }
4925                         break;
4926
4927                         case NETR_DELTA_DELETE_TRUST:
4928                                 if (r->sid) {
4929                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4930                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4931                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4932                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4933                                 }
4934                         break;
4935
4936                         case NETR_DELTA_ACCOUNT:
4937                                 if (r->sid) {
4938                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4939                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4940                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4941                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4942                                 }
4943                         break;
4944
4945                         case NETR_DELTA_DELETE_ACCOUNT:
4946                                 if (r->sid) {
4947                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4948                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4949                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4950                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4951                                 }
4952                         break;
4953
4954                         case NETR_DELTA_SECRET:
4955                                 if (r->name) {
4956                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4957                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
4958                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
4959                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
4960                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
4961                                                 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));
4962                                         }
4963                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
4964                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
4965                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
4966                                 }
4967                         break;
4968
4969                         case NETR_DELTA_DELETE_SECRET:
4970                                 if (r->name) {
4971                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4972                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
4973                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
4974                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
4975                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
4976                                                 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));
4977                                         }
4978                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
4979                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
4980                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
4981                                 }
4982                         break;
4983
4984                         case NETR_DELTA_DELETE_GROUP2:
4985                         break;
4986
4987                         case NETR_DELTA_DELETE_USER2:
4988                         break;
4989
4990                         case NETR_DELTA_MODIFY_COUNT:
4991                         break;
4992
4993                         default:
4994                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4995                 }
4996         }
4997         return NDR_ERR_SUCCESS;
4998 }
4999
5000 _PUBLIC_ void ndr_print_netr_DELTA_ID_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_ID_UNION *r)
5001 {
5002         int level;
5003         level = ndr_print_get_switch_value(ndr, r);
5004         ndr_print_union(ndr, name, level, "netr_DELTA_ID_UNION");
5005         switch (level) {
5006                 case NETR_DELTA_DOMAIN:
5007                         ndr_print_uint32(ndr, "rid", r->rid);
5008                 break;
5009
5010                 case NETR_DELTA_GROUP:
5011                         ndr_print_uint32(ndr, "rid", r->rid);
5012                 break;
5013
5014                 case NETR_DELTA_DELETE_GROUP:
5015                         ndr_print_uint32(ndr, "rid", r->rid);
5016                 break;
5017
5018                 case NETR_DELTA_RENAME_GROUP:
5019                         ndr_print_uint32(ndr, "rid", r->rid);
5020                 break;
5021
5022                 case NETR_DELTA_USER:
5023                         ndr_print_uint32(ndr, "rid", r->rid);
5024                 break;
5025
5026                 case NETR_DELTA_DELETE_USER:
5027                         ndr_print_uint32(ndr, "rid", r->rid);
5028                 break;
5029
5030                 case NETR_DELTA_RENAME_USER:
5031                         ndr_print_uint32(ndr, "rid", r->rid);
5032                 break;
5033
5034                 case NETR_DELTA_GROUP_MEMBER:
5035                         ndr_print_uint32(ndr, "rid", r->rid);
5036                 break;
5037
5038                 case NETR_DELTA_ALIAS:
5039                         ndr_print_uint32(ndr, "rid", r->rid);
5040                 break;
5041
5042                 case NETR_DELTA_DELETE_ALIAS:
5043                         ndr_print_uint32(ndr, "rid", r->rid);
5044                 break;
5045
5046                 case NETR_DELTA_RENAME_ALIAS:
5047                         ndr_print_uint32(ndr, "rid", r->rid);
5048                 break;
5049
5050                 case NETR_DELTA_ALIAS_MEMBER:
5051                         ndr_print_uint32(ndr, "rid", r->rid);
5052                 break;
5053
5054                 case NETR_DELTA_POLICY:
5055                         ndr_print_ptr(ndr, "sid", r->sid);
5056                         ndr->depth++;
5057                         if (r->sid) {
5058                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5059                         }
5060                         ndr->depth--;
5061                 break;
5062
5063                 case NETR_DELTA_TRUSTED_DOMAIN:
5064                         ndr_print_ptr(ndr, "sid", r->sid);
5065                         ndr->depth++;
5066                         if (r->sid) {
5067                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5068                         }
5069                         ndr->depth--;
5070                 break;
5071
5072                 case NETR_DELTA_DELETE_TRUST:
5073                         ndr_print_ptr(ndr, "sid", r->sid);
5074                         ndr->depth++;
5075                         if (r->sid) {
5076                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5077                         }
5078                         ndr->depth--;
5079                 break;
5080
5081                 case NETR_DELTA_ACCOUNT:
5082                         ndr_print_ptr(ndr, "sid", r->sid);
5083                         ndr->depth++;
5084                         if (r->sid) {
5085                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5086                         }
5087                         ndr->depth--;
5088                 break;
5089
5090                 case NETR_DELTA_DELETE_ACCOUNT:
5091                         ndr_print_ptr(ndr, "sid", r->sid);
5092                         ndr->depth++;
5093                         if (r->sid) {
5094                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5095                         }
5096                         ndr->depth--;
5097                 break;
5098
5099                 case NETR_DELTA_SECRET:
5100                         ndr_print_ptr(ndr, "name", r->name);
5101                         ndr->depth++;
5102                         if (r->name) {
5103                                 ndr_print_string(ndr, "name", r->name);
5104                         }
5105                         ndr->depth--;
5106                 break;
5107
5108                 case NETR_DELTA_DELETE_SECRET:
5109                         ndr_print_ptr(ndr, "name", r->name);
5110                         ndr->depth++;
5111                         if (r->name) {
5112                                 ndr_print_string(ndr, "name", r->name);
5113                         }
5114                         ndr->depth--;
5115                 break;
5116
5117                 case NETR_DELTA_DELETE_GROUP2:
5118                         ndr_print_uint32(ndr, "rid", r->rid);
5119                 break;
5120
5121                 case NETR_DELTA_DELETE_USER2:
5122                         ndr_print_uint32(ndr, "rid", r->rid);
5123                 break;
5124
5125                 case NETR_DELTA_MODIFY_COUNT:
5126                 break;
5127
5128                 default:
5129                         ndr_print_bad_level(ndr, name, level);
5130         }
5131 }
5132
5133 static enum ndr_err_code ndr_push_netr_DELTA_ENUM(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM *r)
5134 {
5135         if (ndr_flags & NDR_SCALARS) {
5136                 NDR_CHECK(ndr_push_align(ndr, 4));
5137                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, r->delta_type));
5138                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5139                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5140                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_union, r->delta_type));
5141                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5142         }
5143         if (ndr_flags & NDR_BUFFERS) {
5144                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5145                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5146         }
5147         return NDR_ERR_SUCCESS;
5148 }
5149
5150 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM *r)
5151 {
5152         if (ndr_flags & NDR_SCALARS) {
5153                 NDR_CHECK(ndr_pull_align(ndr, 4));
5154                 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr, NDR_SCALARS, &r->delta_type));
5155                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5156                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5157                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_union, r->delta_type));
5158                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5159         }
5160         if (ndr_flags & NDR_BUFFERS) {
5161                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5162                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5163         }
5164         return NDR_ERR_SUCCESS;
5165 }
5166
5167 _PUBLIC_ void ndr_print_netr_DELTA_ENUM(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM *r)
5168 {
5169         ndr_print_struct(ndr, name, "netr_DELTA_ENUM");
5170         ndr->depth++;
5171         ndr_print_netr_DeltaEnum(ndr, "delta_type", r->delta_type);
5172         ndr_print_set_switch_value(ndr, &r->delta_id_union, r->delta_type);
5173         ndr_print_netr_DELTA_ID_UNION(ndr, "delta_id_union", &r->delta_id_union);
5174         ndr_print_set_switch_value(ndr, &r->delta_union, r->delta_type);
5175         ndr_print_netr_DELTA_UNION(ndr, "delta_union", &r->delta_union);
5176         ndr->depth--;
5177 }
5178
5179 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)
5180 {
5181         uint32_t cntr_delta_enum_1;
5182         if (ndr_flags & NDR_SCALARS) {
5183                 NDR_CHECK(ndr_push_align(ndr, 4));
5184                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5185                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delta_enum));
5186         }
5187         if (ndr_flags & NDR_BUFFERS) {
5188                 if (r->delta_enum) {
5189                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5190                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5191                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5192                         }
5193                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5194                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5195                         }
5196                 }
5197         }
5198         return NDR_ERR_SUCCESS;
5199 }
5200
5201 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r)
5202 {
5203         uint32_t _ptr_delta_enum;
5204         uint32_t cntr_delta_enum_1;
5205         TALLOC_CTX *_mem_save_delta_enum_0;
5206         TALLOC_CTX *_mem_save_delta_enum_1;
5207         if (ndr_flags & NDR_SCALARS) {
5208                 NDR_CHECK(ndr_pull_align(ndr, 4));
5209                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_deltas));
5210                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum));
5211                 if (_ptr_delta_enum) {
5212                         NDR_PULL_ALLOC(ndr, r->delta_enum);
5213                 } else {
5214                         r->delta_enum = NULL;
5215                 }
5216         }
5217         if (ndr_flags & NDR_BUFFERS) {
5218                 if (r->delta_enum) {
5219                         _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr);
5220                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5221                         NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum));
5222                         NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum));
5223                         _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr);
5224                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5225                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5226                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5227                         }
5228                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5229                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5230                         }
5231                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0);
5232                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_0, 0);
5233                 }
5234                 if (r->delta_enum) {
5235                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delta_enum, r->num_deltas));
5236                 }
5237         }
5238         return NDR_ERR_SUCCESS;
5239 }
5240
5241 _PUBLIC_ void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM_ARRAY *r)
5242 {
5243         uint32_t cntr_delta_enum_1;
5244         ndr_print_struct(ndr, name, "netr_DELTA_ENUM_ARRAY");
5245         ndr->depth++;
5246         ndr_print_uint32(ndr, "num_deltas", r->num_deltas);
5247         ndr_print_ptr(ndr, "delta_enum", r->delta_enum);
5248         ndr->depth++;
5249         if (r->delta_enum) {
5250                 ndr->print(ndr, "%s: ARRAY(%d)", "delta_enum", r->num_deltas);
5251                 ndr->depth++;
5252                 for (cntr_delta_enum_1=0;cntr_delta_enum_1<r->num_deltas;cntr_delta_enum_1++) {
5253                         char *idx_1=NULL;
5254                         if (asprintf(&idx_1, "[%d]", cntr_delta_enum_1) != -1) {
5255                                 ndr_print_netr_DELTA_ENUM(ndr, "delta_enum", &r->delta_enum[cntr_delta_enum_1]);
5256                                 free(idx_1);
5257                         }
5258                 }
5259                 ndr->depth--;
5260         }
5261         ndr->depth--;
5262         ndr->depth--;
5263 }
5264
5265 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)
5266 {
5267         {
5268                 uint32_t _flags_save_STRUCT = ndr->flags;
5269                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5270                 if (ndr_flags & NDR_SCALARS) {
5271                         NDR_CHECK(ndr_push_align(ndr, 4));
5272                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5273                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timecreated));
5274                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number));
5275                 }
5276                 if (ndr_flags & NDR_BUFFERS) {
5277                 }
5278                 ndr->flags = _flags_save_STRUCT;
5279         }
5280         return NDR_ERR_SUCCESS;
5281 }
5282
5283 static enum ndr_err_code ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r)
5284 {
5285         {
5286                 uint32_t _flags_save_STRUCT = ndr->flags;
5287                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5288                 if (ndr_flags & NDR_SCALARS) {
5289                         NDR_CHECK(ndr_pull_align(ndr, 4));
5290                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5291                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated));
5292                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number));
5293                 }
5294                 if (ndr_flags & NDR_BUFFERS) {
5295                 }
5296                 ndr->flags = _flags_save_STRUCT;
5297         }
5298         return NDR_ERR_SUCCESS;
5299 }
5300
5301 _PUBLIC_ void ndr_print_netr_UAS_INFO_0(struct ndr_print *ndr, const char *name, const struct netr_UAS_INFO_0 *r)
5302 {
5303         ndr_print_struct(ndr, name, "netr_UAS_INFO_0");
5304         {
5305                 uint32_t _flags_save_STRUCT = ndr->flags;
5306                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5307                 ndr->depth++;
5308                 ndr_print_array_uint8(ndr, "computer_name", r->computer_name, 16);
5309                 ndr_print_uint32(ndr, "timecreated", r->timecreated);
5310                 ndr_print_uint32(ndr, "serial_number", r->serial_number);
5311                 ndr->depth--;
5312                 ndr->flags = _flags_save_STRUCT;
5313         }
5314 }
5315
5316 static enum ndr_err_code ndr_push_netr_AccountBuffer(struct ndr_push *ndr, int ndr_flags, const struct netr_AccountBuffer *r)
5317 {
5318         if (ndr_flags & NDR_SCALARS) {
5319                 NDR_CHECK(ndr_push_align(ndr, 4));
5320                 {
5321                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5322                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5323                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
5324                         ndr->flags = _flags_save_DATA_BLOB;
5325                 }
5326         }
5327         if (ndr_flags & NDR_BUFFERS) {
5328         }
5329         return NDR_ERR_SUCCESS;
5330 }
5331
5332 static enum ndr_err_code ndr_pull_netr_AccountBuffer(struct ndr_pull *ndr, int ndr_flags, struct netr_AccountBuffer *r)
5333 {
5334         if (ndr_flags & NDR_SCALARS) {
5335                 NDR_CHECK(ndr_pull_align(ndr, 4));
5336                 {
5337                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5338                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5339                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
5340                         ndr->flags = _flags_save_DATA_BLOB;
5341                 }
5342         }
5343         if (ndr_flags & NDR_BUFFERS) {
5344         }
5345         return NDR_ERR_SUCCESS;
5346 }
5347
5348 _PUBLIC_ void ndr_print_netr_AccountBuffer(struct ndr_print *ndr, const char *name, const struct netr_AccountBuffer *r)
5349 {
5350         ndr_print_struct(ndr, name, "netr_AccountBuffer");
5351         ndr->depth++;
5352         ndr_print_DATA_BLOB(ndr, "blob", r->blob);
5353         ndr->depth--;
5354 }
5355
5356 static enum ndr_err_code ndr_push_netr_InfoFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
5357 {
5358         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5359         return NDR_ERR_SUCCESS;
5360 }
5361
5362 static enum ndr_err_code ndr_pull_netr_InfoFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
5363 {
5364         uint32_t v;
5365         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5366         *r = v;
5367         return NDR_ERR_SUCCESS;
5368 }
5369
5370 _PUBLIC_ void ndr_print_netr_InfoFlags(struct ndr_print *ndr, const char *name, uint32_t r)
5371 {
5372         ndr_print_uint32(ndr, name, r);
5373         ndr->depth++;
5374         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_NEEDED", NETLOGON_CTRL_REPL_NEEDED, r);
5375         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_IN_PROGRESS", NETLOGON_CTRL_REPL_IN_PROGRESS, r);
5376         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CTRL_REPL_FULL_SYNC", NETLOGON_CTRL_REPL_FULL_SYNC, r);
5377         ndr->depth--;
5378 }
5379
5380 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)
5381 {
5382         if (ndr_flags & NDR_SCALARS) {
5383                 NDR_CHECK(ndr_push_align(ndr, 4));
5384                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5385                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5386         }
5387         if (ndr_flags & NDR_BUFFERS) {
5388         }
5389         return NDR_ERR_SUCCESS;
5390 }
5391
5392 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_1 *r)
5393 {
5394         if (ndr_flags & NDR_SCALARS) {
5395                 NDR_CHECK(ndr_pull_align(ndr, 4));
5396                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5397                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5398         }
5399         if (ndr_flags & NDR_BUFFERS) {
5400         }
5401         return NDR_ERR_SUCCESS;
5402 }
5403
5404 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_1 *r)
5405 {
5406         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_1");
5407         ndr->depth++;
5408         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5409         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5410         ndr->depth--;
5411 }
5412
5413 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)
5414 {
5415         if (ndr_flags & NDR_SCALARS) {
5416                 NDR_CHECK(ndr_push_align(ndr, 4));
5417                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5418                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5419                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_dc_name));
5420                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->tc_connection_status));
5421         }
5422         if (ndr_flags & NDR_BUFFERS) {
5423                 if (r->trusted_dc_name) {
5424                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5425                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5426                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5427                         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));
5428                 }
5429         }
5430         return NDR_ERR_SUCCESS;
5431 }
5432
5433 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r)
5434 {
5435         uint32_t _ptr_trusted_dc_name;
5436         TALLOC_CTX *_mem_save_trusted_dc_name_0;
5437         if (ndr_flags & NDR_SCALARS) {
5438                 NDR_CHECK(ndr_pull_align(ndr, 4));
5439                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5440                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5441                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_dc_name));
5442                 if (_ptr_trusted_dc_name) {
5443                         NDR_PULL_ALLOC(ndr, r->trusted_dc_name);
5444                 } else {
5445                         r->trusted_dc_name = NULL;
5446                 }
5447                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->tc_connection_status));
5448         }
5449         if (ndr_flags & NDR_BUFFERS) {
5450                 if (r->trusted_dc_name) {
5451                         _mem_save_trusted_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5452                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0);
5453                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5454                         NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5455                         if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5456                                 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));
5457                         }
5458                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5459                         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));
5460                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0);
5461                 }
5462         }
5463         return NDR_ERR_SUCCESS;
5464 }
5465
5466 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_2 *r)
5467 {
5468         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_2");
5469         ndr->depth++;
5470         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5471         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5472         ndr_print_ptr(ndr, "trusted_dc_name", r->trusted_dc_name);
5473         ndr->depth++;
5474         if (r->trusted_dc_name) {
5475                 ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5476         }
5477         ndr->depth--;
5478         ndr_print_uint32(ndr, "tc_connection_status", r->tc_connection_status);
5479         ndr->depth--;
5480 }
5481
5482 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)
5483 {
5484         if (ndr_flags & NDR_SCALARS) {
5485                 NDR_CHECK(ndr_push_align(ndr, 4));
5486                 NDR_CHECK(ndr_push_netr_InfoFlags(ndr, NDR_SCALARS, r->flags));
5487                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_attempts));
5488                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
5489                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
5490                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
5491                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
5492                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
5493         }
5494         if (ndr_flags & NDR_BUFFERS) {
5495         }
5496         return NDR_ERR_SUCCESS;
5497 }
5498
5499 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_3 *r)
5500 {
5501         if (ndr_flags & NDR_SCALARS) {
5502                 NDR_CHECK(ndr_pull_align(ndr, 4));
5503                 NDR_CHECK(ndr_pull_netr_InfoFlags(ndr, NDR_SCALARS, &r->flags));
5504                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_attempts));
5505                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
5506                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
5507                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
5508                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
5509                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
5510         }
5511         if (ndr_flags & NDR_BUFFERS) {
5512         }
5513         return NDR_ERR_SUCCESS;
5514 }
5515
5516 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_3 *r)
5517 {
5518         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_3");
5519         ndr->depth++;
5520         ndr_print_netr_InfoFlags(ndr, "flags", r->flags);
5521         ndr_print_uint32(ndr, "logon_attempts", r->logon_attempts);
5522         ndr_print_uint32(ndr, "unknown1", r->unknown1);
5523         ndr_print_uint32(ndr, "unknown2", r->unknown2);
5524         ndr_print_uint32(ndr, "unknown3", r->unknown3);
5525         ndr_print_uint32(ndr, "unknown4", r->unknown4);
5526         ndr_print_uint32(ndr, "unknown5", r->unknown5);
5527         ndr->depth--;
5528 }
5529
5530 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)
5531 {
5532         if (ndr_flags & NDR_SCALARS) {
5533                 int level = ndr_push_get_switch_value(ndr, r);
5534                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5535                 switch (level) {
5536                         case 1: {
5537                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5538                         break; }
5539
5540                         case 2: {
5541                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5542                         break; }
5543
5544                         case 3: {
5545                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5546                         break; }
5547
5548                         default:
5549                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5550                 }
5551         }
5552         if (ndr_flags & NDR_BUFFERS) {
5553                 int level = ndr_push_get_switch_value(ndr, r);
5554                 switch (level) {
5555                         case 1:
5556                                 if (r->info1) {
5557                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5558                                 }
5559                         break;
5560
5561                         case 2:
5562                                 if (r->info2) {
5563                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5564                                 }
5565                         break;
5566
5567                         case 3:
5568                                 if (r->info3) {
5569                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5570                                 }
5571                         break;
5572
5573                         default:
5574                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5575                 }
5576         }
5577         return NDR_ERR_SUCCESS;
5578 }
5579
5580 static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_QUERY_INFORMATION *r)
5581 {
5582         int level;
5583         uint32_t _level;
5584         TALLOC_CTX *_mem_save_info1_0;
5585         TALLOC_CTX *_mem_save_info2_0;
5586         TALLOC_CTX *_mem_save_info3_0;
5587         level = ndr_pull_get_switch_value(ndr, r);
5588         if (ndr_flags & NDR_SCALARS) {
5589                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5590                 if (_level != level) {
5591                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5592                 }
5593                 switch (level) {
5594                         case 1: {
5595                                 uint32_t _ptr_info1;
5596                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5597                                 if (_ptr_info1) {
5598                                         NDR_PULL_ALLOC(ndr, r->info1);
5599                                 } else {
5600                                         r->info1 = NULL;
5601                                 }
5602                         break; }
5603
5604                         case 2: {
5605                                 uint32_t _ptr_info2;
5606                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5607                                 if (_ptr_info2) {
5608                                         NDR_PULL_ALLOC(ndr, r->info2);
5609                                 } else {
5610                                         r->info2 = NULL;
5611                                 }
5612                         break; }
5613
5614                         case 3: {
5615                                 uint32_t _ptr_info3;
5616                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5617                                 if (_ptr_info3) {
5618                                         NDR_PULL_ALLOC(ndr, r->info3);
5619                                 } else {
5620                                         r->info3 = NULL;
5621                                 }
5622                         break; }
5623
5624                         default:
5625                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5626                 }
5627         }
5628         if (ndr_flags & NDR_BUFFERS) {
5629                 switch (level) {
5630                         case 1:
5631                                 if (r->info1) {
5632                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5633                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5634                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5635                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5636                                 }
5637                         break;
5638
5639                         case 2:
5640                                 if (r->info2) {
5641                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5642                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5643                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5644                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5645                                 }
5646                         break;
5647
5648                         case 3:
5649                                 if (r->info3) {
5650                                         _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5651                                         NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5652                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5653                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5654                                 }
5655                         break;
5656
5657                         default:
5658                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5659                 }
5660         }
5661         return NDR_ERR_SUCCESS;
5662 }
5663
5664 _PUBLIC_ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_QUERY_INFORMATION *r)
5665 {
5666         int level;
5667         level = ndr_print_get_switch_value(ndr, r);
5668         ndr_print_union(ndr, name, level, "netr_CONTROL_QUERY_INFORMATION");
5669         switch (level) {
5670                 case 1:
5671                         ndr_print_ptr(ndr, "info1", r->info1);
5672                         ndr->depth++;
5673                         if (r->info1) {
5674                                 ndr_print_netr_NETLOGON_INFO_1(ndr, "info1", r->info1);
5675                         }
5676                         ndr->depth--;
5677                 break;
5678
5679                 case 2:
5680                         ndr_print_ptr(ndr, "info2", r->info2);
5681                         ndr->depth++;
5682                         if (r->info2) {
5683                                 ndr_print_netr_NETLOGON_INFO_2(ndr, "info2", r->info2);
5684                         }
5685                         ndr->depth--;
5686                 break;
5687
5688                 case 3:
5689                         ndr_print_ptr(ndr, "info3", r->info3);
5690                         ndr->depth++;
5691                         if (r->info3) {
5692                                 ndr_print_netr_NETLOGON_INFO_3(ndr, "info3", r->info3);
5693                         }
5694                         ndr->depth--;
5695                 break;
5696
5697                 default:
5698                         ndr_print_bad_level(ndr, name, level);
5699         }
5700 }
5701
5702 static enum ndr_err_code ndr_push_netr_LogonControlCode(struct ndr_push *ndr, int ndr_flags, enum netr_LogonControlCode r)
5703 {
5704         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5705         return NDR_ERR_SUCCESS;
5706 }
5707
5708 static enum ndr_err_code ndr_pull_netr_LogonControlCode(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonControlCode *r)
5709 {
5710         uint32_t v;
5711         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5712         *r = v;
5713         return NDR_ERR_SUCCESS;
5714 }
5715
5716 _PUBLIC_ void ndr_print_netr_LogonControlCode(struct ndr_print *ndr, const char *name, enum netr_LogonControlCode r)
5717 {
5718         const char *val = NULL;
5719
5720         switch (r) {
5721                 case NETLOGON_CONTROL_SYNC: val = "NETLOGON_CONTROL_SYNC"; break;
5722                 case NETLOGON_CONTROL_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break;
5723                 case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break;
5724                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
5725                 case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break;
5726         }
5727         ndr_print_enum(ndr, name, "ENUM", val, r);
5728 }
5729
5730 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)
5731 {
5732         if (ndr_flags & NDR_SCALARS) {
5733                 int level = ndr_push_get_switch_value(ndr, r);
5734                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5735                 switch (level) {
5736                         case NETLOGON_CONTROL_REDISCOVER: {
5737                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5738                         break; }
5739
5740                         case NETLOGON_CONTROL_TC_QUERY: {
5741                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5742                         break; }
5743
5744                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5745                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5746                         break; }
5747
5748                         case NETLOGON_CONTROL_SET_DBFLAG: {
5749                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level));
5750                         break; }
5751
5752                         default:
5753                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5754                 }
5755         }
5756         if (ndr_flags & NDR_BUFFERS) {
5757                 int level = ndr_push_get_switch_value(ndr, r);
5758                 switch (level) {
5759                         case NETLOGON_CONTROL_REDISCOVER:
5760                                 if (r->domain) {
5761                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5762                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5763                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5764                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5765                                 }
5766                         break;
5767
5768                         case NETLOGON_CONTROL_TC_QUERY:
5769                                 if (r->domain) {
5770                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5771                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5772                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5773                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5774                                 }
5775                         break;
5776
5777                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5778                                 if (r->domain) {
5779                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5780                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5781                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5782                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5783                                 }
5784                         break;
5785
5786                         case NETLOGON_CONTROL_SET_DBFLAG:
5787                         break;
5788
5789                         default:
5790                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5791                 }
5792         }
5793         return NDR_ERR_SUCCESS;
5794 }
5795
5796 static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r)
5797 {
5798         int level;
5799         uint32_t _level;
5800         TALLOC_CTX *_mem_save_domain_0;
5801         level = ndr_pull_get_switch_value(ndr, r);
5802         if (ndr_flags & NDR_SCALARS) {
5803                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5804                 if (_level != level) {
5805                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5806                 }
5807                 switch (level) {
5808                         case NETLOGON_CONTROL_REDISCOVER: {
5809                                 uint32_t _ptr_domain;
5810                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5811                                 if (_ptr_domain) {
5812                                         NDR_PULL_ALLOC(ndr, r->domain);
5813                                 } else {
5814                                         r->domain = NULL;
5815                                 }
5816                         break; }
5817
5818                         case NETLOGON_CONTROL_TC_QUERY: {
5819                                 uint32_t _ptr_domain;
5820                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5821                                 if (_ptr_domain) {
5822                                         NDR_PULL_ALLOC(ndr, r->domain);
5823                                 } else {
5824                                         r->domain = NULL;
5825                                 }
5826                         break; }
5827
5828                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5829                                 uint32_t _ptr_domain;
5830                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5831                                 if (_ptr_domain) {
5832                                         NDR_PULL_ALLOC(ndr, r->domain);
5833                                 } else {
5834                                         r->domain = NULL;
5835                                 }
5836                         break; }
5837
5838                         case NETLOGON_CONTROL_SET_DBFLAG: {
5839                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level));
5840                         break; }
5841
5842                         default:
5843                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5844                 }
5845         }
5846         if (ndr_flags & NDR_BUFFERS) {
5847                 switch (level) {
5848                         case NETLOGON_CONTROL_REDISCOVER:
5849                                 if (r->domain) {
5850                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5851                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5852                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5853                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5854                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5855                                                 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));
5856                                         }
5857                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5858                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5859                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5860                                 }
5861                         break;
5862
5863                         case NETLOGON_CONTROL_TC_QUERY:
5864                                 if (r->domain) {
5865                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5866                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5867                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5868                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5869                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5870                                                 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));
5871                                         }
5872                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5873                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5874                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5875                                 }
5876                         break;
5877
5878                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5879                                 if (r->domain) {
5880                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5881                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5882                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5883                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5884                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5885                                                 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));
5886                                         }
5887                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5888                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5889                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5890                                 }
5891                         break;
5892
5893                         case NETLOGON_CONTROL_SET_DBFLAG:
5894                         break;
5895
5896                         default:
5897                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5898                 }
5899         }
5900         return NDR_ERR_SUCCESS;
5901 }
5902
5903 _PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r)
5904 {
5905         int level;
5906         level = ndr_print_get_switch_value(ndr, r);
5907         ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION");
5908         switch (level) {
5909                 case NETLOGON_CONTROL_REDISCOVER:
5910                         ndr_print_ptr(ndr, "domain", r->domain);
5911                         ndr->depth++;
5912                         if (r->domain) {
5913                                 ndr_print_string(ndr, "domain", r->domain);
5914                         }
5915                         ndr->depth--;
5916                 break;
5917
5918                 case NETLOGON_CONTROL_TC_QUERY:
5919                         ndr_print_ptr(ndr, "domain", r->domain);
5920                         ndr->depth++;
5921                         if (r->domain) {
5922                                 ndr_print_string(ndr, "domain", r->domain);
5923                         }
5924                         ndr->depth--;
5925                 break;
5926
5927                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5928                         ndr_print_ptr(ndr, "domain", r->domain);
5929                         ndr->depth++;
5930                         if (r->domain) {
5931                                 ndr_print_string(ndr, "domain", r->domain);
5932                         }
5933                         ndr->depth--;
5934                 break;
5935
5936                 case NETLOGON_CONTROL_SET_DBFLAG:
5937                         ndr_print_uint32(ndr, "debug_level", r->debug_level);
5938                 break;
5939
5940                 default:
5941                         ndr_print_bad_level(ndr, name, level);
5942         }
5943 }
5944
5945 static enum ndr_err_code ndr_push_netr_NegotiateFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
5946 {
5947         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5948         return NDR_ERR_SUCCESS;
5949 }
5950
5951 static enum ndr_err_code ndr_pull_netr_NegotiateFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
5952 {
5953         uint32_t v;
5954         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5955         *r = v;
5956         return NDR_ERR_SUCCESS;
5957 }
5958
5959 _PUBLIC_ void ndr_print_netr_NegotiateFlags(struct ndr_print *ndr, const char *name, uint32_t r)
5960 {
5961         ndr_print_uint32(ndr, name, r);
5962         ndr->depth++;
5963         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ACCOUNT_LOCKOUT", NETLOGON_NEG_ACCOUNT_LOCKOUT, r);
5964         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PERSISTENT_SAMREPL", NETLOGON_NEG_PERSISTENT_SAMREPL, r);
5965         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_ARCFOUR", NETLOGON_NEG_ARCFOUR, r);
5966         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PROMOTION_COUNT", NETLOGON_NEG_PROMOTION_COUNT, r);
5967         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CHANGELOG_BDC", NETLOGON_NEG_CHANGELOG_BDC, r);
5968         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_FULL_SYNC_REPL", NETLOGON_NEG_FULL_SYNC_REPL, r);
5969         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_MULTIPLE_SIDS", NETLOGON_NEG_MULTIPLE_SIDS, r);
5970         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_REDO", NETLOGON_NEG_REDO, r);
5971         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL", NETLOGON_NEG_PASSWORD_CHANGE_REFUSAL, r);
5972         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SEND_PASSWORD_INFO_PDC", NETLOGON_NEG_SEND_PASSWORD_INFO_PDC, r);
5973         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GENERIC_PASSTHROUGH", NETLOGON_NEG_GENERIC_PASSTHROUGH, r);
5974         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CONCURRENT_RPC", NETLOGON_NEG_CONCURRENT_RPC, r);
5975         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL", NETLOGON_NEG_AVOID_ACCOUNT_DB_REPL, r);
5976         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL", NETLOGON_NEG_AVOID_SECURITYAUTH_DB_REPL, r);
5977         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_128BIT", NETLOGON_NEG_128BIT, r);
5978         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_TRANSITIVE_TRUSTS", NETLOGON_NEG_TRANSITIVE_TRUSTS, r);
5979         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_DNS_DOMAIN_TRUSTS", NETLOGON_NEG_DNS_DOMAIN_TRUSTS, r);
5980         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_PASSWORD_SET2", NETLOGON_NEG_PASSWORD_SET2, r);
5981         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_GETDOMAININFO", NETLOGON_NEG_GETDOMAININFO, r);
5982         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_CROSS_FOREST_TRUSTS", NETLOGON_NEG_CROSS_FOREST_TRUSTS, r);
5983         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION", NETLOGON_NEG_NEUTRALIZE_NT4_EMULATION, r);
5984         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_RODC_PASSTHROUGH", NETLOGON_NEG_RODC_PASSTHROUGH, r);
5985         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_AUTHENTICATED_RPC_LSASS", NETLOGON_NEG_AUTHENTICATED_RPC_LSASS, r);
5986         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NEG_SCHANNEL", NETLOGON_NEG_SCHANNEL, r);
5987         ndr->depth--;
5988 }
5989
5990 static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
5991 {
5992         if (ndr_flags & NDR_SCALARS) {
5993                 NDR_CHECK(ndr_push_align(ndr, 4));
5994                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
5995                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
5996         }
5997         if (ndr_flags & NDR_BUFFERS) {
5998                 if (r->data) {
5999                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
6000                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
6001                 }
6002         }
6003         return NDR_ERR_SUCCESS;
6004 }
6005
6006 static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
6007 {
6008         uint32_t _ptr_data;
6009         TALLOC_CTX *_mem_save_data_0;
6010         if (ndr_flags & NDR_SCALARS) {
6011                 NDR_CHECK(ndr_pull_align(ndr, 4));
6012                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
6013                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6014                 if (_ptr_data) {
6015                         NDR_PULL_ALLOC(ndr, r->data);
6016                 } else {
6017                         r->data = NULL;
6018                 }
6019         }
6020         if (ndr_flags & NDR_BUFFERS) {
6021                 if (r->data) {
6022                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6023                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6024                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6025                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6026                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
6027                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6028                 }
6029                 if (r->data) {
6030                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
6031                 }
6032         }
6033         return NDR_ERR_SUCCESS;
6034 }
6035
6036 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
6037 {
6038         ndr_print_struct(ndr, name, "netr_Blob");
6039         ndr->depth++;
6040         ndr_print_uint32(ndr, "length", r->length);
6041         ndr_print_ptr(ndr, "data", r->data);
6042         ndr->depth++;
6043         if (r->data) {
6044                 ndr_print_array_uint8(ndr, "data", r->data, r->length);
6045         }
6046         ndr->depth--;
6047         ndr->depth--;
6048 }
6049
6050 static enum ndr_err_code ndr_push_netr_DsRGetDCName_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6051 {
6052         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6053         return NDR_ERR_SUCCESS;
6054 }
6055
6056 static enum ndr_err_code ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6057 {
6058         uint32_t v;
6059         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6060         *r = v;
6061         return NDR_ERR_SUCCESS;
6062 }
6063
6064 _PUBLIC_ void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char *name, uint32_t r)
6065 {
6066         ndr_print_uint32(ndr, name, r);
6067         ndr->depth++;
6068         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY, r);
6069         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED, r);
6070         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED, r);
6071         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED, r);
6072         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED, r);
6073         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY, r);
6074         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED, r);
6075         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED, r);
6076         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED, r);
6077         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED, r);
6078         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED, r);
6079         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF, r);
6080         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED, r);
6081         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME, r);
6082         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME, r);
6083         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE, r);
6084         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED, r);
6085         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME, r);
6086         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME, r);
6087         ndr->depth--;
6088 }
6089
6090 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType r)
6091 {
6092         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6093         return NDR_ERR_SUCCESS;
6094 }
6095
6096 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType *r)
6097 {
6098         uint32_t v;
6099         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6100         *r = v;
6101         return NDR_ERR_SUCCESS;
6102 }
6103
6104 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const char *name, enum netr_DsRGetDCNameInfo_AddressType r)
6105 {
6106         const char *val = NULL;
6107
6108         switch (r) {
6109                 case DS_ADDRESS_TYPE_INET: val = "DS_ADDRESS_TYPE_INET"; break;
6110                 case DS_ADDRESS_TYPE_NETBIOS: val = "DS_ADDRESS_TYPE_NETBIOS"; break;
6111         }
6112         ndr_print_enum(ndr, name, "ENUM", val, r);
6113 }
6114
6115 static enum ndr_err_code ndr_push_netr_DsR_DcFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6116 {
6117         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6118         return NDR_ERR_SUCCESS;
6119 }
6120
6121 static enum ndr_err_code ndr_pull_netr_DsR_DcFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6122 {
6123         uint32_t v;
6124         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6125         *r = v;
6126         return NDR_ERR_SUCCESS;
6127 }
6128
6129 _PUBLIC_ void ndr_print_netr_DsR_DcFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6130 {
6131         ndr_print_uint32(ndr, name, r);
6132         ndr->depth++;
6133         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC, r);
6134         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC, r);
6135         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP, r);
6136         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS, r);
6137         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC, r);
6138         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV, r);
6139         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST, r);
6140         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE, r);
6141         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV, r);
6142         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC, r);
6143         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6, r);
6144         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6, r);
6145         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER, r);
6146         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN, r);
6147         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST, r);
6148         ndr->depth--;
6149 }
6150
6151 _PUBLIC_ enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
6152 {
6153         if (ndr_flags & NDR_SCALARS) {
6154                 NDR_CHECK(ndr_push_align(ndr, 4));
6155                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
6156                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
6157                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, r->dc_address_type));
6158                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6159                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6160                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
6161                 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr, NDR_SCALARS, r->dc_flags));
6162                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
6163                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
6164         }
6165         if (ndr_flags & NDR_BUFFERS) {
6166                 if (r->dc_unc) {
6167                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6168                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6169                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6170                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6171                 }
6172                 if (r->dc_address) {
6173                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6174                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6175                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6176                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6177                 }
6178                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6179                 if (r->domain_name) {
6180                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6181                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6182                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6183                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6184                 }
6185                 if (r->forest_name) {
6186                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6187                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6188                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6189                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6190                 }
6191                 if (r->dc_site_name) {
6192                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6193                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6194                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6195                         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));
6196                 }
6197                 if (r->client_site_name) {
6198                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6199                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6200                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6201                         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));
6202                 }
6203         }
6204         return NDR_ERR_SUCCESS;
6205 }
6206
6207 _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
6208 {
6209         uint32_t _ptr_dc_unc;
6210         TALLOC_CTX *_mem_save_dc_unc_0;
6211         uint32_t _ptr_dc_address;
6212         TALLOC_CTX *_mem_save_dc_address_0;
6213         uint32_t _ptr_domain_name;
6214         TALLOC_CTX *_mem_save_domain_name_0;
6215         uint32_t _ptr_forest_name;
6216         TALLOC_CTX *_mem_save_forest_name_0;
6217         uint32_t _ptr_dc_site_name;
6218         TALLOC_CTX *_mem_save_dc_site_name_0;
6219         uint32_t _ptr_client_site_name;
6220         TALLOC_CTX *_mem_save_client_site_name_0;
6221         if (ndr_flags & NDR_SCALARS) {
6222                 NDR_CHECK(ndr_pull_align(ndr, 4));
6223                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6224                 if (_ptr_dc_unc) {
6225                         NDR_PULL_ALLOC(ndr, r->dc_unc);
6226                 } else {
6227                         r->dc_unc = NULL;
6228                 }
6229                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6230                 if (_ptr_dc_address) {
6231                         NDR_PULL_ALLOC(ndr, r->dc_address);
6232                 } else {
6233                         r->dc_address = NULL;
6234                 }
6235                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, &r->dc_address_type));
6236                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6237                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6238                 if (_ptr_domain_name) {
6239                         NDR_PULL_ALLOC(ndr, r->domain_name);
6240                 } else {
6241                         r->domain_name = NULL;
6242                 }
6243                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
6244                 if (_ptr_forest_name) {
6245                         NDR_PULL_ALLOC(ndr, r->forest_name);
6246                 } else {
6247                         r->forest_name = NULL;
6248                 }
6249                 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr, NDR_SCALARS, &r->dc_flags));
6250                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
6251                 if (_ptr_dc_site_name) {
6252                         NDR_PULL_ALLOC(ndr, r->dc_site_name);
6253                 } else {
6254                         r->dc_site_name = NULL;
6255                 }
6256                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
6257                 if (_ptr_client_site_name) {
6258                         NDR_PULL_ALLOC(ndr, r->client_site_name);
6259                 } else {
6260                         r->client_site_name = NULL;
6261                 }
6262         }
6263         if (ndr_flags & NDR_BUFFERS) {
6264                 if (r->dc_unc) {
6265                         _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6266                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
6267                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
6268                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
6269                         if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
6270                                 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));
6271                         }
6272                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
6273                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
6274                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
6275                 }
6276                 if (r->dc_address) {
6277                         _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
6278                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
6279                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
6280                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
6281                         if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
6282                                 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));
6283                         }
6284                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
6285                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
6286                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
6287                 }
6288                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6289                 if (r->domain_name) {
6290                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6291                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6292                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6293                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6294                         if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
6295                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain_name), ndr_get_array_length(ndr, &r->domain_name));
6296                         }
6297                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
6298                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
6299                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6300                 }
6301                 if (r->forest_name) {
6302                         _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6303                         NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
6304                         NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
6305                         NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
6306                         if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
6307                                 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));
6308                         }
6309                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
6310                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
6311                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
6312                 }
6313                 if (r->dc_site_name) {
6314                         _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6315                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
6316                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
6317                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
6318                         if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
6319                                 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));
6320                         }
6321                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
6322                         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));
6323                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
6324                 }
6325                 if (r->client_site_name) {
6326                         _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6327                         NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
6328                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
6329                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
6330                         if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
6331                                 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));
6332                         }
6333                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
6334                         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));
6335                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
6336                 }
6337         }
6338         return NDR_ERR_SUCCESS;
6339 }
6340
6341 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
6342 {
6343         ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
6344         ndr->depth++;
6345         ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
6346         ndr->depth++;
6347         if (r->dc_unc) {
6348                 ndr_print_string(ndr, "dc_unc", r->dc_unc);
6349         }
6350         ndr->depth--;
6351         ndr_print_ptr(ndr, "dc_address", r->dc_address);
6352         ndr->depth++;
6353         if (r->dc_address) {
6354                 ndr_print_string(ndr, "dc_address", r->dc_address);
6355         }
6356         ndr->depth--;
6357         ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr, "dc_address_type", r->dc_address_type);
6358         ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
6359         ndr_print_ptr(ndr, "domain_name", r->domain_name);
6360         ndr->depth++;
6361         if (r->domain_name) {
6362                 ndr_print_string(ndr, "domain_name", r->domain_name);
6363         }
6364         ndr->depth--;
6365         ndr_print_ptr(ndr, "forest_name", r->forest_name);
6366         ndr->depth++;
6367         if (r->forest_name) {
6368                 ndr_print_string(ndr, "forest_name", r->forest_name);
6369         }
6370         ndr->depth--;
6371         ndr_print_netr_DsR_DcFlags(ndr, "dc_flags", r->dc_flags);
6372         ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
6373         ndr->depth++;
6374         if (r->dc_site_name) {
6375                 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
6376         }
6377         ndr->depth--;
6378         ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
6379         ndr->depth++;
6380         if (r->client_site_name) {
6381                 ndr_print_string(ndr, "client_site_name", r->client_site_name);
6382         }
6383         ndr->depth--;
6384         ndr->depth--;
6385 }
6386
6387 static enum ndr_err_code ndr_push_netr_BinaryString(struct ndr_push *ndr, int ndr_flags, const struct netr_BinaryString *r)
6388 {
6389         uint32_t cntr_data_1;
6390         {
6391                 uint32_t _flags_save_STRUCT = ndr->flags;
6392                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6393                 if (ndr_flags & NDR_SCALARS) {
6394                         NDR_CHECK(ndr_push_align(ndr, 4));
6395                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
6396                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
6397                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6398                 }
6399                 if (ndr_flags & NDR_BUFFERS) {
6400                         if (r->data) {
6401                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
6402                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6403                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
6404                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6405                                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data[cntr_data_1]));
6406                                 }
6407                         }
6408                 }
6409                 ndr->flags = _flags_save_STRUCT;
6410         }
6411         return NDR_ERR_SUCCESS;
6412 }
6413
6414 static enum ndr_err_code ndr_pull_netr_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct netr_BinaryString *r)
6415 {
6416         uint32_t _ptr_data;
6417         uint32_t cntr_data_1;
6418         TALLOC_CTX *_mem_save_data_0;
6419         TALLOC_CTX *_mem_save_data_1;
6420         {
6421                 uint32_t _flags_save_STRUCT = ndr->flags;
6422                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6423                 if (ndr_flags & NDR_SCALARS) {
6424                         NDR_CHECK(ndr_pull_align(ndr, 4));
6425                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
6426                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
6427                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6428                         if (_ptr_data) {
6429                                 NDR_PULL_ALLOC(ndr, r->data);
6430                         } else {
6431                                 r->data = NULL;
6432                         }
6433                 }
6434                 if (ndr_flags & NDR_BUFFERS) {
6435                         if (r->data) {
6436                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6437                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6438                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6439                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
6440                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
6441                                         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));
6442                                 }
6443                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6444                                 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
6445                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6446                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6447                                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
6448                                 }
6449                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
6450                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6451                         }
6452                         if (r->data) {
6453                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size / 2));
6454                         }
6455                         if (r->data) {
6456                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length / 2));
6457                         }
6458                 }
6459                 ndr->flags = _flags_save_STRUCT;
6460         }
6461         return NDR_ERR_SUCCESS;
6462 }
6463
6464 _PUBLIC_ void ndr_print_netr_BinaryString(struct ndr_print *ndr, const char *name, const struct netr_BinaryString *r)
6465 {
6466         uint32_t cntr_data_1;
6467         ndr_print_struct(ndr, name, "netr_BinaryString");
6468         {
6469                 uint32_t _flags_save_STRUCT = ndr->flags;
6470                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6471                 ndr->depth++;
6472                 ndr_print_uint16(ndr, "length", r->length);
6473                 ndr_print_uint16(ndr, "size", r->size);
6474                 ndr_print_ptr(ndr, "data", r->data);
6475                 ndr->depth++;
6476                 if (r->data) {
6477                         ndr->print(ndr, "%s: ARRAY(%d)", "data", r->length / 2);
6478                         ndr->depth++;
6479                         for (cntr_data_1=0;cntr_data_1<r->length / 2;cntr_data_1++) {
6480                                 char *idx_1=NULL;
6481                                 if (asprintf(&idx_1, "[%d]", cntr_data_1) != -1) {
6482                                         ndr_print_uint16(ndr, "data", r->data[cntr_data_1]);
6483                                         free(idx_1);
6484                                 }
6485                         }
6486                         ndr->depth--;
6487                 }
6488                 ndr->depth--;
6489                 ndr->depth--;
6490                 ndr->flags = _flags_save_STRUCT;
6491         }
6492 }
6493
6494 static enum ndr_err_code ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r)
6495 {
6496         uint32_t cntr_unknown7_0;
6497         if (ndr_flags & NDR_SCALARS) {
6498                 NDR_CHECK(ndr_push_align(ndr, 4));
6499                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6500                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain));
6501                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site));
6502                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1));
6503                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2));
6504                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3));
6505                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4));
6506                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6507                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product));
6508                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6509                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6510                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6511                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0]));
6512                 }
6513         }
6514         if (ndr_flags & NDR_BUFFERS) {
6515                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6516                 if (r->workstation_domain) {
6517                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6518                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6519                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6520                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6521                 }
6522                 if (r->workstation_site) {
6523                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6524                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6525                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6526                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6527                 }
6528                 if (r->unknown1) {
6529                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6530                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6531                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6532                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6533                 }
6534                 if (r->unknown2) {
6535                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6536                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6537                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6538                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6539                 }
6540                 if (r->unknown3) {
6541                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6542                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6543                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6544                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6545                 }
6546                 if (r->unknown4) {
6547                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6548                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6549                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6550                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6551                 }
6552                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6553                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product));
6554                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6555                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6556         }
6557         return NDR_ERR_SUCCESS;
6558 }
6559
6560 static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r)
6561 {
6562         uint32_t _ptr_workstation_domain;
6563         TALLOC_CTX *_mem_save_workstation_domain_0;
6564         uint32_t _ptr_workstation_site;
6565         TALLOC_CTX *_mem_save_workstation_site_0;
6566         uint32_t _ptr_unknown1;
6567         TALLOC_CTX *_mem_save_unknown1_0;
6568         uint32_t _ptr_unknown2;
6569         TALLOC_CTX *_mem_save_unknown2_0;
6570         uint32_t _ptr_unknown3;
6571         TALLOC_CTX *_mem_save_unknown3_0;
6572         uint32_t _ptr_unknown4;
6573         TALLOC_CTX *_mem_save_unknown4_0;
6574         uint32_t cntr_unknown7_0;
6575         if (ndr_flags & NDR_SCALARS) {
6576                 NDR_CHECK(ndr_pull_align(ndr, 4));
6577                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6578                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain));
6579                 if (_ptr_workstation_domain) {
6580                         NDR_PULL_ALLOC(ndr, r->workstation_domain);
6581                 } else {
6582                         r->workstation_domain = NULL;
6583                 }
6584                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site));
6585                 if (_ptr_workstation_site) {
6586                         NDR_PULL_ALLOC(ndr, r->workstation_site);
6587                 } else {
6588                         r->workstation_site = NULL;
6589                 }
6590                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1));
6591                 if (_ptr_unknown1) {
6592                         NDR_PULL_ALLOC(ndr, r->unknown1);
6593                 } else {
6594                         r->unknown1 = NULL;
6595                 }
6596                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2));
6597                 if (_ptr_unknown2) {
6598                         NDR_PULL_ALLOC(ndr, r->unknown2);
6599                 } else {
6600                         r->unknown2 = NULL;
6601                 }
6602                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3));
6603                 if (_ptr_unknown3) {
6604                         NDR_PULL_ALLOC(ndr, r->unknown3);
6605                 } else {
6606                         r->unknown3 = NULL;
6607                 }
6608                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
6609                 if (_ptr_unknown4) {
6610                         NDR_PULL_ALLOC(ndr, r->unknown4);
6611                 } else {
6612                         r->unknown4 = NULL;
6613                 }
6614                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6615                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product));
6616                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6617                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6618                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6619                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0]));
6620                 }
6621         }
6622         if (ndr_flags & NDR_BUFFERS) {
6623                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6624                 if (r->workstation_domain) {
6625                         _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6626                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0);
6627                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain));
6628                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain));
6629                         if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) {
6630                                 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));
6631                         }
6632                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t)));
6633                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16));
6634                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0);
6635                 }
6636                 if (r->workstation_site) {
6637                         _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
6638                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0);
6639                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site));
6640                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site));
6641                         if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) {
6642                                 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));
6643                         }
6644                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t)));
6645                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16));
6646                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0);
6647                 }
6648                 if (r->unknown1) {
6649                         _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6650                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0);
6651                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1));
6652                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1));
6653                         if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) {
6654                                 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));
6655                         }
6656                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t)));
6657                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16));
6658                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0);
6659                 }
6660                 if (r->unknown2) {
6661                         _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6662                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0);
6663                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2));
6664                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2));
6665                         if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) {
6666                                 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));
6667                         }
6668                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t)));
6669                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16));
6670                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0);
6671                 }
6672                 if (r->unknown3) {
6673                         _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6674                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0);
6675                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3));
6676                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3));
6677                         if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) {
6678                                 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));
6679                         }
6680                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t)));
6681                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16));
6682                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0);
6683                 }
6684                 if (r->unknown4) {
6685                         _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6686                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0);
6687                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4));
6688                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4));
6689                         if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) {
6690                                 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));
6691                         }
6692                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t)));
6693                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16));
6694                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0);
6695                 }
6696                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6697                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product));
6698                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6699                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6700         }
6701         return NDR_ERR_SUCCESS;
6702 }
6703
6704 _PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r)
6705 {
6706         uint32_t cntr_unknown7_0;
6707         ndr_print_struct(ndr, name, "netr_DomainQuery1");
6708         ndr->depth++;
6709         ndr_print_netr_Blob(ndr, "blob", &r->blob);
6710         ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain);
6711         ndr->depth++;
6712         if (r->workstation_domain) {
6713                 ndr_print_string(ndr, "workstation_domain", r->workstation_domain);
6714         }
6715         ndr->depth--;
6716         ndr_print_ptr(ndr, "workstation_site", r->workstation_site);
6717         ndr->depth++;
6718         if (r->workstation_site) {
6719                 ndr_print_string(ndr, "workstation_site", r->workstation_site);
6720         }
6721         ndr->depth--;
6722         ndr_print_ptr(ndr, "unknown1", r->unknown1);
6723         ndr->depth++;
6724         if (r->unknown1) {
6725                 ndr_print_string(ndr, "unknown1", r->unknown1);
6726         }
6727         ndr->depth--;
6728         ndr_print_ptr(ndr, "unknown2", r->unknown2);
6729         ndr->depth++;
6730         if (r->unknown2) {
6731                 ndr_print_string(ndr, "unknown2", r->unknown2);
6732         }
6733         ndr->depth--;
6734         ndr_print_ptr(ndr, "unknown3", r->unknown3);
6735         ndr->depth++;
6736         if (r->unknown3) {
6737                 ndr_print_string(ndr, "unknown3", r->unknown3);
6738         }
6739         ndr->depth--;
6740         ndr_print_ptr(ndr, "unknown4", r->unknown4);
6741         ndr->depth++;
6742         if (r->unknown4) {
6743                 ndr_print_string(ndr, "unknown4", r->unknown4);
6744         }
6745         ndr->depth--;
6746         ndr_print_netr_BinaryString(ndr, "blob2", &r->blob2);
6747         ndr_print_lsa_String(ndr, "product", &r->product);
6748         ndr_print_lsa_String(ndr, "unknown5", &r->unknown5);
6749         ndr_print_lsa_String(ndr, "unknown6", &r->unknown6);
6750         ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", 4);
6751         ndr->depth++;
6752         for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) {
6753                 char *idx_0=NULL;
6754                 if (asprintf(&idx_0, "[%d]", cntr_unknown7_0) != -1) {
6755                         ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]);
6756                         free(idx_0);
6757                 }
6758         }
6759         ndr->depth--;
6760         ndr->depth--;
6761 }
6762
6763 static enum ndr_err_code ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r)
6764 {
6765         if (ndr_flags & NDR_SCALARS) {
6766                 int level = ndr_push_get_switch_value(ndr, r);
6767                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6768                 switch (level) {
6769                         case 1: {
6770                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6771                         break; }
6772
6773                         case 2: {
6774                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6775                         break; }
6776
6777                         default:
6778                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6779                 }
6780         }
6781         if (ndr_flags & NDR_BUFFERS) {
6782                 int level = ndr_push_get_switch_value(ndr, r);
6783                 switch (level) {
6784                         case 1:
6785                                 if (r->query1) {
6786                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6787                                 }
6788                         break;
6789
6790                         case 2:
6791                                 if (r->query1) {
6792                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6793                                 }
6794                         break;
6795
6796                         default:
6797                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6798                 }
6799         }
6800         return NDR_ERR_SUCCESS;
6801 }
6802
6803 static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r)
6804 {
6805         int level;
6806         uint32_t _level;
6807         TALLOC_CTX *_mem_save_query1_0;
6808         level = ndr_pull_get_switch_value(ndr, r);
6809         if (ndr_flags & NDR_SCALARS) {
6810                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6811                 if (_level != level) {
6812                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6813                 }
6814                 switch (level) {
6815                         case 1: {
6816                                 uint32_t _ptr_query1;
6817                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6818                                 if (_ptr_query1) {
6819                                         NDR_PULL_ALLOC(ndr, r->query1);
6820                                 } else {
6821                                         r->query1 = NULL;
6822                                 }
6823                         break; }
6824
6825                         case 2: {
6826                                 uint32_t _ptr_query1;
6827                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6828                                 if (_ptr_query1) {
6829                                         NDR_PULL_ALLOC(ndr, r->query1);
6830                                 } else {
6831                                         r->query1 = NULL;
6832                                 }
6833                         break; }
6834
6835                         default:
6836                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6837                 }
6838         }
6839         if (ndr_flags & NDR_BUFFERS) {
6840                 switch (level) {
6841                         case 1:
6842                                 if (r->query1) {
6843                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6844                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6845                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6846                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6847                                 }
6848                         break;
6849
6850                         case 2:
6851                                 if (r->query1) {
6852                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6853                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6854                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6855                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6856                                 }
6857                         break;
6858
6859                         default:
6860                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6861                 }
6862         }
6863         return NDR_ERR_SUCCESS;
6864 }
6865
6866 _PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r)
6867 {
6868         int level;
6869         level = ndr_print_get_switch_value(ndr, r);
6870         ndr_print_union(ndr, name, level, "netr_DomainQuery");
6871         switch (level) {
6872                 case 1:
6873                         ndr_print_ptr(ndr, "query1", r->query1);
6874                         ndr->depth++;
6875                         if (r->query1) {
6876                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6877                         }
6878                         ndr->depth--;
6879                 break;
6880
6881                 case 2:
6882                         ndr_print_ptr(ndr, "query1", r->query1);
6883                         ndr->depth++;
6884                         if (r->query1) {
6885                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6886                         }
6887                         ndr->depth--;
6888                 break;
6889
6890                 default:
6891                         ndr_print_bad_level(ndr, name, level);
6892         }
6893 }
6894
6895 static enum ndr_err_code ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r)
6896 {
6897         uint32_t cntr_unknown1_0;
6898         uint32_t cntr_unknown_0;
6899         if (ndr_flags & NDR_SCALARS) {
6900                 NDR_CHECK(ndr_push_align(ndr, 4));
6901                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6902                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6903                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
6904                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
6905                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
6906                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6907                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6908                 }
6909                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6910                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6911                 }
6912         }
6913         if (ndr_flags & NDR_BUFFERS) {
6914                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6915                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6916                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6917                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
6918                 if (r->sid) {
6919                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6920                 }
6921                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6922                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6923                 }
6924         }
6925         return NDR_ERR_SUCCESS;
6926 }
6927
6928 static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r)
6929 {
6930         uint32_t _ptr_sid;
6931         TALLOC_CTX *_mem_save_sid_0;
6932         uint32_t cntr_unknown1_0;
6933         uint32_t cntr_unknown_0;
6934         if (ndr_flags & NDR_SCALARS) {
6935                 NDR_CHECK(ndr_pull_align(ndr, 4));
6936                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6937                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6938                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
6939                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
6940                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
6941                 if (_ptr_sid) {
6942                         NDR_PULL_ALLOC(ndr, r->sid);
6943                 } else {
6944                         r->sid = NULL;
6945                 }
6946                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6947                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6948                 }
6949                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6950                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
6951                 }
6952         }
6953         if (ndr_flags & NDR_BUFFERS) {
6954                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6955                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6956                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6957                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
6958                 if (r->sid) {
6959                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6960                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
6961                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6962                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
6963                 }
6964                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6965                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6966                 }
6967         }
6968         return NDR_ERR_SUCCESS;
6969 }
6970
6971 _PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r)
6972 {
6973         uint32_t cntr_unknown1_0;
6974         uint32_t cntr_unknown_0;
6975         ndr_print_struct(ndr, name, "netr_DomainTrustInfo");
6976         ndr->depth++;
6977         ndr_print_lsa_String(ndr, "domainname", &r->domainname);
6978         ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname);
6979         ndr_print_lsa_String(ndr, "forest", &r->forest);
6980         ndr_print_GUID(ndr, "guid", &r->guid);
6981         ndr_print_ptr(ndr, "sid", r->sid);
6982         ndr->depth++;
6983         if (r->sid) {
6984                 ndr_print_dom_sid2(ndr, "sid", r->sid);
6985         }
6986         ndr->depth--;
6987         ndr->print(ndr, "%s: ARRAY(%d)", "unknown1", 4);
6988         ndr->depth++;
6989         for (cntr_unknown1_0=0;cntr_unknown1_0<4;cntr_unknown1_0++) {
6990                 char *idx_0=NULL;
6991                 if (asprintf(&idx_0, "[%d]", cntr_unknown1_0) != -1) {
6992                         ndr_print_netr_BinaryString(ndr, "unknown1", &r->unknown1[cntr_unknown1_0]);
6993                         free(idx_0);
6994                 }
6995         }
6996         ndr->depth--;
6997         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 4);
6998         ndr->depth++;
6999         for (cntr_unknown_0=0;cntr_unknown_0<4;cntr_unknown_0++) {
7000                 char *idx_0=NULL;
7001                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
7002                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
7003                         free(idx_0);
7004                 }
7005         }
7006         ndr->depth--;
7007         ndr->depth--;
7008 }
7009
7010 static enum ndr_err_code ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r)
7011 {
7012         uint32_t cntr_trusts_1;
7013         uint32_t cntr_unknown_0;
7014         if (ndr_flags & NDR_SCALARS) {
7015                 NDR_CHECK(ndr_push_align(ndr, 4));
7016                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7017                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
7018                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts));
7019                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
7020                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
7021                 }
7022         }
7023         if (ndr_flags & NDR_BUFFERS) {
7024                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7025                 if (r->trusts) {
7026                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
7027                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7028                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7029                         }
7030                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7031                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7032                         }
7033                 }
7034         }
7035         return NDR_ERR_SUCCESS;
7036 }
7037
7038 static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r)
7039 {
7040         uint32_t _ptr_trusts;
7041         uint32_t cntr_trusts_1;
7042         TALLOC_CTX *_mem_save_trusts_0;
7043         TALLOC_CTX *_mem_save_trusts_1;
7044         uint32_t cntr_unknown_0;
7045         if (ndr_flags & NDR_SCALARS) {
7046                 NDR_CHECK(ndr_pull_align(ndr, 4));
7047                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7048                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts));
7049                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts));
7050                 if (_ptr_trusts) {
7051                         NDR_PULL_ALLOC(ndr, r->trusts);
7052                 } else {
7053                         r->trusts = NULL;
7054                 }
7055                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
7056                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
7057                 }
7058         }
7059         if (ndr_flags & NDR_BUFFERS) {
7060                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7061                 if (r->trusts) {
7062                         _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
7063                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7064                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts));
7065                         NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts));
7066                         _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
7067                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7068                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7069                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7070                         }
7071                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7072                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7073                         }
7074                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
7075                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0);
7076                 }
7077                 if (r->trusts) {
7078                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts));
7079                 }
7080         }
7081         return NDR_ERR_SUCCESS;
7082 }
7083
7084 _PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r)
7085 {
7086         uint32_t cntr_trusts_1;
7087         uint32_t cntr_unknown_0;
7088         ndr_print_struct(ndr, name, "netr_DomainInfo1");
7089         ndr->depth++;
7090         ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo);
7091         ndr_print_uint32(ndr, "num_trusts", r->num_trusts);
7092         ndr_print_ptr(ndr, "trusts", r->trusts);
7093         ndr->depth++;
7094         if (r->trusts) {
7095                 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", r->num_trusts);
7096                 ndr->depth++;
7097                 for (cntr_trusts_1=0;cntr_trusts_1<r->num_trusts;cntr_trusts_1++) {
7098                         char *idx_1=NULL;
7099                         if (asprintf(&idx_1, "[%d]", cntr_trusts_1) != -1) {
7100                                 ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]);
7101                                 free(idx_1);
7102                         }
7103                 }
7104                 ndr->depth--;
7105         }
7106         ndr->depth--;
7107         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 14);
7108         ndr->depth++;
7109         for (cntr_unknown_0=0;cntr_unknown_0<14;cntr_unknown_0++) {
7110                 char *idx_0=NULL;
7111                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
7112                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
7113                         free(idx_0);
7114                 }
7115         }
7116         ndr->depth--;
7117         ndr->depth--;
7118 }
7119
7120 static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
7121 {
7122         if (ndr_flags & NDR_SCALARS) {
7123                 int level = ndr_push_get_switch_value(ndr, r);
7124                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7125                 switch (level) {
7126                         case 1: {
7127                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7128                         break; }
7129
7130                         case 2: {
7131                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7132                         break; }
7133
7134                         default:
7135                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7136                 }
7137         }
7138         if (ndr_flags & NDR_BUFFERS) {
7139                 int level = ndr_push_get_switch_value(ndr, r);
7140                 switch (level) {
7141                         case 1:
7142                                 if (r->info1) {
7143                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7144                                 }
7145                         break;
7146
7147                         case 2:
7148                                 if (r->info1) {
7149                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7150                                 }
7151                         break;
7152
7153                         default:
7154                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7155                 }
7156         }
7157         return NDR_ERR_SUCCESS;
7158 }
7159
7160 static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
7161 {
7162         int level;
7163         uint32_t _level;
7164         TALLOC_CTX *_mem_save_info1_0;
7165         level = ndr_pull_get_switch_value(ndr, r);
7166         if (ndr_flags & NDR_SCALARS) {
7167                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7168                 if (_level != level) {
7169                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7170                 }
7171                 switch (level) {
7172                         case 1: {
7173                                 uint32_t _ptr_info1;
7174                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7175                                 if (_ptr_info1) {
7176                                         NDR_PULL_ALLOC(ndr, r->info1);
7177                                 } else {
7178                                         r->info1 = NULL;
7179                                 }
7180                         break; }
7181
7182                         case 2: {
7183                                 uint32_t _ptr_info1;
7184                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7185                                 if (_ptr_info1) {
7186                                         NDR_PULL_ALLOC(ndr, r->info1);
7187                                 } else {
7188                                         r->info1 = NULL;
7189                                 }
7190                         break; }
7191
7192                         default:
7193                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7194                 }
7195         }
7196         if (ndr_flags & NDR_BUFFERS) {
7197                 switch (level) {
7198                         case 1:
7199                                 if (r->info1) {
7200                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7201                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7202                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7203                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7204                                 }
7205                         break;
7206
7207                         case 2:
7208                                 if (r->info1) {
7209                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7210                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7211                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7212                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7213                                 }
7214                         break;
7215
7216                         default:
7217                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7218                 }
7219         }
7220         return NDR_ERR_SUCCESS;
7221 }
7222
7223 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
7224 {
7225         int level;
7226         level = ndr_print_get_switch_value(ndr, r);
7227         ndr_print_union(ndr, name, level, "netr_DomainInfo");
7228         switch (level) {
7229                 case 1:
7230                         ndr_print_ptr(ndr, "info1", r->info1);
7231                         ndr->depth++;
7232                         if (r->info1) {
7233                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7234                         }
7235                         ndr->depth--;
7236                 break;
7237
7238                 case 2:
7239                         ndr_print_ptr(ndr, "info1", r->info1);
7240                         ndr->depth++;
7241                         if (r->info1) {
7242                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7243                         }
7244                         ndr->depth--;
7245                 break;
7246
7247                 default:
7248                         ndr_print_bad_level(ndr, name, level);
7249         }
7250 }
7251
7252 static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
7253 {
7254         {
7255                 uint32_t _flags_save_STRUCT = ndr->flags;
7256                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7257                 if (ndr_flags & NDR_SCALARS) {
7258                         NDR_CHECK(ndr_push_align(ndr, 4));
7259                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7260                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
7261                 }
7262                 if (ndr_flags & NDR_BUFFERS) {
7263                 }
7264                 ndr->flags = _flags_save_STRUCT;
7265         }
7266         return NDR_ERR_SUCCESS;
7267 }
7268
7269 static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
7270 {
7271         {
7272                 uint32_t _flags_save_STRUCT = ndr->flags;
7273                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7274                 if (ndr_flags & NDR_SCALARS) {
7275                         NDR_CHECK(ndr_pull_align(ndr, 4));
7276                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7277                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7278                 }
7279                 if (ndr_flags & NDR_BUFFERS) {
7280                 }
7281                 ndr->flags = _flags_save_STRUCT;
7282         }
7283         return NDR_ERR_SUCCESS;
7284 }
7285
7286 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
7287 {
7288         ndr_print_struct(ndr, name, "netr_CryptPassword");
7289         {
7290                 uint32_t _flags_save_STRUCT = ndr->flags;
7291                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7292                 ndr->depth++;
7293                 ndr_print_array_uint8(ndr, "data", r->data, 512);
7294                 ndr_print_uint32(ndr, "length", r->length);
7295                 ndr->depth--;
7296                 ndr->flags = _flags_save_STRUCT;
7297         }
7298 }
7299
7300 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesWCtr *r)
7301 {
7302         uint32_t cntr_sitename_1;
7303         if (ndr_flags & NDR_SCALARS) {
7304                 NDR_CHECK(ndr_push_align(ndr, 4));
7305                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7306                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7307         }
7308         if (ndr_flags & NDR_BUFFERS) {
7309                 if (r->sitename) {
7310                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7311                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7312                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7313                         }
7314                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7315                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7316                         }
7317                 }
7318         }
7319         return NDR_ERR_SUCCESS;
7320 }
7321
7322 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r)
7323 {
7324         uint32_t _ptr_sitename;
7325         uint32_t cntr_sitename_1;
7326         TALLOC_CTX *_mem_save_sitename_0;
7327         TALLOC_CTX *_mem_save_sitename_1;
7328         if (ndr_flags & NDR_SCALARS) {
7329                 NDR_CHECK(ndr_pull_align(ndr, 4));
7330                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7331                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7332                 if (_ptr_sitename) {
7333                         NDR_PULL_ALLOC(ndr, r->sitename);
7334                 } else {
7335                         r->sitename = NULL;
7336                 }
7337         }
7338         if (ndr_flags & NDR_BUFFERS) {
7339                 if (r->sitename) {
7340                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7341                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7342                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7343                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7344                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7345                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7346                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7347                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7348                         }
7349                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7350                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7351                         }
7352                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7353                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7354                 }
7355                 if (r->sitename) {
7356                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7357                 }
7358         }
7359         return NDR_ERR_SUCCESS;
7360 }
7361
7362 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r)
7363 {
7364         uint32_t cntr_sitename_1;
7365         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesWCtr");
7366         ndr->depth++;
7367         ndr_print_uint32(ndr, "count", r->count);
7368         ndr_print_ptr(ndr, "sitename", r->sitename);
7369         ndr->depth++;
7370         if (r->sitename) {
7371                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", r->count);
7372                 ndr->depth++;
7373                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7374                         char *idx_1=NULL;
7375                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
7376                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
7377                                 free(idx_1);
7378                         }
7379                 }
7380                 ndr->depth--;
7381         }
7382         ndr->depth--;
7383         ndr->depth--;
7384 }
7385
7386 static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddress *r)
7387 {
7388         if (ndr_flags & NDR_SCALARS) {
7389                 NDR_CHECK(ndr_push_align(ndr, 4));
7390                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
7391                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7392         }
7393         if (ndr_flags & NDR_BUFFERS) {
7394                 if (r->buffer) {
7395                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7396                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->size));
7397                 }
7398         }
7399         return NDR_ERR_SUCCESS;
7400 }
7401
7402 static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r)
7403 {
7404         uint32_t _ptr_buffer;
7405         TALLOC_CTX *_mem_save_buffer_0;
7406         if (ndr_flags & NDR_SCALARS) {
7407                 NDR_CHECK(ndr_pull_align(ndr, 4));
7408                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
7409                 if (_ptr_buffer) {
7410                         NDR_PULL_ALLOC(ndr, r->buffer);
7411                 } else {
7412                         r->buffer = NULL;
7413                 }
7414                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7415         }
7416         if (ndr_flags & NDR_BUFFERS) {
7417                 if (r->buffer) {
7418                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
7419                         NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
7420                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
7421                         NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
7422                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
7423                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
7424                 }
7425                 if (r->buffer) {
7426                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->size));
7427                 }
7428         }
7429         return NDR_ERR_SUCCESS;
7430 }
7431
7432 _PUBLIC_ void ndr_print_netr_DsRAddress(struct ndr_print *ndr, const char *name, const struct netr_DsRAddress *r)
7433 {
7434         ndr_print_struct(ndr, name, "netr_DsRAddress");
7435         ndr->depth++;
7436         ndr_print_ptr(ndr, "buffer", r->buffer);
7437         ndr->depth++;
7438         if (r->buffer) {
7439                 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->size);
7440         }
7441         ndr->depth--;
7442         ndr_print_uint32(ndr, "size", r->size);
7443         ndr->depth--;
7444 }
7445
7446 static enum ndr_err_code ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7447 {
7448         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7449         return NDR_ERR_SUCCESS;
7450 }
7451
7452 static enum ndr_err_code ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7453 {
7454         uint32_t v;
7455         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7456         *r = v;
7457         return NDR_ERR_SUCCESS;
7458 }
7459
7460 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7461 {
7462         ndr_print_uint32(ndr, name, r);
7463         ndr->depth++;
7464         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
7465         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
7466         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
7467         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
7468         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
7469         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
7470         ndr->depth--;
7471 }
7472
7473 static enum ndr_err_code ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
7474 {
7475         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7476         return NDR_ERR_SUCCESS;
7477 }
7478
7479 static enum ndr_err_code ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
7480 {
7481         uint32_t v;
7482         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7483         *r = v;
7484         return NDR_ERR_SUCCESS;
7485 }
7486
7487 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
7488 {
7489         const char *val = NULL;
7490
7491         switch (r) {
7492                 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
7493                 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
7494                 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
7495                 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
7496         }
7497         ndr_print_enum(ndr, name, "ENUM", val, r);
7498 }
7499
7500 static enum ndr_err_code ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7501 {
7502         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7503         return NDR_ERR_SUCCESS;
7504 }
7505
7506 static enum ndr_err_code ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7507 {
7508         uint32_t v;
7509         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7510         *r = v;
7511         return NDR_ERR_SUCCESS;
7512 }
7513
7514 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
7515 {
7516         ndr_print_uint32(ndr, name, r);
7517         ndr->depth++;
7518         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
7519         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
7520         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
7521         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
7522         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
7523         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
7524         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
7525         ndr->depth--;
7526 }
7527
7528 static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
7529 {
7530         if (ndr_flags & NDR_SCALARS) {
7531                 NDR_CHECK(ndr_push_align(ndr, 4));
7532                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7533                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7534                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
7535                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7536                 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
7537                 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
7538                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
7539                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
7540         }
7541         if (ndr_flags & NDR_BUFFERS) {
7542                 if (r->netbios_name) {
7543                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7544                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7545                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7546                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7547                 }
7548                 if (r->dns_name) {
7549                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7550                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7551                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7552                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7553                 }
7554                 if (r->sid) {
7555                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7556                 }
7557                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
7558         }
7559         return NDR_ERR_SUCCESS;
7560 }
7561
7562 static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
7563 {
7564         uint32_t _ptr_netbios_name;
7565         TALLOC_CTX *_mem_save_netbios_name_0;
7566         uint32_t _ptr_dns_name;
7567         TALLOC_CTX *_mem_save_dns_name_0;
7568         uint32_t _ptr_sid;
7569         TALLOC_CTX *_mem_save_sid_0;
7570         if (ndr_flags & NDR_SCALARS) {
7571                 NDR_CHECK(ndr_pull_align(ndr, 4));
7572                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7573                 if (_ptr_netbios_name) {
7574                         NDR_PULL_ALLOC(ndr, r->netbios_name);
7575                 } else {
7576                         r->netbios_name = NULL;
7577                 }
7578                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7579                 if (_ptr_dns_name) {
7580                         NDR_PULL_ALLOC(ndr, r->dns_name);
7581                 } else {
7582                         r->dns_name = NULL;
7583                 }
7584                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
7585                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7586                 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
7587                 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
7588                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
7589                 if (_ptr_sid) {
7590                         NDR_PULL_ALLOC(ndr, r->sid);
7591                 } else {
7592                         r->sid = NULL;
7593                 }
7594                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
7595         }
7596         if (ndr_flags & NDR_BUFFERS) {
7597                 if (r->netbios_name) {
7598                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7599                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7600                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7601                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7602                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
7603                                 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));
7604                         }
7605                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
7606                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
7607                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7608                 }
7609                 if (r->dns_name) {
7610                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7611                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7612                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7613                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7614                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
7615                                 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));
7616                         }
7617                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
7618                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
7619                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7620                 }
7621                 if (r->sid) {
7622                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7623                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
7624                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7625                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
7626                 }
7627                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
7628         }
7629         return NDR_ERR_SUCCESS;
7630 }
7631
7632 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
7633 {
7634         ndr_print_struct(ndr, name, "netr_DomainTrust");
7635         ndr->depth++;
7636         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7637         ndr->depth++;
7638         if (r->netbios_name) {
7639                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7640         }
7641         ndr->depth--;
7642         ndr_print_ptr(ndr, "dns_name", r->dns_name);
7643         ndr->depth++;
7644         if (r->dns_name) {
7645                 ndr_print_string(ndr, "dns_name", r->dns_name);
7646         }
7647         ndr->depth--;
7648         ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
7649         ndr_print_uint32(ndr, "parent_index", r->parent_index);
7650         ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
7651         ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
7652         ndr_print_ptr(ndr, "sid", r->sid);
7653         ndr->depth++;
7654         if (r->sid) {
7655                 ndr_print_dom_sid2(ndr, "sid", r->sid);
7656         }
7657         ndr->depth--;
7658         ndr_print_GUID(ndr, "guid", &r->guid);
7659         ndr->depth--;
7660 }
7661
7662 static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustList *r)
7663 {
7664         uint32_t cntr_array_1;
7665         if (ndr_flags & NDR_SCALARS) {
7666                 NDR_CHECK(ndr_push_align(ndr, 4));
7667                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7668                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7669         }
7670         if (ndr_flags & NDR_BUFFERS) {
7671                 if (r->array) {
7672                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7673                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7674                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7675                         }
7676                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7677                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7678                         }
7679                 }
7680         }
7681         return NDR_ERR_SUCCESS;
7682 }
7683
7684 static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r)
7685 {
7686         uint32_t _ptr_array;
7687         uint32_t cntr_array_1;
7688         TALLOC_CTX *_mem_save_array_0;
7689         TALLOC_CTX *_mem_save_array_1;
7690         if (ndr_flags & NDR_SCALARS) {
7691                 NDR_CHECK(ndr_pull_align(ndr, 4));
7692                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7693                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7694                 if (_ptr_array) {
7695                         NDR_PULL_ALLOC(ndr, r->array);
7696                 } else {
7697                         r->array = NULL;
7698                 }
7699         }
7700         if (ndr_flags & NDR_BUFFERS) {
7701                 if (r->array) {
7702                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7703                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7704                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7705                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
7706                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7707                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7708                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7709                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7710                         }
7711                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7712                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7713                         }
7714                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7715                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7716                 }
7717                 if (r->array) {
7718                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7719                 }
7720         }
7721         return NDR_ERR_SUCCESS;
7722 }
7723
7724 _PUBLIC_ void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r)
7725 {
7726         uint32_t cntr_array_1;
7727         ndr_print_struct(ndr, name, "netr_DomainTrustList");
7728         ndr->depth++;
7729         ndr_print_uint32(ndr, "count", r->count);
7730         ndr_print_ptr(ndr, "array", r->array);
7731         ndr->depth++;
7732         if (r->array) {
7733                 ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
7734                 ndr->depth++;
7735                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7736                         char *idx_1=NULL;
7737                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
7738                                 ndr_print_netr_DomainTrust(ndr, "array", &r->array[cntr_array_1]);
7739                                 free(idx_1);
7740                         }
7741                 }
7742                 ndr->depth--;
7743         }
7744         ndr->depth--;
7745         ndr->depth--;
7746 }
7747
7748 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesExWCtr *r)
7749 {
7750         uint32_t cntr_sitename_1;
7751         uint32_t cntr_subnetname_1;
7752         if (ndr_flags & NDR_SCALARS) {
7753                 NDR_CHECK(ndr_push_align(ndr, 4));
7754                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7755                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7756                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->subnetname));
7757         }
7758         if (ndr_flags & NDR_BUFFERS) {
7759                 if (r->sitename) {
7760                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7761                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7762                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7763                         }
7764                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7765                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7766                         }
7767                 }
7768                 if (r->subnetname) {
7769                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7770                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7771                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7772                         }
7773                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7774                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7775                         }
7776                 }
7777         }
7778         return NDR_ERR_SUCCESS;
7779 }
7780
7781 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r)
7782 {
7783         uint32_t _ptr_sitename;
7784         uint32_t cntr_sitename_1;
7785         TALLOC_CTX *_mem_save_sitename_0;
7786         TALLOC_CTX *_mem_save_sitename_1;
7787         uint32_t _ptr_subnetname;
7788         uint32_t cntr_subnetname_1;
7789         TALLOC_CTX *_mem_save_subnetname_0;
7790         TALLOC_CTX *_mem_save_subnetname_1;
7791         if (ndr_flags & NDR_SCALARS) {
7792                 NDR_CHECK(ndr_pull_align(ndr, 4));
7793                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7794                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7795                 if (_ptr_sitename) {
7796                         NDR_PULL_ALLOC(ndr, r->sitename);
7797                 } else {
7798                         r->sitename = NULL;
7799                 }
7800                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_subnetname));
7801                 if (_ptr_subnetname) {
7802                         NDR_PULL_ALLOC(ndr, r->subnetname);
7803                 } else {
7804                         r->subnetname = NULL;
7805                 }
7806         }
7807         if (ndr_flags & NDR_BUFFERS) {
7808                 if (r->sitename) {
7809                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7810                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7811                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7812                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7813                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7814                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7815                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7816                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7817                         }
7818                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7819                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7820                         }
7821                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7822                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7823                 }
7824                 if (r->subnetname) {
7825                         _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7826                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7827                         NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname));
7828                         NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname));
7829                         _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr);
7830                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7831                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7832                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7833                         }
7834                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7835                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7836                         }
7837                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0);
7838                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_0, 0);
7839                 }
7840                 if (r->sitename) {
7841                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7842                 }
7843                 if (r->subnetname) {
7844                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->subnetname, r->count));
7845                 }
7846         }
7847         return NDR_ERR_SUCCESS;
7848 }
7849
7850 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r)
7851 {
7852         uint32_t cntr_sitename_1;
7853         uint32_t cntr_subnetname_1;
7854         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExWCtr");
7855         ndr->depth++;
7856         ndr_print_uint32(ndr, "count", r->count);
7857         ndr_print_ptr(ndr, "sitename", r->sitename);
7858         ndr->depth++;
7859         if (r->sitename) {
7860                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", r->count);
7861                 ndr->depth++;
7862                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7863                         char *idx_1=NULL;
7864                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
7865                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
7866                                 free(idx_1);
7867                         }
7868                 }
7869                 ndr->depth--;
7870         }
7871         ndr->depth--;
7872         ndr_print_ptr(ndr, "subnetname", r->subnetname);
7873         ndr->depth++;
7874         if (r->subnetname) {
7875                 ndr->print(ndr, "%s: ARRAY(%d)", "subnetname", r->count);
7876                 ndr->depth++;
7877                 for (cntr_subnetname_1=0;cntr_subnetname_1<r->count;cntr_subnetname_1++) {
7878                         char *idx_1=NULL;
7879                         if (asprintf(&idx_1, "[%d]", cntr_subnetname_1) != -1) {
7880                                 ndr_print_lsa_String(ndr, "subnetname", &r->subnetname[cntr_subnetname_1]);
7881                                 free(idx_1);
7882                         }
7883                 }
7884                 ndr->depth--;
7885         }
7886         ndr->depth--;
7887         ndr->depth--;
7888 }
7889
7890 static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags, const struct DcSitesCtr *r)
7891 {
7892         uint32_t cntr_sites_1;
7893         if (ndr_flags & NDR_SCALARS) {
7894                 NDR_CHECK(ndr_push_align(ndr, 4));
7895                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7896                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sites));
7897         }
7898         if (ndr_flags & NDR_BUFFERS) {
7899                 if (r->sites) {
7900                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7901                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7902                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7903                         }
7904                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7905                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7906                         }
7907                 }
7908         }
7909         return NDR_ERR_SUCCESS;
7910 }
7911
7912 static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r)
7913 {
7914         uint32_t _ptr_sites;
7915         uint32_t cntr_sites_1;
7916         TALLOC_CTX *_mem_save_sites_0;
7917         TALLOC_CTX *_mem_save_sites_1;
7918         if (ndr_flags & NDR_SCALARS) {
7919                 NDR_CHECK(ndr_pull_align(ndr, 4));
7920                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sites));
7921                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sites));
7922                 if (_ptr_sites) {
7923                         NDR_PULL_ALLOC(ndr, r->sites);
7924                 } else {
7925                         r->sites = NULL;
7926                 }
7927         }
7928         if (ndr_flags & NDR_BUFFERS) {
7929                 if (r->sites) {
7930                         _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr);
7931                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7932                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sites));
7933                         NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites));
7934                         _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr);
7935                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7936                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7937                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7938                         }
7939                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7940                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7941                         }
7942                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0);
7943                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_0, 0);
7944                 }
7945                 if (r->sites) {
7946                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sites, r->num_sites));
7947                 }
7948         }
7949         return NDR_ERR_SUCCESS;
7950 }
7951
7952 _PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r)
7953 {
7954         uint32_t cntr_sites_1;
7955         ndr_print_struct(ndr, name, "DcSitesCtr");
7956         ndr->depth++;
7957         ndr_print_uint32(ndr, "num_sites", r->num_sites);
7958         ndr_print_ptr(ndr, "sites", r->sites);
7959         ndr->depth++;
7960         if (r->sites) {
7961                 ndr->print(ndr, "%s: ARRAY(%d)", "sites", r->num_sites);
7962                 ndr->depth++;
7963                 for (cntr_sites_1=0;cntr_sites_1<r->num_sites;cntr_sites_1++) {
7964                         char *idx_1=NULL;
7965                         if (asprintf(&idx_1, "[%d]", cntr_sites_1) != -1) {
7966                                 ndr_print_lsa_String(ndr, "sites", &r->sites[cntr_sites_1]);
7967                                 free(idx_1);
7968                         }
7969                 }
7970                 ndr->depth--;
7971         }
7972         ndr->depth--;
7973         ndr->depth--;
7974 }
7975
7976 static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
7977 {
7978         if (flags & NDR_IN) {
7979                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
7980                 if (r->in.server_name) {
7981                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7982                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7983                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7984                         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));
7985                 }
7986                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7987                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7988                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7989                 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));
7990                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7991                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7992                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7993                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7994         }
7995         if (flags & NDR_OUT) {
7996                 if (r->out.info == NULL) {
7997                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7998                 }
7999                 NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
8000                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8001         }
8002         return NDR_ERR_SUCCESS;
8003 }
8004
8005 static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
8006 {
8007         uint32_t _ptr_server_name;
8008         TALLOC_CTX *_mem_save_server_name_0;
8009         TALLOC_CTX *_mem_save_info_0;
8010         if (flags & NDR_IN) {
8011                 ZERO_STRUCT(r->out);
8012
8013                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8014                 if (_ptr_server_name) {
8015                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8016                 } else {
8017                         r->in.server_name = NULL;
8018                 }
8019                 if (r->in.server_name) {
8020                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8021                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8022                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8023                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8024                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8025                                 return 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));
8026                         }
8027                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8028                         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));
8029                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8030                 }
8031                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8032                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8033                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8034                         return 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));
8035                 }
8036                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8037                 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));
8038                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8039                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8040                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8041                         return 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));
8042                 }
8043                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8044                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8045                 NDR_PULL_ALLOC(ndr, r->out.info);
8046                 ZERO_STRUCTP(r->out.info);
8047         }
8048         if (flags & NDR_OUT) {
8049                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8050                         NDR_PULL_ALLOC(ndr, r->out.info);
8051                 }
8052                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8053                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8054                 NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
8055                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8056                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8057         }
8058         return NDR_ERR_SUCCESS;
8059 }
8060
8061 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
8062 {
8063         ndr_print_struct(ndr, name, "netr_LogonUasLogon");
8064         ndr->depth++;
8065         if (flags & NDR_SET_VALUES) {
8066                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8067         }
8068         if (flags & NDR_IN) {
8069                 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
8070                 ndr->depth++;
8071                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8072                 ndr->depth++;
8073                 if (r->in.server_name) {
8074                         ndr_print_string(ndr, "server_name", r->in.server_name);
8075                 }
8076                 ndr->depth--;
8077                 ndr_print_string(ndr, "account_name", r->in.account_name);
8078                 ndr_print_string(ndr, "workstation", r->in.workstation);
8079                 ndr->depth--;
8080         }
8081         if (flags & NDR_OUT) {
8082                 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
8083                 ndr->depth++;
8084                 ndr_print_ptr(ndr, "info", r->out.info);
8085                 ndr->depth++;
8086                 ndr_print_netr_UasInfo(ndr, "info", r->out.info);
8087                 ndr->depth--;
8088                 ndr_print_WERROR(ndr, "result", r->out.result);
8089                 ndr->depth--;
8090         }
8091         ndr->depth--;
8092 }
8093
8094 static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
8095 {
8096         if (flags & NDR_IN) {
8097                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8098                 if (r->in.server_name) {
8099                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8100                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8101                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8102                         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));
8103                 }
8104                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8105                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8106                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8107                 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));
8108                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8109                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8110                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8111                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8112         }
8113         if (flags & NDR_OUT) {
8114                 if (r->out.info == NULL) {
8115                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8116                 }
8117                 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8118                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8119         }
8120         return NDR_ERR_SUCCESS;
8121 }
8122
8123 static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
8124 {
8125         uint32_t _ptr_server_name;
8126         TALLOC_CTX *_mem_save_server_name_0;
8127         TALLOC_CTX *_mem_save_info_0;
8128         if (flags & NDR_IN) {
8129                 ZERO_STRUCT(r->out);
8130
8131                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8132                 if (_ptr_server_name) {
8133                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8134                 } else {
8135                         r->in.server_name = NULL;
8136                 }
8137                 if (r->in.server_name) {
8138                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8139                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8140                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8141                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8142                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8143                                 return 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));
8144                         }
8145                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8146                         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));
8147                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8148                 }
8149                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8150                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8151                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8152                         return 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));
8153                 }
8154                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8155                 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));
8156                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8157                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8158                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8159                         return 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));
8160                 }
8161                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8162                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8163                 NDR_PULL_ALLOC(ndr, r->out.info);
8164                 ZERO_STRUCTP(r->out.info);
8165         }
8166         if (flags & NDR_OUT) {
8167                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8168                         NDR_PULL_ALLOC(ndr, r->out.info);
8169                 }
8170                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8171                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8172                 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8173                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8174                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8175         }
8176         return NDR_ERR_SUCCESS;
8177 }
8178
8179 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
8180 {
8181         ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
8182         ndr->depth++;
8183         if (flags & NDR_SET_VALUES) {
8184                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8185         }
8186         if (flags & NDR_IN) {
8187                 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
8188                 ndr->depth++;
8189                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8190                 ndr->depth++;
8191                 if (r->in.server_name) {
8192                         ndr_print_string(ndr, "server_name", r->in.server_name);
8193                 }
8194                 ndr->depth--;
8195                 ndr_print_string(ndr, "account_name", r->in.account_name);
8196                 ndr_print_string(ndr, "workstation", r->in.workstation);
8197                 ndr->depth--;
8198         }
8199         if (flags & NDR_OUT) {
8200                 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
8201                 ndr->depth++;
8202                 ndr_print_ptr(ndr, "info", r->out.info);
8203                 ndr->depth++;
8204                 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
8205                 ndr->depth--;
8206                 ndr_print_WERROR(ndr, "result", r->out.result);
8207                 ndr->depth--;
8208         }
8209         ndr->depth--;
8210 }
8211
8212 static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
8213 {
8214         if (flags & NDR_IN) {
8215                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8216                 if (r->in.server_name) {
8217                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8218                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8219                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8220                         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));
8221                 }
8222                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8223                 if (r->in.computer_name) {
8224                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8225                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8226                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8227                         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));
8228                 }
8229                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8230                 if (r->in.credential) {
8231                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8232                 }
8233                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8234                 if (r->in.return_authenticator) {
8235                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8236                 }
8237                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
8238                 if (r->in.logon == NULL) {
8239                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8240                 }
8241                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
8242                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
8243                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
8244         }
8245         if (flags & NDR_OUT) {
8246                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8247                 if (r->out.return_authenticator) {
8248                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8249                 }
8250                 if (r->out.validation == NULL) {
8251                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8252                 }
8253                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8254                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8255                 if (r->out.authoritative == NULL) {
8256                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8257                 }
8258                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
8259                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8260         }
8261         return NDR_ERR_SUCCESS;
8262 }
8263
8264 static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
8265 {
8266         uint32_t _ptr_server_name;
8267         uint32_t _ptr_computer_name;
8268         uint32_t _ptr_credential;
8269         uint32_t _ptr_return_authenticator;
8270         TALLOC_CTX *_mem_save_server_name_0;
8271         TALLOC_CTX *_mem_save_computer_name_0;
8272         TALLOC_CTX *_mem_save_credential_0;
8273         TALLOC_CTX *_mem_save_return_authenticator_0;
8274         TALLOC_CTX *_mem_save_logon_0;
8275         TALLOC_CTX *_mem_save_validation_0;
8276         TALLOC_CTX *_mem_save_authoritative_0;
8277         if (flags & NDR_IN) {
8278                 ZERO_STRUCT(r->out);
8279
8280                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8281                 if (_ptr_server_name) {
8282                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8283                 } else {
8284                         r->in.server_name = NULL;
8285                 }
8286                 if (r->in.server_name) {
8287                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8288                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8289                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8290                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8291                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8292                                 return 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));
8293                         }
8294                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8295                         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));
8296                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8297                 }
8298                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8299                 if (_ptr_computer_name) {
8300                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8301                 } else {
8302                         r->in.computer_name = NULL;
8303                 }
8304                 if (r->in.computer_name) {
8305                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8306                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8307                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8308                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8309                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8310                                 return 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));
8311                         }
8312                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8313                         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));
8314                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8315                 }
8316                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8317                 if (_ptr_credential) {
8318                         NDR_PULL_ALLOC(ndr, r->in.credential);
8319                 } else {
8320                         r->in.credential = NULL;
8321                 }
8322                 if (r->in.credential) {
8323                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8324                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8325                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8326                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8327                 }
8328                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8329                 if (_ptr_return_authenticator) {
8330                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8331                 } else {
8332                         r->in.return_authenticator = NULL;
8333                 }
8334                 if (r->in.return_authenticator) {
8335                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8336                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8337                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8338                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8339                 }
8340                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
8341                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8342                         NDR_PULL_ALLOC(ndr, r->in.logon);
8343                 }
8344                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
8345                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
8346                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
8347                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
8348                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
8349                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
8350                 NDR_PULL_ALLOC(ndr, r->out.validation);
8351                 ZERO_STRUCTP(r->out.validation);
8352                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
8353                 ZERO_STRUCTP(r->out.authoritative);
8354         }
8355         if (flags & NDR_OUT) {
8356                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8357                 if (_ptr_return_authenticator) {
8358                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8359                 } else {
8360                         r->out.return_authenticator = NULL;
8361                 }
8362                 if (r->out.return_authenticator) {
8363                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8364                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8365                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8366                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8367                 }
8368                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8369                         NDR_PULL_ALLOC(ndr, r->out.validation);
8370                 }
8371                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
8372                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
8373                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8374                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8375                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
8376                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8377                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
8378                 }
8379                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
8380                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
8381                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
8382                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
8383                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8384         }
8385         return NDR_ERR_SUCCESS;
8386 }
8387
8388 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
8389 {
8390         ndr_print_struct(ndr, name, "netr_LogonSamLogon");
8391         ndr->depth++;
8392         if (flags & NDR_SET_VALUES) {
8393                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8394         }
8395         if (flags & NDR_IN) {
8396                 ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
8397                 ndr->depth++;
8398                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8399                 ndr->depth++;
8400                 if (r->in.server_name) {
8401                         ndr_print_string(ndr, "server_name", r->in.server_name);
8402                 }
8403                 ndr->depth--;
8404                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8405                 ndr->depth++;
8406                 if (r->in.computer_name) {
8407                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8408                 }
8409                 ndr->depth--;
8410                 ndr_print_ptr(ndr, "credential", r->in.credential);
8411                 ndr->depth++;
8412                 if (r->in.credential) {
8413                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8414                 }
8415                 ndr->depth--;
8416                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8417                 ndr->depth++;
8418                 if (r->in.return_authenticator) {
8419                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8420                 }
8421                 ndr->depth--;
8422                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
8423                 ndr_print_ptr(ndr, "logon", r->in.logon);
8424                 ndr->depth++;
8425                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
8426                 ndr_print_netr_LogonInfo(ndr, "logon", r->in.logon);
8427                 ndr->depth--;
8428                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
8429                 ndr->depth--;
8430         }
8431         if (flags & NDR_OUT) {
8432                 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
8433                 ndr->depth++;
8434                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8435                 ndr->depth++;
8436                 if (r->out.return_authenticator) {
8437                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8438                 }
8439                 ndr->depth--;
8440                 ndr_print_ptr(ndr, "validation", r->out.validation);
8441                 ndr->depth++;
8442                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
8443                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
8444                 ndr->depth--;
8445                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
8446                 ndr->depth++;
8447                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
8448                 ndr->depth--;
8449                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8450                 ndr->depth--;
8451         }
8452         ndr->depth--;
8453 }
8454
8455 static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
8456 {
8457         if (flags & NDR_IN) {
8458                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8459                 if (r->in.server_name) {
8460                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8461                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8462                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8463                         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));
8464                 }
8465                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8466                 if (r->in.computer_name) {
8467                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8468                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8469                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8470                         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));
8471                 }
8472                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8473                 if (r->in.credential) {
8474                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8475                 }
8476                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8477                 if (r->in.return_authenticator) {
8478                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8479                 }
8480                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
8481                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8482                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8483         }
8484         if (flags & NDR_OUT) {
8485                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8486                 if (r->out.return_authenticator) {
8487                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8488                 }
8489                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8490         }
8491         return NDR_ERR_SUCCESS;
8492 }
8493
8494 static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
8495 {
8496         uint32_t _ptr_server_name;
8497         uint32_t _ptr_computer_name;
8498         uint32_t _ptr_credential;
8499         uint32_t _ptr_return_authenticator;
8500         TALLOC_CTX *_mem_save_server_name_0;
8501         TALLOC_CTX *_mem_save_computer_name_0;
8502         TALLOC_CTX *_mem_save_credential_0;
8503         TALLOC_CTX *_mem_save_return_authenticator_0;
8504         if (flags & NDR_IN) {
8505                 ZERO_STRUCT(r->out);
8506
8507                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8508                 if (_ptr_server_name) {
8509                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8510                 } else {
8511                         r->in.server_name = NULL;
8512                 }
8513                 if (r->in.server_name) {
8514                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8515                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8516                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8517                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8518                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8519                                 return 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));
8520                         }
8521                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8522                         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));
8523                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8524                 }
8525                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8526                 if (_ptr_computer_name) {
8527                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8528                 } else {
8529                         r->in.computer_name = NULL;
8530                 }
8531                 if (r->in.computer_name) {
8532                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8533                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8534                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8535                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8536                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8537                                 return 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));
8538                         }
8539                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8540                         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));
8541                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8542                 }
8543                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8544                 if (_ptr_credential) {
8545                         NDR_PULL_ALLOC(ndr, r->in.credential);
8546                 } else {
8547                         r->in.credential = NULL;
8548                 }
8549                 if (r->in.credential) {
8550                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8551                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8552                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8553                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8554                 }
8555                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8556                 if (_ptr_return_authenticator) {
8557                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8558                 } else {
8559                         r->in.return_authenticator = NULL;
8560                 }
8561                 if (r->in.return_authenticator) {
8562                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8563                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8564                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8565                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8566                 }
8567                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
8568                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8569                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8570         }
8571         if (flags & NDR_OUT) {
8572                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8573                 if (_ptr_return_authenticator) {
8574                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8575                 } else {
8576                         r->out.return_authenticator = NULL;
8577                 }
8578                 if (r->out.return_authenticator) {
8579                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8580                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8581                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8582                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8583                 }
8584                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8585         }
8586         return NDR_ERR_SUCCESS;
8587 }
8588
8589 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
8590 {
8591         ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
8592         ndr->depth++;
8593         if (flags & NDR_SET_VALUES) {
8594                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8595         }
8596         if (flags & NDR_IN) {
8597                 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
8598                 ndr->depth++;
8599                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8600                 ndr->depth++;
8601                 if (r->in.server_name) {
8602                         ndr_print_string(ndr, "server_name", r->in.server_name);
8603                 }
8604                 ndr->depth--;
8605                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8606                 ndr->depth++;
8607                 if (r->in.computer_name) {
8608                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8609                 }
8610                 ndr->depth--;
8611                 ndr_print_ptr(ndr, "credential", r->in.credential);
8612                 ndr->depth++;
8613                 if (r->in.credential) {
8614                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8615                 }
8616                 ndr->depth--;
8617                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8618                 ndr->depth++;
8619                 if (r->in.return_authenticator) {
8620                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8621                 }
8622                 ndr->depth--;
8623                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
8624                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
8625                 ndr_print_netr_LogonInfo(ndr, "logon", &r->in.logon);
8626                 ndr->depth--;
8627         }
8628         if (flags & NDR_OUT) {
8629                 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
8630                 ndr->depth++;
8631                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8632                 ndr->depth++;
8633                 if (r->out.return_authenticator) {
8634                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8635                 }
8636                 ndr->depth--;
8637                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8638                 ndr->depth--;
8639         }
8640         ndr->depth--;
8641 }
8642
8643 static enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
8644 {
8645         if (flags & NDR_IN) {
8646                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8647                 if (r->in.server_name) {
8648                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8649                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8650                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8651                         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));
8652                 }
8653                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8654                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8655                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8656                 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));
8657                 if (r->in.credentials == NULL) {
8658                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8659                 }
8660                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8661         }
8662         if (flags & NDR_OUT) {
8663                 if (r->out.return_credentials == NULL) {
8664                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8665                 }
8666                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8667                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8668         }
8669         return NDR_ERR_SUCCESS;
8670 }
8671
8672 static enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
8673 {
8674         uint32_t _ptr_server_name;
8675         TALLOC_CTX *_mem_save_server_name_0;
8676         TALLOC_CTX *_mem_save_credentials_0;
8677         TALLOC_CTX *_mem_save_return_credentials_0;
8678         if (flags & NDR_IN) {
8679                 ZERO_STRUCT(r->out);
8680
8681                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8682                 if (_ptr_server_name) {
8683                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8684                 } else {
8685                         r->in.server_name = NULL;
8686                 }
8687                 if (r->in.server_name) {
8688                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8689                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8690                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8691                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8692                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8693                                 return 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));
8694                         }
8695                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8696                         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));
8697                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8698                 }
8699                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8700                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8701                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8702                         return 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));
8703                 }
8704                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8705                 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));
8706                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8707                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8708                 }
8709                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8710                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8711                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8712                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8713                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8714                 ZERO_STRUCTP(r->out.return_credentials);
8715         }
8716         if (flags & NDR_OUT) {
8717                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8718                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8719                 }
8720                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8721                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
8722                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8723                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8724                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8725         }
8726         return NDR_ERR_SUCCESS;
8727 }
8728
8729 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
8730 {
8731         ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
8732         ndr->depth++;
8733         if (flags & NDR_SET_VALUES) {
8734                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8735         }
8736         if (flags & NDR_IN) {
8737                 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
8738                 ndr->depth++;
8739                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8740                 ndr->depth++;
8741                 if (r->in.server_name) {
8742                         ndr_print_string(ndr, "server_name", r->in.server_name);
8743                 }
8744                 ndr->depth--;
8745                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8746                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8747                 ndr->depth++;
8748                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8749                 ndr->depth--;
8750                 ndr->depth--;
8751         }
8752         if (flags & NDR_OUT) {
8753                 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
8754                 ndr->depth++;
8755                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
8756                 ndr->depth++;
8757                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
8758                 ndr->depth--;
8759                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8760                 ndr->depth--;
8761         }
8762         ndr->depth--;
8763 }
8764
8765 static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
8766 {
8767         if (flags & NDR_IN) {
8768                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8769                 if (r->in.server_name) {
8770                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8771                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8772                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8773                         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));
8774                 }
8775                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8776                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8777                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8778                 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));
8779                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8780                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8781                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8782                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8783                 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));
8784                 if (r->in.credentials == NULL) {
8785                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8786                 }
8787                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8788         }
8789         if (flags & NDR_OUT) {
8790                 if (r->out.return_credentials == NULL) {
8791                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8792                 }
8793                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8794                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8795         }
8796         return NDR_ERR_SUCCESS;
8797 }
8798
8799 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
8800 {
8801         uint32_t _ptr_server_name;
8802         TALLOC_CTX *_mem_save_server_name_0;
8803         TALLOC_CTX *_mem_save_credentials_0;
8804         TALLOC_CTX *_mem_save_return_credentials_0;
8805         if (flags & NDR_IN) {
8806                 ZERO_STRUCT(r->out);
8807
8808                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8809                 if (_ptr_server_name) {
8810                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8811                 } else {
8812                         r->in.server_name = NULL;
8813                 }
8814                 if (r->in.server_name) {
8815                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8816                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8817                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8818                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8819                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_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.server_name), ndr_get_array_length(ndr, &r->in.server_name));
8821                         }
8822                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8823                         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));
8824                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8825                 }
8826                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8827                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8828                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8829                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
8830                 }
8831                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8832                 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));
8833                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8834                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8835                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8836                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8837                         return 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));
8838                 }
8839                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8840                 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));
8841                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8842                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8843                 }
8844                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8845                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8846                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8847                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8848                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8849                 ZERO_STRUCTP(r->out.return_credentials);
8850         }
8851         if (flags & NDR_OUT) {
8852                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8853                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8854                 }
8855                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8856                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
8857                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8858                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8859                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8860         }
8861         return NDR_ERR_SUCCESS;
8862 }
8863
8864 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
8865 {
8866         ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
8867         ndr->depth++;
8868         if (flags & NDR_SET_VALUES) {
8869                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8870         }
8871         if (flags & NDR_IN) {
8872                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
8873                 ndr->depth++;
8874                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8875                 ndr->depth++;
8876                 if (r->in.server_name) {
8877                         ndr_print_string(ndr, "server_name", r->in.server_name);
8878                 }
8879                 ndr->depth--;
8880                 ndr_print_string(ndr, "account_name", r->in.account_name);
8881                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8882                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8883                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8884                 ndr->depth++;
8885                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8886                 ndr->depth--;
8887                 ndr->depth--;
8888         }
8889         if (flags & NDR_OUT) {
8890                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
8891                 ndr->depth++;
8892                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
8893                 ndr->depth++;
8894                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
8895                 ndr->depth--;
8896                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8897                 ndr->depth--;
8898         }
8899         ndr->depth--;
8900 }
8901
8902 static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
8903 {
8904         if (flags & NDR_IN) {
8905                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8906                 if (r->in.server_name) {
8907                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8908                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8909                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8910                         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));
8911                 }
8912                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8913                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8914                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8915                 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));
8916                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8917                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8918                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8919                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8920                 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));
8921                 if (r->in.credential == NULL) {
8922                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8923                 }
8924                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8925                 if (r->in.new_password == NULL) {
8926                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8927                 }
8928                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_password));
8929         }
8930         if (flags & NDR_OUT) {
8931                 if (r->out.return_authenticator == NULL) {
8932                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8933                 }
8934                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8935                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8936         }
8937         return NDR_ERR_SUCCESS;
8938 }
8939
8940 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
8941 {
8942         uint32_t _ptr_server_name;
8943         TALLOC_CTX *_mem_save_server_name_0;
8944         TALLOC_CTX *_mem_save_credential_0;
8945         TALLOC_CTX *_mem_save_return_authenticator_0;
8946         TALLOC_CTX *_mem_save_new_password_0;
8947         if (flags & NDR_IN) {
8948                 ZERO_STRUCT(r->out);
8949
8950                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8951                 if (_ptr_server_name) {
8952                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8953                 } else {
8954                         r->in.server_name = NULL;
8955                 }
8956                 if (r->in.server_name) {
8957                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8958                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8959                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8960                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8961                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8962                                 return 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));
8963                         }
8964                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8965                         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));
8966                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8967                 }
8968                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8969                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8970                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8971                         return 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));
8972                 }
8973                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8974                 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));
8975                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8976                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8977                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8978                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8979                         return 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));
8980                 }
8981                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8982                 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));
8983                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8984                         NDR_PULL_ALLOC(ndr, r->in.credential);
8985                 }
8986                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8987                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
8988                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8989                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
8990                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8991                         NDR_PULL_ALLOC(ndr, r->in.new_password);
8992                 }
8993                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
8994                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
8995                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_password));
8996                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
8997                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8998                 ZERO_STRUCTP(r->out.return_authenticator);
8999         }
9000         if (flags & NDR_OUT) {
9001                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9002                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9003                 }
9004                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9005                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9006                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9007                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9008                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9009         }
9010         return NDR_ERR_SUCCESS;
9011 }
9012
9013 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
9014 {
9015         ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
9016         ndr->depth++;
9017         if (flags & NDR_SET_VALUES) {
9018                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9019         }
9020         if (flags & NDR_IN) {
9021                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
9022                 ndr->depth++;
9023                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
9024                 ndr->depth++;
9025                 if (r->in.server_name) {
9026                         ndr_print_string(ndr, "server_name", r->in.server_name);
9027                 }
9028                 ndr->depth--;
9029                 ndr_print_string(ndr, "account_name", r->in.account_name);
9030                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
9031                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
9032                 ndr_print_ptr(ndr, "credential", r->in.credential);
9033                 ndr->depth++;
9034                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9035                 ndr->depth--;
9036                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
9037                 ndr->depth++;
9038                 ndr_print_samr_Password(ndr, "new_password", r->in.new_password);
9039                 ndr->depth--;
9040                 ndr->depth--;
9041         }
9042         if (flags & NDR_OUT) {
9043                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
9044                 ndr->depth++;
9045                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9046                 ndr->depth++;
9047                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9048                 ndr->depth--;
9049                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9050                 ndr->depth--;
9051         }
9052         ndr->depth--;
9053 }
9054
9055 static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
9056 {
9057         if (flags & NDR_IN) {
9058                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9059                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9060                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9061                 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));
9062                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9063                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9064                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9065                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9066                 if (r->in.credential == NULL) {
9067                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9068                 }
9069                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9070                 if (r->in.return_authenticator == NULL) {
9071                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9072                 }
9073                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9074                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9075                 if (r->in.sequence_num == NULL) {
9076                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9077                 }
9078                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
9079                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9080         }
9081         if (flags & NDR_OUT) {
9082                 if (r->out.return_authenticator == NULL) {
9083                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9084                 }
9085                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9086                 if (r->out.sequence_num == NULL) {
9087                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9088                 }
9089                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
9090                 if (r->out.delta_enum_array == NULL) {
9091                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9092                 }
9093                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
9094                 if (*r->out.delta_enum_array) {
9095                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9096                 }
9097                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9098         }
9099         return NDR_ERR_SUCCESS;
9100 }
9101
9102 static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
9103 {
9104         uint32_t _ptr_delta_enum_array;
9105         TALLOC_CTX *_mem_save_credential_0;
9106         TALLOC_CTX *_mem_save_return_authenticator_0;
9107         TALLOC_CTX *_mem_save_sequence_num_0;
9108         TALLOC_CTX *_mem_save_delta_enum_array_0;
9109         TALLOC_CTX *_mem_save_delta_enum_array_1;
9110         if (flags & NDR_IN) {
9111                 ZERO_STRUCT(r->out);
9112
9113                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9114                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9115                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9116                         return 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));
9117                 }
9118                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9119                 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));
9120                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9121                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9122                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9123                         return 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));
9124                 }
9125                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9126                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9127                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9128                         NDR_PULL_ALLOC(ndr, r->in.credential);
9129                 }
9130                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9131                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
9132                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9133                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
9134                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9135                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9136                 }
9137                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9138                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
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, LIBNDR_FLAG_REF_ALLOC);
9141                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9142                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9143                         NDR_PULL_ALLOC(ndr, r->in.sequence_num);
9144                 }
9145                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9146                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9147                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
9148                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9149                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9150                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9151                 *r->out.return_authenticator = *r->in.return_authenticator;
9152                 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9153                 *r->out.sequence_num = *r->in.sequence_num;
9154                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9155                 ZERO_STRUCTP(r->out.delta_enum_array);
9156         }
9157         if (flags & NDR_OUT) {
9158                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9159                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9160                 }
9161                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9162                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9163                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9164                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9165                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9166                         NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9167                 }
9168                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9169                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9170                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
9171                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9172                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9173                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9174                 }
9175                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9176                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9177                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
9178                 if (_ptr_delta_enum_array) {
9179                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
9180                 } else {
9181                         *r->out.delta_enum_array = NULL;
9182                 }
9183                 if (*r->out.delta_enum_array) {
9184                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
9185                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
9186                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9187                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
9188                 }
9189                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9190                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9191         }
9192         return NDR_ERR_SUCCESS;
9193 }
9194
9195 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
9196 {
9197         ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
9198         ndr->depth++;
9199         if (flags & NDR_SET_VALUES) {
9200                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9201         }
9202         if (flags & NDR_IN) {
9203                 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
9204                 ndr->depth++;
9205                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9206                 ndr_print_string(ndr, "computername", r->in.computername);
9207                 ndr_print_ptr(ndr, "credential", r->in.credential);
9208                 ndr->depth++;
9209                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9210                 ndr->depth--;
9211                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9212                 ndr->depth++;
9213                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9214                 ndr->depth--;
9215                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9216                 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
9217                 ndr->depth++;
9218                 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
9219                 ndr->depth--;
9220                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9221                 ndr->depth--;
9222         }
9223         if (flags & NDR_OUT) {
9224                 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
9225                 ndr->depth++;
9226                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9227                 ndr->depth++;
9228                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9229                 ndr->depth--;
9230                 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
9231                 ndr->depth++;
9232                 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
9233                 ndr->depth--;
9234                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9235                 ndr->depth++;
9236                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
9237                 ndr->depth++;
9238                 if (*r->out.delta_enum_array) {
9239                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
9240                 }
9241                 ndr->depth--;
9242                 ndr->depth--;
9243                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9244                 ndr->depth--;
9245         }
9246         ndr->depth--;
9247 }
9248
9249 static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
9250 {
9251         if (flags & NDR_IN) {
9252                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9253                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9254                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9255                 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));
9256                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9257                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9258                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9259                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9260                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9261                 if (r->in.return_authenticator == NULL) {
9262                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9263                 }
9264                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9265                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9266                 if (r->in.sync_context == NULL) {
9267                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9268                 }
9269                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
9270                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9271         }
9272         if (flags & NDR_OUT) {
9273                 if (r->out.return_authenticator == NULL) {
9274                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9275                 }
9276                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9277                 if (r->out.sync_context == NULL) {
9278                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9279                 }
9280                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
9281                 if (r->out.delta_enum_array == NULL) {
9282                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9283                 }
9284                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9285                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9286         }
9287         return NDR_ERR_SUCCESS;
9288 }
9289
9290 static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
9291 {
9292         TALLOC_CTX *_mem_save_return_authenticator_0;
9293         TALLOC_CTX *_mem_save_sync_context_0;
9294         TALLOC_CTX *_mem_save_delta_enum_array_0;
9295         if (flags & NDR_IN) {
9296                 ZERO_STRUCT(r->out);
9297
9298                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9299                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9300                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9301                         return 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));
9302                 }
9303                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9304                 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));
9305                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9306                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9307                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9308                         return 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));
9309                 }
9310                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9311                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9312                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9313                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9314                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9315                 }
9316                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9317                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9318                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9319                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9320                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9321                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9322                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
9323                 }
9324                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9325                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
9326                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
9327                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9328                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9329                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9330                 *r->out.return_authenticator = *r->in.return_authenticator;
9331                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
9332                 *r->out.sync_context = *r->in.sync_context;
9333                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9334                 ZERO_STRUCTP(r->out.delta_enum_array);
9335         }
9336         if (flags & NDR_OUT) {
9337                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9338                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9339                 }
9340                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9341                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9342                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9343                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9344                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9345                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
9346                 }
9347                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9348                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
9349                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
9350                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9351                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9352                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9353                 }
9354                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9355                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9356                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9357                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9358                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9359         }
9360         return NDR_ERR_SUCCESS;
9361 }
9362
9363 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
9364 {
9365         ndr_print_struct(ndr, name, "netr_DatabaseSync");
9366         ndr->depth++;
9367         if (flags & NDR_SET_VALUES) {
9368                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9369         }
9370         if (flags & NDR_IN) {
9371                 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
9372                 ndr->depth++;
9373                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9374                 ndr_print_string(ndr, "computername", r->in.computername);
9375                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9376                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9377                 ndr->depth++;
9378                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9379                 ndr->depth--;
9380                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9381                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
9382                 ndr->depth++;
9383                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
9384                 ndr->depth--;
9385                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9386                 ndr->depth--;
9387         }
9388         if (flags & NDR_OUT) {
9389                 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
9390                 ndr->depth++;
9391                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9392                 ndr->depth++;
9393                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9394                 ndr->depth--;
9395                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
9396                 ndr->depth++;
9397                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
9398                 ndr->depth--;
9399                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9400                 ndr->depth++;
9401                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
9402                 ndr->depth--;
9403                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9404                 ndr->depth--;
9405         }
9406         ndr->depth--;
9407 }
9408
9409 static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
9410 {
9411         if (flags & NDR_IN) {
9412                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9413                 if (r->in.logon_server) {
9414                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9415                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9416                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9417                         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));
9418                 }
9419                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9420                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9421                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9422                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9423                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9424                 if (r->in.return_authenticator == NULL) {
9425                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9426                 }
9427                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9428                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9429                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
9430                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9431                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9432         }
9433         if (flags & NDR_OUT) {
9434                 if (r->out.return_authenticator == NULL) {
9435                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9436                 }
9437                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9438                 if (r->out.buffer == NULL) {
9439                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9440                 }
9441                 {
9442                         struct ndr_push *_ndr_buffer;
9443                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9444                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9445                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9446                 }
9447                 if (r->out.count_returned == NULL) {
9448                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9449                 }
9450                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9451                 if (r->out.total_entries == NULL) {
9452                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9453                 }
9454                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9455                 if (r->out.recordid == NULL) {
9456                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9457                 }
9458                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9459                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9460         }
9461         return NDR_ERR_SUCCESS;
9462 }
9463
9464 static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
9465 {
9466         uint32_t _ptr_logon_server;
9467         TALLOC_CTX *_mem_save_logon_server_0;
9468         TALLOC_CTX *_mem_save_return_authenticator_0;
9469         TALLOC_CTX *_mem_save_buffer_0;
9470         TALLOC_CTX *_mem_save_count_returned_0;
9471         TALLOC_CTX *_mem_save_total_entries_0;
9472         TALLOC_CTX *_mem_save_recordid_0;
9473         if (flags & NDR_IN) {
9474                 ZERO_STRUCT(r->out);
9475
9476                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9477                 if (_ptr_logon_server) {
9478                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9479                 } else {
9480                         r->in.logon_server = NULL;
9481                 }
9482                 if (r->in.logon_server) {
9483                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9484                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9485                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9486                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9487                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9488                                 return 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));
9489                         }
9490                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9491                         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));
9492                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9493                 }
9494                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9495                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9496                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9497                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername));
9498                 }
9499                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9500                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9501                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9502                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9503                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9504                 }
9505                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9506                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9507                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9508                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9509                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9510                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
9511                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9512                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9513                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9514                 *r->out.return_authenticator = *r->in.return_authenticator;
9515                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9516                 ZERO_STRUCTP(r->out.buffer);
9517                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9518                 ZERO_STRUCTP(r->out.count_returned);
9519                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9520                 ZERO_STRUCTP(r->out.total_entries);
9521                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9522                 ZERO_STRUCTP(r->out.recordid);
9523         }
9524         if (flags & NDR_OUT) {
9525                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9526                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9527                 }
9528                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9529                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9530                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9531                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9532                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9533                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9534                 }
9535                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9536                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9537                 {
9538                         struct ndr_pull *_ndr_buffer;
9539                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9540                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9541                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9542                 }
9543                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9544                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9545                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9546                 }
9547                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9548                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9549                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9550                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9551                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9552                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9553                 }
9554                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9555                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9556                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9557                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9558                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9559                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9560                 }
9561                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9562                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9563                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9564                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9565                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9566         }
9567         return NDR_ERR_SUCCESS;
9568 }
9569
9570 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
9571 {
9572         ndr_print_struct(ndr, name, "netr_AccountDeltas");
9573         ndr->depth++;
9574         if (flags & NDR_SET_VALUES) {
9575                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9576         }
9577         if (flags & NDR_IN) {
9578                 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
9579                 ndr->depth++;
9580                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9581                 ndr->depth++;
9582                 if (r->in.logon_server) {
9583                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9584                 }
9585                 ndr->depth--;
9586                 ndr_print_string(ndr, "computername", r->in.computername);
9587                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9588                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9589                 ndr->depth++;
9590                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9591                 ndr->depth--;
9592                 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
9593                 ndr_print_uint32(ndr, "count", r->in.count);
9594                 ndr_print_uint32(ndr, "level", r->in.level);
9595                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9596                 ndr->depth--;
9597         }
9598         if (flags & NDR_OUT) {
9599                 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
9600                 ndr->depth++;
9601                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9602                 ndr->depth++;
9603                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9604                 ndr->depth--;
9605                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9606                 ndr->depth++;
9607                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9608                 ndr->depth--;
9609                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9610                 ndr->depth++;
9611                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9612                 ndr->depth--;
9613                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9614                 ndr->depth++;
9615                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9616                 ndr->depth--;
9617                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9618                 ndr->depth++;
9619                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9620                 ndr->depth--;
9621                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9622                 ndr->depth--;
9623         }
9624         ndr->depth--;
9625 }
9626
9627 static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
9628 {
9629         if (flags & NDR_IN) {
9630                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9631                 if (r->in.logon_server) {
9632                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9633                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9634                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9635                         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));
9636                 }
9637                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9638                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9639                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9640                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9641                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9642                 if (r->in.return_authenticator == NULL) {
9643                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9644                 }
9645                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9646                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
9647                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9648                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9649                 if (r->in.recordid == NULL) {
9650                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9651                 }
9652                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9653         }
9654         if (flags & NDR_OUT) {
9655                 if (r->out.return_authenticator == NULL) {
9656                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9657                 }
9658                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9659                 if (r->out.buffer == NULL) {
9660                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9661                 }
9662                 {
9663                         struct ndr_push *_ndr_buffer;
9664                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9665                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9666                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9667                 }
9668                 if (r->out.count_returned == NULL) {
9669                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9670                 }
9671                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9672                 if (r->out.total_entries == NULL) {
9673                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9674                 }
9675                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9676                 if (r->out.next_reference == NULL) {
9677                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9678                 }
9679                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
9680                 if (r->out.recordid == NULL) {
9681                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9682                 }
9683                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9684                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9685         }
9686         return NDR_ERR_SUCCESS;
9687 }
9688
9689 static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
9690 {
9691         uint32_t _ptr_logon_server;
9692         TALLOC_CTX *_mem_save_logon_server_0;
9693         TALLOC_CTX *_mem_save_return_authenticator_0;
9694         TALLOC_CTX *_mem_save_buffer_0;
9695         TALLOC_CTX *_mem_save_count_returned_0;
9696         TALLOC_CTX *_mem_save_total_entries_0;
9697         TALLOC_CTX *_mem_save_next_reference_0;
9698         TALLOC_CTX *_mem_save_recordid_0;
9699         if (flags & NDR_IN) {
9700                 ZERO_STRUCT(r->out);
9701
9702                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9703                 if (_ptr_logon_server) {
9704                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9705                 } else {
9706                         r->in.logon_server = NULL;
9707                 }
9708                 if (r->in.logon_server) {
9709                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9710                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9711                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9712                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9713                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9714                                 return 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));
9715                         }
9716                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9717                         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));
9718                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9719                 }
9720                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9721                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9722                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9723                         return 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));
9724                 }
9725                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9726                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9727                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9728                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9729                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9730                 }
9731                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9732                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9733                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9734                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9735                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
9736                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9737                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9738                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9739                         NDR_PULL_ALLOC(ndr, r->in.recordid);
9740                 }
9741                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9742                 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
9743                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9744                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9745                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9746                 *r->out.return_authenticator = *r->in.return_authenticator;
9747                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9748                 ZERO_STRUCTP(r->out.buffer);
9749                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9750                 ZERO_STRUCTP(r->out.count_returned);
9751                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9752                 ZERO_STRUCTP(r->out.total_entries);
9753                 NDR_PULL_ALLOC(ndr, r->out.next_reference);
9754                 ZERO_STRUCTP(r->out.next_reference);
9755                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9756                 *r->out.recordid = *r->in.recordid;
9757         }
9758         if (flags & NDR_OUT) {
9759                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9760                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9761                 }
9762                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9763                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9764                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9765                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9766                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9767                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9768                 }
9769                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9770                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9771                 {
9772                         struct ndr_pull *_ndr_buffer;
9773                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9774                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9775                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9776                 }
9777                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9778                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9779                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9780                 }
9781                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9782                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9783                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9784                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9785                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9786                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9787                 }
9788                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9789                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9790                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9791                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9792                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9793                         NDR_PULL_ALLOC(ndr, r->out.next_reference);
9794                 }
9795                 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
9796                 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
9797                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
9798                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
9799                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9800                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9801                 }
9802                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9803                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9804                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9805                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9806                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9807         }
9808         return NDR_ERR_SUCCESS;
9809 }
9810
9811 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
9812 {
9813         ndr_print_struct(ndr, name, "netr_AccountSync");
9814         ndr->depth++;
9815         if (flags & NDR_SET_VALUES) {
9816                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9817         }
9818         if (flags & NDR_IN) {
9819                 ndr_print_struct(ndr, "in", "netr_AccountSync");
9820                 ndr->depth++;
9821                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9822                 ndr->depth++;
9823                 if (r->in.logon_server) {
9824                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9825                 }
9826                 ndr->depth--;
9827                 ndr_print_string(ndr, "computername", r->in.computername);
9828                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9829                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9830                 ndr->depth++;
9831                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9832                 ndr->depth--;
9833                 ndr_print_uint32(ndr, "reference", r->in.reference);
9834                 ndr_print_uint32(ndr, "level", r->in.level);
9835                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9836                 ndr_print_ptr(ndr, "recordid", r->in.recordid);
9837                 ndr->depth++;
9838                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
9839                 ndr->depth--;
9840                 ndr->depth--;
9841         }
9842         if (flags & NDR_OUT) {
9843                 ndr_print_struct(ndr, "out", "netr_AccountSync");
9844                 ndr->depth++;
9845                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9846                 ndr->depth++;
9847                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9848                 ndr->depth--;
9849                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9850                 ndr->depth++;
9851                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9852                 ndr->depth--;
9853                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9854                 ndr->depth++;
9855                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9856                 ndr->depth--;
9857                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9858                 ndr->depth++;
9859                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9860                 ndr->depth--;
9861                 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
9862                 ndr->depth++;
9863                 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
9864                 ndr->depth--;
9865                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9866                 ndr->depth++;
9867                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9868                 ndr->depth--;
9869                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9870                 ndr->depth--;
9871         }
9872         ndr->depth--;
9873 }
9874
9875 static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
9876 {
9877         if (flags & NDR_IN) {
9878                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9879                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9880                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9881                 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));
9882                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
9883                 if (r->in.domainname) {
9884                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9885                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9886                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9887                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9888                 }
9889         }
9890         if (flags & NDR_OUT) {
9891                 if (r->out.dcname == NULL) {
9892                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9893                 }
9894                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
9895                 if (*r->out.dcname) {
9896                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9897                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9898                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9899                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9900                 }
9901                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9902         }
9903         return NDR_ERR_SUCCESS;
9904 }
9905
9906 static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
9907 {
9908         uint32_t _ptr_domainname;
9909         uint32_t _ptr_dcname;
9910         TALLOC_CTX *_mem_save_domainname_0;
9911         TALLOC_CTX *_mem_save_dcname_0;
9912         TALLOC_CTX *_mem_save_dcname_1;
9913         if (flags & NDR_IN) {
9914                 ZERO_STRUCT(r->out);
9915
9916                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9917                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9918                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9919                         return 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));
9920                 }
9921                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9922                 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));
9923                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
9924                 if (_ptr_domainname) {
9925                         NDR_PULL_ALLOC(ndr, r->in.domainname);
9926                 } else {
9927                         r->in.domainname = NULL;
9928                 }
9929                 if (r->in.domainname) {
9930                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9931                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
9932                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
9933                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
9934                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
9935                                 return 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));
9936                         }
9937                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
9938                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
9939                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
9940                 }
9941                 NDR_PULL_ALLOC(ndr, r->out.dcname);
9942                 ZERO_STRUCTP(r->out.dcname);
9943         }
9944         if (flags & NDR_OUT) {
9945                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9946                         NDR_PULL_ALLOC(ndr, r->out.dcname);
9947                 }
9948                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9949                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
9950                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
9951                 if (_ptr_dcname) {
9952                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
9953                 } else {
9954                         *r->out.dcname = NULL;
9955                 }
9956                 if (*r->out.dcname) {
9957                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
9958                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
9959                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
9960                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
9961                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
9962                                 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));
9963                         }
9964                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
9965                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
9966                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
9967                 }
9968                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
9969                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9970         }
9971         return NDR_ERR_SUCCESS;
9972 }
9973
9974 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
9975 {
9976         ndr_print_struct(ndr, name, "netr_GetDcName");
9977         ndr->depth++;
9978         if (flags & NDR_SET_VALUES) {
9979                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9980         }
9981         if (flags & NDR_IN) {
9982                 ndr_print_struct(ndr, "in", "netr_GetDcName");
9983                 ndr->depth++;
9984                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9985                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
9986                 ndr->depth++;
9987                 if (r->in.domainname) {
9988                         ndr_print_string(ndr, "domainname", r->in.domainname);
9989                 }
9990                 ndr->depth--;
9991                 ndr->depth--;
9992         }
9993         if (flags & NDR_OUT) {
9994                 ndr_print_struct(ndr, "out", "netr_GetDcName");
9995                 ndr->depth++;
9996                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
9997                 ndr->depth++;
9998                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
9999                 ndr->depth++;
10000                 if (*r->out.dcname) {
10001                         ndr_print_string(ndr, "dcname", *r->out.dcname);
10002                 }
10003                 ndr->depth--;
10004                 ndr->depth--;
10005                 ndr_print_WERROR(ndr, "result", r->out.result);
10006                 ndr->depth--;
10007         }
10008         ndr->depth--;
10009 }
10010
10011 static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
10012 {
10013         if (flags & NDR_IN) {
10014                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10015                 if (r->in.logon_server) {
10016                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10017                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10018                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10019                         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));
10020                 }
10021                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
10022                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10023         }
10024         if (flags & NDR_OUT) {
10025                 if (r->out.info == NULL) {
10026                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10027                 }
10028                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
10029                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10030                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10031         }
10032         return NDR_ERR_SUCCESS;
10033 }
10034
10035 static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
10036 {
10037         uint32_t _ptr_logon_server;
10038         TALLOC_CTX *_mem_save_logon_server_0;
10039         TALLOC_CTX *_mem_save_info_0;
10040         if (flags & NDR_IN) {
10041                 ZERO_STRUCT(r->out);
10042
10043                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10044                 if (_ptr_logon_server) {
10045                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10046                 } else {
10047                         r->in.logon_server = NULL;
10048                 }
10049                 if (r->in.logon_server) {
10050                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10051                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10052                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10053                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10054                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10055                                 return 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));
10056                         }
10057                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10058                         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));
10059                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10060                 }
10061                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
10062                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10063                 NDR_PULL_ALLOC(ndr, r->out.info);
10064                 ZERO_STRUCTP(r->out.info);
10065         }
10066         if (flags & NDR_OUT) {
10067                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10068                         NDR_PULL_ALLOC(ndr, r->out.info);
10069                 }
10070                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10071                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
10072                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
10073                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10074                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
10075                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10076         }
10077         return NDR_ERR_SUCCESS;
10078 }
10079
10080 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
10081 {
10082         ndr_print_struct(ndr, name, "netr_LogonControl");
10083         ndr->depth++;
10084         if (flags & NDR_SET_VALUES) {
10085                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10086         }
10087         if (flags & NDR_IN) {
10088                 ndr_print_struct(ndr, "in", "netr_LogonControl");
10089                 ndr->depth++;
10090                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10091                 ndr->depth++;
10092                 if (r->in.logon_server) {
10093                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10094                 }
10095                 ndr->depth--;
10096                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
10097                 ndr_print_uint32(ndr, "level", r->in.level);
10098                 ndr->depth--;
10099         }
10100         if (flags & NDR_OUT) {
10101                 ndr_print_struct(ndr, "out", "netr_LogonControl");
10102                 ndr->depth++;
10103                 ndr_print_ptr(ndr, "info", r->out.info);
10104                 ndr->depth++;
10105                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
10106                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "info", r->out.info);
10107                 ndr->depth--;
10108                 ndr_print_WERROR(ndr, "result", r->out.result);
10109                 ndr->depth--;
10110         }
10111         ndr->depth--;
10112 }
10113
10114 static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
10115 {
10116         if (flags & NDR_IN) {
10117                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10118                 if (r->in.logon_server) {
10119                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10120                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10121                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10122                         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));
10123                 }
10124                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
10125                 if (r->in.domainname) {
10126                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10127                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10128                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10129                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10130                 }
10131         }
10132         if (flags & NDR_OUT) {
10133                 if (r->out.dcname == NULL) {
10134                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10135                 }
10136                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
10137                 if (*r->out.dcname) {
10138                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10139                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10140                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10141                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10142                 }
10143                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10144         }
10145         return NDR_ERR_SUCCESS;
10146 }
10147
10148 static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
10149 {
10150         uint32_t _ptr_logon_server;
10151         uint32_t _ptr_domainname;
10152         uint32_t _ptr_dcname;
10153         TALLOC_CTX *_mem_save_logon_server_0;
10154         TALLOC_CTX *_mem_save_domainname_0;
10155         TALLOC_CTX *_mem_save_dcname_0;
10156         TALLOC_CTX *_mem_save_dcname_1;
10157         if (flags & NDR_IN) {
10158                 ZERO_STRUCT(r->out);
10159
10160                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10161                 if (_ptr_logon_server) {
10162                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10163                 } else {
10164                         r->in.logon_server = NULL;
10165                 }
10166                 if (r->in.logon_server) {
10167                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10168                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10169                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10170                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10171                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10172                                 return 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));
10173                         }
10174                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10175                         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));
10176                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10177                 }
10178                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
10179                 if (_ptr_domainname) {
10180                         NDR_PULL_ALLOC(ndr, r->in.domainname);
10181                 } else {
10182                         r->in.domainname = NULL;
10183                 }
10184                 if (r->in.domainname) {
10185                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10186                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
10187                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
10188                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
10189                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
10190                                 return 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));
10191                         }
10192                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
10193                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
10194                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
10195                 }
10196                 NDR_PULL_ALLOC(ndr, r->out.dcname);
10197                 ZERO_STRUCTP(r->out.dcname);
10198         }
10199         if (flags & NDR_OUT) {
10200                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10201                         NDR_PULL_ALLOC(ndr, r->out.dcname);
10202                 }
10203                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10204                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
10205                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
10206                 if (_ptr_dcname) {
10207                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
10208                 } else {
10209                         *r->out.dcname = NULL;
10210                 }
10211                 if (*r->out.dcname) {
10212                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
10213                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
10214                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
10215                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
10216                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
10217                                 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));
10218                         }
10219                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
10220                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
10221                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
10222                 }
10223                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
10224                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10225         }
10226         return NDR_ERR_SUCCESS;
10227 }
10228
10229 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
10230 {
10231         ndr_print_struct(ndr, name, "netr_GetAnyDCName");
10232         ndr->depth++;
10233         if (flags & NDR_SET_VALUES) {
10234                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10235         }
10236         if (flags & NDR_IN) {
10237                 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
10238                 ndr->depth++;
10239                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10240                 ndr->depth++;
10241                 if (r->in.logon_server) {
10242                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10243                 }
10244                 ndr->depth--;
10245                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
10246                 ndr->depth++;
10247                 if (r->in.domainname) {
10248                         ndr_print_string(ndr, "domainname", r->in.domainname);
10249                 }
10250                 ndr->depth--;
10251                 ndr->depth--;
10252         }
10253         if (flags & NDR_OUT) {
10254                 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
10255                 ndr->depth++;
10256                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
10257                 ndr->depth++;
10258                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
10259                 ndr->depth++;
10260                 if (*r->out.dcname) {
10261                         ndr_print_string(ndr, "dcname", *r->out.dcname);
10262                 }
10263                 ndr->depth--;
10264                 ndr->depth--;
10265                 ndr_print_WERROR(ndr, "result", r->out.result);
10266                 ndr->depth--;
10267         }
10268         ndr->depth--;
10269 }
10270
10271 static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
10272 {
10273         if (flags & NDR_IN) {
10274                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10275                 if (r->in.logon_server) {
10276                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10277                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10278                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10279                         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));
10280                 }
10281                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
10282                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10283                 if (r->in.data == NULL) {
10284                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10285                 }
10286                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
10287                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
10288         }
10289         if (flags & NDR_OUT) {
10290                 if (r->out.query == NULL) {
10291                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10292                 }
10293                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10294                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10295                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10296         }
10297         return NDR_ERR_SUCCESS;
10298 }
10299
10300 static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
10301 {
10302         uint32_t _ptr_logon_server;
10303         TALLOC_CTX *_mem_save_logon_server_0;
10304         TALLOC_CTX *_mem_save_data_0;
10305         TALLOC_CTX *_mem_save_query_0;
10306         if (flags & NDR_IN) {
10307                 ZERO_STRUCT(r->out);
10308
10309                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10310                 if (_ptr_logon_server) {
10311                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10312                 } else {
10313                         r->in.logon_server = NULL;
10314                 }
10315                 if (r->in.logon_server) {
10316                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10317                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10318                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10319                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10320                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10321                                 return 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));
10322                         }
10323                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10324                         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));
10325                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10326                 }
10327                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
10328                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10329                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10330                         NDR_PULL_ALLOC(ndr, r->in.data);
10331                 }
10332                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
10333                 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
10334                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
10335                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
10336                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
10337                 NDR_PULL_ALLOC(ndr, r->out.query);
10338                 ZERO_STRUCTP(r->out.query);
10339         }
10340         if (flags & NDR_OUT) {
10341                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10342                         NDR_PULL_ALLOC(ndr, r->out.query);
10343                 }
10344                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10345                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10346                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10347                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10348                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10349                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10350         }
10351         return NDR_ERR_SUCCESS;
10352 }
10353
10354 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
10355 {
10356         ndr_print_struct(ndr, name, "netr_LogonControl2");
10357         ndr->depth++;
10358         if (flags & NDR_SET_VALUES) {
10359                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10360         }
10361         if (flags & NDR_IN) {
10362                 ndr_print_struct(ndr, "in", "netr_LogonControl2");
10363                 ndr->depth++;
10364                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10365                 ndr->depth++;
10366                 if (r->in.logon_server) {
10367                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10368                 }
10369                 ndr->depth--;
10370                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
10371                 ndr_print_uint32(ndr, "level", r->in.level);
10372                 ndr_print_ptr(ndr, "data", r->in.data);
10373                 ndr->depth++;
10374                 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
10375                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
10376                 ndr->depth--;
10377                 ndr->depth--;
10378         }
10379         if (flags & NDR_OUT) {
10380                 ndr_print_struct(ndr, "out", "netr_LogonControl2");
10381                 ndr->depth++;
10382                 ndr_print_ptr(ndr, "query", r->out.query);
10383                 ndr->depth++;
10384                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10385                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10386                 ndr->depth--;
10387                 ndr_print_WERROR(ndr, "result", r->out.result);
10388                 ndr->depth--;
10389         }
10390         ndr->depth--;
10391 }
10392
10393 static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
10394 {
10395         if (flags & NDR_IN) {
10396                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10397                 if (r->in.server_name) {
10398                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10399                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10400                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10401                         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));
10402                 }
10403                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10404                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10405                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10406                 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));
10407                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
10408                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10409                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10410                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10411                 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));
10412                 if (r->in.credentials == NULL) {
10413                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10414                 }
10415                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10416                 if (r->in.negotiate_flags == NULL) {
10417                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10418                 }
10419                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
10420         }
10421         if (flags & NDR_OUT) {
10422                 if (r->out.return_credentials == NULL) {
10423                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10424                 }
10425                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10426                 if (r->out.negotiate_flags == NULL) {
10427                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10428                 }
10429                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
10430                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10431         }
10432         return NDR_ERR_SUCCESS;
10433 }
10434
10435 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
10436 {
10437         uint32_t _ptr_server_name;
10438         TALLOC_CTX *_mem_save_server_name_0;
10439         TALLOC_CTX *_mem_save_credentials_0;
10440         TALLOC_CTX *_mem_save_return_credentials_0;
10441         TALLOC_CTX *_mem_save_negotiate_flags_0;
10442         if (flags & NDR_IN) {
10443                 ZERO_STRUCT(r->out);
10444
10445                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10446                 if (_ptr_server_name) {
10447                         NDR_PULL_ALLOC(ndr, r->in.server_name);
10448                 } else {
10449                         r->in.server_name = NULL;
10450                 }
10451                 if (r->in.server_name) {
10452                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10453                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10454                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10455                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10456                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10457                                 return 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));
10458                         }
10459                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10460                         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));
10461                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10462                 }
10463                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
10464                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
10465                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
10466                         return 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));
10467                 }
10468                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
10469                 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));
10470                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
10471                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10472                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10473                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10474                         return 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));
10475                 }
10476                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10477                 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));
10478                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10479                         NDR_PULL_ALLOC(ndr, r->in.credentials);
10480                 }
10481                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10482                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
10483                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10484                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10485                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10486                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
10487                 }
10488                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10489                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10490                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
10491                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10492                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10493                 ZERO_STRUCTP(r->out.return_credentials);
10494                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10495                 *r->out.negotiate_flags = *r->in.negotiate_flags;
10496         }
10497         if (flags & NDR_OUT) {
10498                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10499                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10500                 }
10501                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10502                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
10503                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10504                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10505                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10506                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10507                 }
10508                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10509                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10510                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
10511                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10512                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10513         }
10514         return NDR_ERR_SUCCESS;
10515 }
10516
10517 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
10518 {
10519         ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
10520         ndr->depth++;
10521         if (flags & NDR_SET_VALUES) {
10522                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10523         }
10524         if (flags & NDR_IN) {
10525                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
10526                 ndr->depth++;
10527                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10528                 ndr->depth++;
10529                 if (r->in.server_name) {
10530                         ndr_print_string(ndr, "server_name", r->in.server_name);
10531                 }
10532                 ndr->depth--;
10533                 ndr_print_string(ndr, "account_name", r->in.account_name);
10534                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10535                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10536                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
10537                 ndr->depth++;
10538                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
10539                 ndr->depth--;
10540                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
10541                 ndr->depth++;
10542                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
10543                 ndr->depth--;
10544                 ndr->depth--;
10545         }
10546         if (flags & NDR_OUT) {
10547                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
10548                 ndr->depth++;
10549                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
10550                 ndr->depth++;
10551                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
10552                 ndr->depth--;
10553                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
10554                 ndr->depth++;
10555                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
10556                 ndr->depth--;
10557                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10558                 ndr->depth--;
10559         }
10560         ndr->depth--;
10561 }
10562
10563 static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
10564 {
10565         if (flags & NDR_IN) {
10566                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10567                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10568                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10569                 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));
10570                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10571                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10572                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10573                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10574                 if (r->in.credential == NULL) {
10575                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10576                 }
10577                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10578                 if (r->in.return_authenticator == NULL) {
10579                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10580                 }
10581                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10582                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10583                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.restart_state));
10584                 if (r->in.sync_context == NULL) {
10585                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10586                 }
10587                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
10588                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10589         }
10590         if (flags & NDR_OUT) {
10591                 if (r->out.return_authenticator == NULL) {
10592                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10593                 }
10594                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10595                 if (r->out.sync_context == NULL) {
10596                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10597                 }
10598                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
10599                 if (r->out.delta_enum_array == NULL) {
10600                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10601                 }
10602                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10603                 if (*r->out.delta_enum_array) {
10604                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10605                 }
10606                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10607         }
10608         return NDR_ERR_SUCCESS;
10609 }
10610
10611 static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
10612 {
10613         uint32_t _ptr_delta_enum_array;
10614         TALLOC_CTX *_mem_save_credential_0;
10615         TALLOC_CTX *_mem_save_return_authenticator_0;
10616         TALLOC_CTX *_mem_save_sync_context_0;
10617         TALLOC_CTX *_mem_save_delta_enum_array_0;
10618         TALLOC_CTX *_mem_save_delta_enum_array_1;
10619         if (flags & NDR_IN) {
10620                 ZERO_STRUCT(r->out);
10621
10622                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10623                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10624                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10625                         return 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));
10626                 }
10627                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10628                 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));
10629                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10630                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10631                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10632                         return 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));
10633                 }
10634                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10635                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10636                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10637                         NDR_PULL_ALLOC(ndr, r->in.credential);
10638                 }
10639                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10640                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10641                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10642                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10643                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10644                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10645                 }
10646                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10647                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10648                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10649                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10650                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10651                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.restart_state));
10652                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10653                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
10654                 }
10655                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10656                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
10657                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
10658                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10659                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10660                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10661                 *r->out.return_authenticator = *r->in.return_authenticator;
10662                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10663                 *r->out.sync_context = *r->in.sync_context;
10664                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10665                 ZERO_STRUCTP(r->out.delta_enum_array);
10666         }
10667         if (flags & NDR_OUT) {
10668                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10669                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10670                 }
10671                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10672                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10673                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10674                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10675                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10676                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
10677                 }
10678                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10679                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
10680                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
10681                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10682                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10683                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10684                 }
10685                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10686                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10687                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10688                 if (_ptr_delta_enum_array) {
10689                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
10690                 } else {
10691                         *r->out.delta_enum_array = NULL;
10692                 }
10693                 if (*r->out.delta_enum_array) {
10694                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
10695                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
10696                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10697                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
10698                 }
10699                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10700                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10701         }
10702         return NDR_ERR_SUCCESS;
10703 }
10704
10705 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
10706 {
10707         ndr_print_struct(ndr, name, "netr_DatabaseSync2");
10708         ndr->depth++;
10709         if (flags & NDR_SET_VALUES) {
10710                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10711         }
10712         if (flags & NDR_IN) {
10713                 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
10714                 ndr->depth++;
10715                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10716                 ndr_print_string(ndr, "computername", r->in.computername);
10717                 ndr_print_ptr(ndr, "credential", r->in.credential);
10718                 ndr->depth++;
10719                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10720                 ndr->depth--;
10721                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10722                 ndr->depth++;
10723                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10724                 ndr->depth--;
10725                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10726                 ndr_print_uint16(ndr, "restart_state", r->in.restart_state);
10727                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
10728                 ndr->depth++;
10729                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
10730                 ndr->depth--;
10731                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10732                 ndr->depth--;
10733         }
10734         if (flags & NDR_OUT) {
10735                 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
10736                 ndr->depth++;
10737                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10738                 ndr->depth++;
10739                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10740                 ndr->depth--;
10741                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
10742                 ndr->depth++;
10743                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
10744                 ndr->depth--;
10745                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10746                 ndr->depth++;
10747                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10748                 ndr->depth++;
10749                 if (*r->out.delta_enum_array) {
10750                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10751                 }
10752                 ndr->depth--;
10753                 ndr->depth--;
10754                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10755                 ndr->depth--;
10756         }
10757         ndr->depth--;
10758 }
10759
10760 static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
10761 {
10762         if (flags & NDR_IN) {
10763                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10764                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10765                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10766                 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));
10767                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10768                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10769                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10770                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10771                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10772                 if (r->in.return_authenticator == NULL) {
10773                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10774                 }
10775                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10776                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.change_log_entry));
10777                 if (r->in.change_log_entry) {
10778                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10779                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, r->in.change_log_entry_size));
10780                 }
10781                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10782         }
10783         if (flags & NDR_OUT) {
10784                 if (r->out.return_authenticator == NULL) {
10785                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10786                 }
10787                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10788                 if (r->out.delta_enum_array == NULL) {
10789                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10790                 }
10791                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10792                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10793         }
10794         return NDR_ERR_SUCCESS;
10795 }
10796
10797 static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
10798 {
10799         uint32_t _ptr_change_log_entry;
10800         TALLOC_CTX *_mem_save_return_authenticator_0;
10801         TALLOC_CTX *_mem_save_change_log_entry_0;
10802         TALLOC_CTX *_mem_save_delta_enum_array_0;
10803         if (flags & NDR_IN) {
10804                 ZERO_STRUCT(r->out);
10805
10806                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10807                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10808                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10809                         return 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));
10810                 }
10811                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10812                 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));
10813                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10814                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10815                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10816                         return 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));
10817                 }
10818                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10819                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10820                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10821                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10822                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10823                 }
10824                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10825                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10826                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10827                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10828                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_change_log_entry));
10829                 if (_ptr_change_log_entry) {
10830                         NDR_PULL_ALLOC(ndr, r->in.change_log_entry);
10831                 } else {
10832                         r->in.change_log_entry = NULL;
10833                 }
10834                 if (r->in.change_log_entry) {
10835                         _mem_save_change_log_entry_0 = NDR_PULL_GET_MEM_CTX(ndr);
10836                         NDR_PULL_SET_MEM_CTX(ndr, r->in.change_log_entry, 0);
10837                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.change_log_entry));
10838                         NDR_PULL_ALLOC_N(ndr, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry));
10839                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry)));
10840                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_change_log_entry_0, 0);
10841                 }
10842                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
10843                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10844                 *r->out.return_authenticator = *r->in.return_authenticator;
10845                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10846                 ZERO_STRUCTP(r->out.delta_enum_array);
10847                 if (r->in.change_log_entry) {
10848                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.change_log_entry, r->in.change_log_entry_size));
10849                 }
10850         }
10851         if (flags & NDR_OUT) {
10852                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10853                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10854                 }
10855                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10856                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10857                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10858                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10859                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10860                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10861                 }
10862                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10863                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10864                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10865                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10866                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10867         }
10868         return NDR_ERR_SUCCESS;
10869 }
10870
10871 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
10872 {
10873         ndr_print_struct(ndr, name, "netr_DatabaseRedo");
10874         ndr->depth++;
10875         if (flags & NDR_SET_VALUES) {
10876                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10877         }
10878         if (flags & NDR_IN) {
10879                 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
10880                 ndr->depth++;
10881                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10882                 ndr_print_string(ndr, "computername", r->in.computername);
10883                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10884                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10885                 ndr->depth++;
10886                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10887                 ndr->depth--;
10888                 ndr_print_ptr(ndr, "change_log_entry", r->in.change_log_entry);
10889                 ndr->depth++;
10890                 if (r->in.change_log_entry) {
10891                         ndr_print_array_uint8(ndr, "change_log_entry", r->in.change_log_entry, r->in.change_log_entry_size);
10892                 }
10893                 ndr->depth--;
10894                 ndr_print_uint32(ndr, "change_log_entry_size", r->in.change_log_entry_size);
10895                 ndr->depth--;
10896         }
10897         if (flags & NDR_OUT) {
10898                 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
10899                 ndr->depth++;
10900                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10901                 ndr->depth++;
10902                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10903                 ndr->depth--;
10904                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10905                 ndr->depth++;
10906                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
10907                 ndr->depth--;
10908                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10909                 ndr->depth--;
10910         }
10911         ndr->depth--;
10912 }
10913
10914 static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
10915 {
10916         if (flags & NDR_IN) {
10917                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10918                 if (r->in.logon_server) {
10919                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10920                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10921                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10922                         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));
10923                 }
10924                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
10925                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10926                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
10927                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10928         }
10929         if (flags & NDR_OUT) {
10930                 if (r->out.query == NULL) {
10931                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10932                 }
10933                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10934                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10935                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10936         }
10937         return NDR_ERR_SUCCESS;
10938 }
10939
10940 static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
10941 {
10942         uint32_t _ptr_logon_server;
10943         TALLOC_CTX *_mem_save_logon_server_0;
10944         TALLOC_CTX *_mem_save_query_0;
10945         if (flags & NDR_IN) {
10946                 ZERO_STRUCT(r->out);
10947
10948                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10949                 if (_ptr_logon_server) {
10950                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10951                 } else {
10952                         r->in.logon_server = NULL;
10953                 }
10954                 if (r->in.logon_server) {
10955                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10956                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10957                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10958                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10959                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10960                                 return 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));
10961                         }
10962                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10963                         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));
10964                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10965                 }
10966                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
10967                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10968                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
10969                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10970                 NDR_PULL_ALLOC(ndr, r->out.query);
10971                 ZERO_STRUCTP(r->out.query);
10972         }
10973         if (flags & NDR_OUT) {
10974                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10975                         NDR_PULL_ALLOC(ndr, r->out.query);
10976                 }
10977                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10978                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10979                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10980                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10981                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10982                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10983         }
10984         return NDR_ERR_SUCCESS;
10985 }
10986
10987 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
10988 {
10989         ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
10990         ndr->depth++;
10991         if (flags & NDR_SET_VALUES) {
10992                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10993         }
10994         if (flags & NDR_IN) {
10995                 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
10996                 ndr->depth++;
10997                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10998                 ndr->depth++;
10999                 if (r->in.logon_server) {
11000                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
11001                 }
11002                 ndr->depth--;
11003                 ndr_print_uint32(ndr, "function_code", r->in.function_code);
11004                 ndr_print_uint32(ndr, "level", r->in.level);
11005                 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
11006                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
11007                 ndr->depth--;
11008         }
11009         if (flags & NDR_OUT) {
11010                 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
11011                 ndr->depth++;
11012                 ndr_print_ptr(ndr, "query", r->out.query);
11013                 ndr->depth++;
11014                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
11015                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
11016                 ndr->depth--;
11017                 ndr_print_WERROR(ndr, "result", r->out.result);
11018                 ndr->depth--;
11019         }
11020         ndr->depth--;
11021 }
11022
11023 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
11024 {
11025         if (flags & NDR_IN) {
11026                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11027                 if (r->in.server_name) {
11028                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11029                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11030                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11031                         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));
11032                 }
11033         }
11034         if (flags & NDR_OUT) {
11035                 if (r->out.trusted_domains_blob == NULL) {
11036                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11037                 }
11038                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
11039                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11040         }
11041         return NDR_ERR_SUCCESS;
11042 }
11043
11044 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r)
11045 {
11046         uint32_t _ptr_server_name;
11047         TALLOC_CTX *_mem_save_server_name_0;
11048         TALLOC_CTX *_mem_save_trusted_domains_blob_0;
11049         if (flags & NDR_IN) {
11050                 ZERO_STRUCT(r->out);
11051
11052                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11053                 if (_ptr_server_name) {
11054                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11055                 } else {
11056                         r->in.server_name = NULL;
11057                 }
11058                 if (r->in.server_name) {
11059                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11060                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11061                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11062                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11063                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11064                                 return 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));
11065                         }
11066                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11067                         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));
11068                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11069                 }
11070                 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11071                 ZERO_STRUCTP(r->out.trusted_domains_blob);
11072         }
11073         if (flags & NDR_OUT) {
11074                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11075                         NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11076                 }
11077                 _mem_save_trusted_domains_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
11078                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusted_domains_blob, LIBNDR_FLAG_REF_ALLOC);
11079                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
11080                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_blob_0, LIBNDR_FLAG_REF_ALLOC);
11081                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11082         }
11083         return NDR_ERR_SUCCESS;
11084 }
11085
11086 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
11087 {
11088         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomains");
11089         ndr->depth++;
11090         if (flags & NDR_SET_VALUES) {
11091                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11092         }
11093         if (flags & NDR_IN) {
11094                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomains");
11095                 ndr->depth++;
11096                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11097                 ndr->depth++;
11098                 if (r->in.server_name) {
11099                         ndr_print_string(ndr, "server_name", r->in.server_name);
11100                 }
11101                 ndr->depth--;
11102                 ndr->depth--;
11103         }
11104         if (flags & NDR_OUT) {
11105                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomains");
11106                 ndr->depth++;
11107                 ndr_print_ptr(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11108                 ndr->depth++;
11109                 ndr_print_netr_Blob(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11110                 ndr->depth--;
11111                 ndr_print_WERROR(ndr, "result", r->out.result);
11112                 ndr->depth--;
11113         }
11114         ndr->depth--;
11115 }
11116
11117 static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
11118 {
11119         if (flags & NDR_IN) {
11120                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11121                 if (r->in.server_unc) {
11122                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11123                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11124                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11125                         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));
11126                 }
11127                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11128                 if (r->in.domain_name) {
11129                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11130                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11131                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11132                         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));
11133                 }
11134                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11135                 if (r->in.domain_guid) {
11136                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11137                 }
11138                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
11139                 if (r->in.site_guid) {
11140                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
11141                 }
11142                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11143         }
11144         if (flags & NDR_OUT) {
11145                 if (r->out.info == NULL) {
11146                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11147                 }
11148                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
11149                 if (*r->out.info) {
11150                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11151                 }
11152                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11153         }
11154         return NDR_ERR_SUCCESS;
11155 }
11156
11157 static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
11158 {
11159         uint32_t _ptr_server_unc;
11160         uint32_t _ptr_domain_name;
11161         uint32_t _ptr_domain_guid;
11162         uint32_t _ptr_site_guid;
11163         uint32_t _ptr_info;
11164         TALLOC_CTX *_mem_save_server_unc_0;
11165         TALLOC_CTX *_mem_save_domain_name_0;
11166         TALLOC_CTX *_mem_save_domain_guid_0;
11167         TALLOC_CTX *_mem_save_site_guid_0;
11168         TALLOC_CTX *_mem_save_info_0;
11169         TALLOC_CTX *_mem_save_info_1;
11170         if (flags & NDR_IN) {
11171                 ZERO_STRUCT(r->out);
11172
11173                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11174                 if (_ptr_server_unc) {
11175                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
11176                 } else {
11177                         r->in.server_unc = NULL;
11178                 }
11179                 if (r->in.server_unc) {
11180                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11181                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11182                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11183                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11184                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11185                                 return 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));
11186                         }
11187                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11188                         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));
11189                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11190                 }
11191                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11192                 if (_ptr_domain_name) {
11193                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11194                 } else {
11195                         r->in.domain_name = NULL;
11196                 }
11197                 if (r->in.domain_name) {
11198                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11199                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11200                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11201                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11202                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11203                                 return 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));
11204                         }
11205                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11206                         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));
11207                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11208                 }
11209                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11210                 if (_ptr_domain_guid) {
11211                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11212                 } else {
11213                         r->in.domain_guid = NULL;
11214                 }
11215                 if (r->in.domain_guid) {
11216                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11217                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11218                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11219                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11220                 }
11221                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
11222                 if (_ptr_site_guid) {
11223                         NDR_PULL_ALLOC(ndr, r->in.site_guid);
11224                 } else {
11225                         r->in.site_guid = NULL;
11226                 }
11227                 if (r->in.site_guid) {
11228                         _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11229                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
11230                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
11231                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
11232                 }
11233                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11234                 NDR_PULL_ALLOC(ndr, r->out.info);
11235                 ZERO_STRUCTP(r->out.info);
11236         }
11237         if (flags & NDR_OUT) {
11238                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11239                         NDR_PULL_ALLOC(ndr, r->out.info);
11240                 }
11241                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11242                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11243                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11244                 if (_ptr_info) {
11245                         NDR_PULL_ALLOC(ndr, *r->out.info);
11246                 } else {
11247                         *r->out.info = NULL;
11248                 }
11249                 if (*r->out.info) {
11250                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
11251                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
11252                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11253                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
11254                 }
11255                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11256                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11257         }
11258         return NDR_ERR_SUCCESS;
11259 }
11260
11261 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
11262 {
11263         ndr_print_struct(ndr, name, "netr_DsRGetDCName");
11264         ndr->depth++;
11265         if (flags & NDR_SET_VALUES) {
11266                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11267         }
11268         if (flags & NDR_IN) {
11269                 ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
11270                 ndr->depth++;
11271                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11272                 ndr->depth++;
11273                 if (r->in.server_unc) {
11274                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11275                 }
11276                 ndr->depth--;
11277                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11278                 ndr->depth++;
11279                 if (r->in.domain_name) {
11280                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11281                 }
11282                 ndr->depth--;
11283                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11284                 ndr->depth++;
11285                 if (r->in.domain_guid) {
11286                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11287                 }
11288                 ndr->depth--;
11289                 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
11290                 ndr->depth++;
11291                 if (r->in.site_guid) {
11292                         ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
11293                 }
11294                 ndr->depth--;
11295                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11296                 ndr->depth--;
11297         }
11298         if (flags & NDR_OUT) {
11299                 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
11300                 ndr->depth++;
11301                 ndr_print_ptr(ndr, "info", r->out.info);
11302                 ndr->depth++;
11303                 ndr_print_ptr(ndr, "info", *r->out.info);
11304                 ndr->depth++;
11305                 if (*r->out.info) {
11306                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
11307                 }
11308                 ndr->depth--;
11309                 ndr->depth--;
11310                 ndr_print_WERROR(ndr, "result", r->out.result);
11311                 ndr->depth--;
11312         }
11313         ndr->depth--;
11314 }
11315
11316 static enum ndr_err_code ndr_push_netr_NETRLOGONDUMMYROUTINE1(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11317 {
11318         if (flags & NDR_IN) {
11319         }
11320         if (flags & NDR_OUT) {
11321                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11322         }
11323         return NDR_ERR_SUCCESS;
11324 }
11325
11326 static enum ndr_err_code ndr_pull_netr_NETRLOGONDUMMYROUTINE1(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONDUMMYROUTINE1 *r)
11327 {
11328         if (flags & NDR_IN) {
11329         }
11330         if (flags & NDR_OUT) {
11331                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11332         }
11333         return NDR_ERR_SUCCESS;
11334 }
11335
11336 _PUBLIC_ void ndr_print_netr_NETRLOGONDUMMYROUTINE1(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11337 {
11338         ndr_print_struct(ndr, name, "netr_NETRLOGONDUMMYROUTINE1");
11339         ndr->depth++;
11340         if (flags & NDR_SET_VALUES) {
11341                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11342         }
11343         if (flags & NDR_IN) {
11344                 ndr_print_struct(ndr, "in", "netr_NETRLOGONDUMMYROUTINE1");
11345                 ndr->depth++;
11346                 ndr->depth--;
11347         }
11348         if (flags & NDR_OUT) {
11349                 ndr_print_struct(ndr, "out", "netr_NETRLOGONDUMMYROUTINE1");
11350                 ndr->depth++;
11351                 ndr_print_WERROR(ndr, "result", r->out.result);
11352                 ndr->depth--;
11353         }
11354         ndr->depth--;
11355 }
11356
11357 static enum ndr_err_code ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11358 {
11359         if (flags & NDR_IN) {
11360         }
11361         if (flags & NDR_OUT) {
11362                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11363         }
11364         return NDR_ERR_SUCCESS;
11365 }
11366
11367 static enum ndr_err_code ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
11368 {
11369         if (flags & NDR_IN) {
11370         }
11371         if (flags & NDR_OUT) {
11372                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11373         }
11374         return NDR_ERR_SUCCESS;
11375 }
11376
11377 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11378 {
11379         ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
11380         ndr->depth++;
11381         if (flags & NDR_SET_VALUES) {
11382                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11383         }
11384         if (flags & NDR_IN) {
11385                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
11386                 ndr->depth++;
11387                 ndr->depth--;
11388         }
11389         if (flags & NDR_OUT) {
11390                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
11391                 ndr->depth++;
11392                 ndr_print_WERROR(ndr, "result", r->out.result);
11393                 ndr->depth--;
11394         }
11395         ndr->depth--;
11396 }
11397
11398 static enum ndr_err_code ndr_push_netr_LogonGetTrustRid(struct ndr_push *ndr, int flags, const struct netr_LogonGetTrustRid *r)
11399 {
11400         if (flags & NDR_IN) {
11401                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11402                 if (r->in.server_name) {
11403                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11404                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11405                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11406                         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));
11407                 }
11408                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11409                 if (r->in.domain_name) {
11410                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11411                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11412                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11413                         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));
11414                 }
11415         }
11416         if (flags & NDR_OUT) {
11417                 if (r->out.rid == NULL) {
11418                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11419                 }
11420                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11421                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11422         }
11423         return NDR_ERR_SUCCESS;
11424 }
11425
11426 static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, int flags, struct netr_LogonGetTrustRid *r)
11427 {
11428         uint32_t _ptr_server_name;
11429         uint32_t _ptr_domain_name;
11430         TALLOC_CTX *_mem_save_server_name_0;
11431         TALLOC_CTX *_mem_save_domain_name_0;
11432         TALLOC_CTX *_mem_save_rid_0;
11433         if (flags & NDR_IN) {
11434                 ZERO_STRUCT(r->out);
11435
11436                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11437                 if (_ptr_server_name) {
11438                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11439                 } else {
11440                         r->in.server_name = NULL;
11441                 }
11442                 if (r->in.server_name) {
11443                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11444                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11445                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11446                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11447                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11448                                 return 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));
11449                         }
11450                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11451                         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));
11452                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11453                 }
11454                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11455                 if (_ptr_domain_name) {
11456                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11457                 } else {
11458                         r->in.domain_name = NULL;
11459                 }
11460                 if (r->in.domain_name) {
11461                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11462                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11463                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11464                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11465                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11466                                 return 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));
11467                         }
11468                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11469                         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));
11470                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11471                 }
11472                 NDR_PULL_ALLOC(ndr, r->out.rid);
11473                 ZERO_STRUCTP(r->out.rid);
11474         }
11475         if (flags & NDR_OUT) {
11476                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11477                         NDR_PULL_ALLOC(ndr, r->out.rid);
11478                 }
11479                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11480                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11481                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11482                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11483                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11484         }
11485         return NDR_ERR_SUCCESS;
11486 }
11487
11488 _PUBLIC_ void ndr_print_netr_LogonGetTrustRid(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetTrustRid *r)
11489 {
11490         ndr_print_struct(ndr, name, "netr_LogonGetTrustRid");
11491         ndr->depth++;
11492         if (flags & NDR_SET_VALUES) {
11493                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11494         }
11495         if (flags & NDR_IN) {
11496                 ndr_print_struct(ndr, "in", "netr_LogonGetTrustRid");
11497                 ndr->depth++;
11498                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11499                 ndr->depth++;
11500                 if (r->in.server_name) {
11501                         ndr_print_string(ndr, "server_name", r->in.server_name);
11502                 }
11503                 ndr->depth--;
11504                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11505                 ndr->depth++;
11506                 if (r->in.domain_name) {
11507                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11508                 }
11509                 ndr->depth--;
11510                 ndr->depth--;
11511         }
11512         if (flags & NDR_OUT) {
11513                 ndr_print_struct(ndr, "out", "netr_LogonGetTrustRid");
11514                 ndr->depth++;
11515                 ndr_print_ptr(ndr, "rid", r->out.rid);
11516                 ndr->depth++;
11517                 ndr_print_uint32(ndr, "rid", *r->out.rid);
11518                 ndr->depth--;
11519                 ndr_print_WERROR(ndr, "result", r->out.result);
11520                 ndr->depth--;
11521         }
11522         ndr->depth--;
11523 }
11524
11525 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11526 {
11527         if (flags & NDR_IN) {
11528         }
11529         if (flags & NDR_OUT) {
11530                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11531         }
11532         return NDR_ERR_SUCCESS;
11533 }
11534
11535 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11536 {
11537         if (flags & NDR_IN) {
11538         }
11539         if (flags & NDR_OUT) {
11540                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11541         }
11542         return NDR_ERR_SUCCESS;
11543 }
11544
11545 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11546 {
11547         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
11548         ndr->depth++;
11549         if (flags & NDR_SET_VALUES) {
11550                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11551         }
11552         if (flags & NDR_IN) {
11553                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11554                 ndr->depth++;
11555                 ndr->depth--;
11556         }
11557         if (flags & NDR_OUT) {
11558                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11559                 ndr->depth++;
11560                 ndr_print_WERROR(ndr, "result", r->out.result);
11561                 ndr->depth--;
11562         }
11563         ndr->depth--;
11564 }
11565
11566 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11567 {
11568         if (flags & NDR_IN) {
11569         }
11570         if (flags & NDR_OUT) {
11571                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11572         }
11573         return NDR_ERR_SUCCESS;
11574 }
11575
11576 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11577 {
11578         if (flags & NDR_IN) {
11579         }
11580         if (flags & NDR_OUT) {
11581                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11582         }
11583         return NDR_ERR_SUCCESS;
11584 }
11585
11586 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11587 {
11588         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11589         ndr->depth++;
11590         if (flags & NDR_SET_VALUES) {
11591                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11592         }
11593         if (flags & NDR_IN) {
11594                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11595                 ndr->depth++;
11596                 ndr->depth--;
11597         }
11598         if (flags & NDR_OUT) {
11599                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11600                 ndr->depth++;
11601                 ndr_print_WERROR(ndr, "result", r->out.result);
11602                 ndr->depth--;
11603         }
11604         ndr->depth--;
11605 }
11606
11607 static enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
11608 {
11609         if (flags & NDR_IN) {
11610                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11611                 if (r->in.server_name) {
11612                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11613                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11614                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11615                         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));
11616                 }
11617                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11618                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11619                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11620                 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));
11621                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11622                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11623                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11624                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11625                 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));
11626                 if (r->in.credentials == NULL) {
11627                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11628                 }
11629                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11630                 if (r->in.negotiate_flags == NULL) {
11631                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11632                 }
11633                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->in.negotiate_flags));
11634         }
11635         if (flags & NDR_OUT) {
11636                 if (r->out.credentials == NULL) {
11637                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11638                 }
11639                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11640                 if (r->out.negotiate_flags == NULL) {
11641                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11642                 }
11643                 NDR_CHECK(ndr_push_netr_NegotiateFlags(ndr, NDR_SCALARS, *r->out.negotiate_flags));
11644                 if (r->out.rid == NULL) {
11645                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11646                 }
11647                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11648                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11649         }
11650         return NDR_ERR_SUCCESS;
11651 }
11652
11653 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
11654 {
11655         uint32_t _ptr_server_name;
11656         TALLOC_CTX *_mem_save_server_name_0;
11657         TALLOC_CTX *_mem_save_credentials_0;
11658         TALLOC_CTX *_mem_save_negotiate_flags_0;
11659         TALLOC_CTX *_mem_save_rid_0;
11660         if (flags & NDR_IN) {
11661                 ZERO_STRUCT(r->out);
11662
11663                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11664                 if (_ptr_server_name) {
11665                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11666                 } else {
11667                         r->in.server_name = NULL;
11668                 }
11669                 if (r->in.server_name) {
11670                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11671                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11672                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11673                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11674                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11675                                 return 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));
11676                         }
11677                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11678                         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));
11679                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11680                 }
11681                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11682                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11683                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11684                         return 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));
11685                 }
11686                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11687                 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));
11688                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11689                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11690                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11691                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11692                         return 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));
11693                 }
11694                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11695                 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));
11696                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11697                         NDR_PULL_ALLOC(ndr, r->in.credentials);
11698                 }
11699                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11700                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
11701                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11702                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11703                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11704                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
11705                 }
11706                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11707                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11708                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->in.negotiate_flags));
11709                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11710                 NDR_PULL_ALLOC(ndr, r->out.credentials);
11711                 *r->out.credentials = *r->in.credentials;
11712                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11713                 *r->out.negotiate_flags = *r->in.negotiate_flags;
11714                 NDR_PULL_ALLOC(ndr, r->out.rid);
11715                 ZERO_STRUCTP(r->out.rid);
11716         }
11717         if (flags & NDR_OUT) {
11718                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11719                         NDR_PULL_ALLOC(ndr, r->out.credentials);
11720                 }
11721                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11722                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
11723                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11724                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11725                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11726                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11727                 }
11728                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11729                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11730                 NDR_CHECK(ndr_pull_netr_NegotiateFlags(ndr, NDR_SCALARS, r->out.negotiate_flags));
11731                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11732                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11733                         NDR_PULL_ALLOC(ndr, r->out.rid);
11734                 }
11735                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11736                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11737                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11738                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11739                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11740         }
11741         return NDR_ERR_SUCCESS;
11742 }
11743
11744 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
11745 {
11746         ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
11747         ndr->depth++;
11748         if (flags & NDR_SET_VALUES) {
11749                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11750         }
11751         if (flags & NDR_IN) {
11752                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
11753                 ndr->depth++;
11754                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11755                 ndr->depth++;
11756                 if (r->in.server_name) {
11757                         ndr_print_string(ndr, "server_name", r->in.server_name);
11758                 }
11759                 ndr->depth--;
11760                 ndr_print_string(ndr, "account_name", r->in.account_name);
11761                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
11762                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11763                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
11764                 ndr->depth++;
11765                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
11766                 ndr->depth--;
11767                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
11768                 ndr->depth++;
11769                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->in.negotiate_flags);
11770                 ndr->depth--;
11771                 ndr->depth--;
11772         }
11773         if (flags & NDR_OUT) {
11774                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
11775                 ndr->depth++;
11776                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
11777                 ndr->depth++;
11778                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
11779                 ndr->depth--;
11780                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
11781                 ndr->depth++;
11782                 ndr_print_netr_NegotiateFlags(ndr, "negotiate_flags", *r->out.negotiate_flags);
11783                 ndr->depth--;
11784                 ndr_print_ptr(ndr, "rid", r->out.rid);
11785                 ndr->depth++;
11786                 ndr_print_uint32(ndr, "rid", *r->out.rid);
11787                 ndr->depth--;
11788                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11789                 ndr->depth--;
11790         }
11791         ndr->depth--;
11792 }
11793
11794 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
11795 {
11796         if (flags & NDR_IN) {
11797                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11798                 if (r->in.server_unc) {
11799                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11800                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11801                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11802                         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));
11803                 }
11804                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11805                 if (r->in.domain_name) {
11806                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11807                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11808                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11809                         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));
11810                 }
11811                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11812                 if (r->in.domain_guid) {
11813                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11814                 }
11815                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
11816                 if (r->in.site_name) {
11817                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11818                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11819                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11820                         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));
11821                 }
11822                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11823         }
11824         if (flags & NDR_OUT) {
11825                 if (r->out.info == NULL) {
11826                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11827                 }
11828                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
11829                 if (*r->out.info) {
11830                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11831                 }
11832                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11833         }
11834         return NDR_ERR_SUCCESS;
11835 }
11836
11837 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
11838 {
11839         uint32_t _ptr_server_unc;
11840         uint32_t _ptr_domain_name;
11841         uint32_t _ptr_domain_guid;
11842         uint32_t _ptr_site_name;
11843         uint32_t _ptr_info;
11844         TALLOC_CTX *_mem_save_server_unc_0;
11845         TALLOC_CTX *_mem_save_domain_name_0;
11846         TALLOC_CTX *_mem_save_domain_guid_0;
11847         TALLOC_CTX *_mem_save_site_name_0;
11848         TALLOC_CTX *_mem_save_info_0;
11849         TALLOC_CTX *_mem_save_info_1;
11850         if (flags & NDR_IN) {
11851                 ZERO_STRUCT(r->out);
11852
11853                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11854                 if (_ptr_server_unc) {
11855                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
11856                 } else {
11857                         r->in.server_unc = NULL;
11858                 }
11859                 if (r->in.server_unc) {
11860                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11861                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11862                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11863                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11864                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11865                                 return 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));
11866                         }
11867                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11868                         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));
11869                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11870                 }
11871                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11872                 if (_ptr_domain_name) {
11873                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11874                 } else {
11875                         r->in.domain_name = NULL;
11876                 }
11877                 if (r->in.domain_name) {
11878                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11879                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11880                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11881                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11882                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11883                                 return 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));
11884                         }
11885                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11886                         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));
11887                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11888                 }
11889                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11890                 if (_ptr_domain_guid) {
11891                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11892                 } else {
11893                         r->in.domain_guid = NULL;
11894                 }
11895                 if (r->in.domain_guid) {
11896                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11897                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11898                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11899                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11900                 }
11901                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
11902                 if (_ptr_site_name) {
11903                         NDR_PULL_ALLOC(ndr, r->in.site_name);
11904                 } else {
11905                         r->in.site_name = NULL;
11906                 }
11907                 if (r->in.site_name) {
11908                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11909                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
11910                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
11911                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
11912                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
11913                                 return 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));
11914                         }
11915                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
11916                         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));
11917                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
11918                 }
11919                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11920                 NDR_PULL_ALLOC(ndr, r->out.info);
11921                 ZERO_STRUCTP(r->out.info);
11922         }
11923         if (flags & NDR_OUT) {
11924                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11925                         NDR_PULL_ALLOC(ndr, r->out.info);
11926                 }
11927                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11928                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11929                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11930                 if (_ptr_info) {
11931                         NDR_PULL_ALLOC(ndr, *r->out.info);
11932                 } else {
11933                         *r->out.info = NULL;
11934                 }
11935                 if (*r->out.info) {
11936                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
11937                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
11938                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11939                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
11940                 }
11941                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11942                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11943         }
11944         return NDR_ERR_SUCCESS;
11945 }
11946
11947 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
11948 {
11949         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
11950         ndr->depth++;
11951         if (flags & NDR_SET_VALUES) {
11952                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11953         }
11954         if (flags & NDR_IN) {
11955                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
11956                 ndr->depth++;
11957                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11958                 ndr->depth++;
11959                 if (r->in.server_unc) {
11960                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11961                 }
11962                 ndr->depth--;
11963                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11964                 ndr->depth++;
11965                 if (r->in.domain_name) {
11966                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11967                 }
11968                 ndr->depth--;
11969                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11970                 ndr->depth++;
11971                 if (r->in.domain_guid) {
11972                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11973                 }
11974                 ndr->depth--;
11975                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
11976                 ndr->depth++;
11977                 if (r->in.site_name) {
11978                         ndr_print_string(ndr, "site_name", r->in.site_name);
11979                 }
11980                 ndr->depth--;
11981                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11982                 ndr->depth--;
11983         }
11984         if (flags & NDR_OUT) {
11985                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
11986                 ndr->depth++;
11987                 ndr_print_ptr(ndr, "info", r->out.info);
11988                 ndr->depth++;
11989                 ndr_print_ptr(ndr, "info", *r->out.info);
11990                 ndr->depth++;
11991                 if (*r->out.info) {
11992                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
11993                 }
11994                 ndr->depth--;
11995                 ndr->depth--;
11996                 ndr_print_WERROR(ndr, "result", r->out.result);
11997                 ndr->depth--;
11998         }
11999         ndr->depth--;
12000 }
12001
12002 static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
12003 {
12004         if (flags & NDR_IN) {
12005                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12006                 if (r->in.computer_name) {
12007                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12008                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12009                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12010                         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));
12011                 }
12012         }
12013         if (flags & NDR_OUT) {
12014                 if (r->out.site == NULL) {
12015                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12016                 }
12017                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.site));
12018                 if (*r->out.site) {
12019                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
12020                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12021                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
12022                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12023                 }
12024                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12025         }
12026         return NDR_ERR_SUCCESS;
12027 }
12028
12029 static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
12030 {
12031         uint32_t _ptr_computer_name;
12032         uint32_t _ptr_site;
12033         TALLOC_CTX *_mem_save_computer_name_0;
12034         TALLOC_CTX *_mem_save_site_0;
12035         TALLOC_CTX *_mem_save_site_1;
12036         if (flags & NDR_IN) {
12037                 ZERO_STRUCT(r->out);
12038
12039                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12040                 if (_ptr_computer_name) {
12041                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
12042                 } else {
12043                         r->in.computer_name = NULL;
12044                 }
12045                 if (r->in.computer_name) {
12046                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12047                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12048                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12049                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12050                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12051                                 return 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));
12052                         }
12053                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12054                         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));
12055                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12056                 }
12057                 NDR_PULL_ALLOC(ndr, r->out.site);
12058                 ZERO_STRUCTP(r->out.site);
12059         }
12060         if (flags & NDR_OUT) {
12061                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12062                         NDR_PULL_ALLOC(ndr, r->out.site);
12063                 }
12064                 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
12065                 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
12066                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site));
12067                 if (_ptr_site) {
12068                         NDR_PULL_ALLOC(ndr, *r->out.site);
12069                 } else {
12070                         *r->out.site = NULL;
12071                 }
12072                 if (*r->out.site) {
12073                         _mem_save_site_1 = NDR_PULL_GET_MEM_CTX(ndr);
12074                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.site, 0);
12075                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
12076                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
12077                         if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
12078                                 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));
12079                         }
12080                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
12081                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
12082                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_1, 0);
12083                 }
12084                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
12085                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12086         }
12087         return NDR_ERR_SUCCESS;
12088 }
12089
12090 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
12091 {
12092         ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
12093         ndr->depth++;
12094         if (flags & NDR_SET_VALUES) {
12095                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12096         }
12097         if (flags & NDR_IN) {
12098                 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
12099                 ndr->depth++;
12100                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12101                 ndr->depth++;
12102                 if (r->in.computer_name) {
12103                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12104                 }
12105                 ndr->depth--;
12106                 ndr->depth--;
12107         }
12108         if (flags & NDR_OUT) {
12109                 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
12110                 ndr->depth++;
12111                 ndr_print_ptr(ndr, "site", r->out.site);
12112                 ndr->depth++;
12113                 ndr_print_ptr(ndr, "site", *r->out.site);
12114                 ndr->depth++;
12115                 if (*r->out.site) {
12116                         ndr_print_string(ndr, "site", *r->out.site);
12117                 }
12118                 ndr->depth--;
12119                 ndr->depth--;
12120                 ndr_print_WERROR(ndr, "result", r->out.result);
12121                 ndr->depth--;
12122         }
12123         ndr->depth--;
12124 }
12125
12126 static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
12127 {
12128         if (flags & NDR_IN) {
12129                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12130                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12131                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12132                 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));
12133                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12134                 if (r->in.computer_name) {
12135                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12136                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12137                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12138                         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));
12139                 }
12140                 if (r->in.credential == NULL) {
12141                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12142                 }
12143                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12144                 if (r->in.return_authenticator == NULL) {
12145                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12146                 }
12147                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12148                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12149                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level));
12150                 NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
12151         }
12152         if (flags & NDR_OUT) {
12153                 if (r->out.return_authenticator == NULL) {
12154                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12155                 }
12156                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12157                 if (r->out.info == NULL) {
12158                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12159                 }
12160                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
12161                 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12162                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12163         }
12164         return NDR_ERR_SUCCESS;
12165 }
12166
12167 static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
12168 {
12169         uint32_t _ptr_computer_name;
12170         TALLOC_CTX *_mem_save_computer_name_0;
12171         TALLOC_CTX *_mem_save_credential_0;
12172         TALLOC_CTX *_mem_save_return_authenticator_0;
12173         TALLOC_CTX *_mem_save_info_0;
12174         if (flags & NDR_IN) {
12175                 ZERO_STRUCT(r->out);
12176
12177                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12178                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12179                 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12180                         return 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));
12181                 }
12182                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12183                 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));
12184                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12185                 if (_ptr_computer_name) {
12186                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
12187                 } else {
12188                         r->in.computer_name = NULL;
12189                 }
12190                 if (r->in.computer_name) {
12191                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12192                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12193                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12194                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12195                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12196                                 return 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));
12197                         }
12198                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12199                         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));
12200                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12201                 }
12202                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12203                         NDR_PULL_ALLOC(ndr, r->in.credential);
12204                 }
12205                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12206                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12207                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12208                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12209                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12210                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
12211                 }
12212                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12213                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12214                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12215                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12216                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12217                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level));
12218                 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
12219                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12220                 *r->out.return_authenticator = *r->in.return_authenticator;
12221                 NDR_PULL_ALLOC(ndr, r->out.info);
12222                 ZERO_STRUCTP(r->out.info);
12223         }
12224         if (flags & NDR_OUT) {
12225                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12226                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12227                 }
12228                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12229                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12230                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12231                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12232                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12233                         NDR_PULL_ALLOC(ndr, r->out.info);
12234                 }
12235                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12236                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12237                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
12238                 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12239                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12240                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12241         }
12242         return NDR_ERR_SUCCESS;
12243 }
12244
12245 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
12246 {
12247         ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
12248         ndr->depth++;
12249         if (flags & NDR_SET_VALUES) {
12250                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12251         }
12252         if (flags & NDR_IN) {
12253                 ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
12254                 ndr->depth++;
12255                 ndr_print_string(ndr, "server_name", r->in.server_name);
12256                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12257                 ndr->depth++;
12258                 if (r->in.computer_name) {
12259                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12260                 }
12261                 ndr->depth--;
12262                 ndr_print_ptr(ndr, "credential", r->in.credential);
12263                 ndr->depth++;
12264                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12265                 ndr->depth--;
12266                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12267                 ndr->depth++;
12268                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12269                 ndr->depth--;
12270                 ndr_print_uint32(ndr, "level", r->in.level);
12271                 ndr_print_set_switch_value(ndr, &r->in.query, r->in.level);
12272                 ndr_print_netr_DomainQuery(ndr, "query", &r->in.query);
12273                 ndr->depth--;
12274         }
12275         if (flags & NDR_OUT) {
12276                 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
12277                 ndr->depth++;
12278                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12279                 ndr->depth++;
12280                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12281                 ndr->depth--;
12282                 ndr_print_ptr(ndr, "info", r->out.info);
12283                 ndr->depth++;
12284                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
12285                 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
12286                 ndr->depth--;
12287                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12288                 ndr->depth--;
12289         }
12290         ndr->depth--;
12291 }
12292
12293 static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
12294 {
12295         if (flags & NDR_IN) {
12296                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12297                 if (r->in.server_name) {
12298                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12299                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12300                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12301                         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));
12302                 }
12303                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12304                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12305                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12306                 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));
12307                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12308                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12309                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12310                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12311                 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));
12312                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
12313                 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password));
12314         }
12315         if (flags & NDR_OUT) {
12316                 if (r->out.return_authenticator == NULL) {
12317                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12318                 }
12319                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12320                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12321         }
12322         return NDR_ERR_SUCCESS;
12323 }
12324
12325 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
12326 {
12327         uint32_t _ptr_server_name;
12328         TALLOC_CTX *_mem_save_server_name_0;
12329         TALLOC_CTX *_mem_save_return_authenticator_0;
12330         if (flags & NDR_IN) {
12331                 ZERO_STRUCT(r->out);
12332
12333                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12334                 if (_ptr_server_name) {
12335                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12336                 } else {
12337                         r->in.server_name = NULL;
12338                 }
12339                 if (r->in.server_name) {
12340                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12341                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12342                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12343                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12344                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12345                                 return 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));
12346                         }
12347                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12348                         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));
12349                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12350                 }
12351                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12352                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12353                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12354                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
12355                 }
12356                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12357                 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));
12358                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12359                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12360                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12361                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12362                         return 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));
12363                 }
12364                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12365                 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));
12366                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
12367                 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password));
12368                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12369                 ZERO_STRUCTP(r->out.return_authenticator);
12370         }
12371         if (flags & NDR_OUT) {
12372                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12373                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12374                 }
12375                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12376                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12377                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12378                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12379                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12380         }
12381         return NDR_ERR_SUCCESS;
12382 }
12383
12384 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
12385 {
12386         ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
12387         ndr->depth++;
12388         if (flags & NDR_SET_VALUES) {
12389                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12390         }
12391         if (flags & NDR_IN) {
12392                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
12393                 ndr->depth++;
12394                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12395                 ndr->depth++;
12396                 if (r->in.server_name) {
12397                         ndr_print_string(ndr, "server_name", r->in.server_name);
12398                 }
12399                 ndr->depth--;
12400                 ndr_print_string(ndr, "account_name", r->in.account_name);
12401                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12402                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12403                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
12404                 ndr_print_netr_CryptPassword(ndr, "new_password", &r->in.new_password);
12405                 ndr->depth--;
12406         }
12407         if (flags & NDR_OUT) {
12408                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
12409                 ndr->depth++;
12410                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12411                 ndr->depth++;
12412                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12413                 ndr->depth--;
12414                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12415                 ndr->depth--;
12416         }
12417         ndr->depth--;
12418 }
12419
12420 static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordGet *r)
12421 {
12422         if (flags & NDR_IN) {
12423                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12424                 if (r->in.server_name) {
12425                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12426                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12427                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12428                         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));
12429                 }
12430                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12431                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12432                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12433                 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));
12434                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12435                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12436                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12437                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12438                 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));
12439                 if (r->in.credential == NULL) {
12440                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12441                 }
12442                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12443         }
12444         if (flags & NDR_OUT) {
12445                 if (r->out.return_authenticator == NULL) {
12446                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12447                 }
12448                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12449                 if (r->out.password == NULL) {
12450                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12451                 }
12452                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
12453                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12454         }
12455         return NDR_ERR_SUCCESS;
12456 }
12457
12458 static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r)
12459 {
12460         uint32_t _ptr_server_name;
12461         TALLOC_CTX *_mem_save_server_name_0;
12462         TALLOC_CTX *_mem_save_credential_0;
12463         TALLOC_CTX *_mem_save_return_authenticator_0;
12464         TALLOC_CTX *_mem_save_password_0;
12465         if (flags & NDR_IN) {
12466                 ZERO_STRUCT(r->out);
12467
12468                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12469                 if (_ptr_server_name) {
12470                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12471                 } else {
12472                         r->in.server_name = NULL;
12473                 }
12474                 if (r->in.server_name) {
12475                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12476                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12477                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12478                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12479                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12480                                 return 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));
12481                         }
12482                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12483                         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));
12484                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12485                 }
12486                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12487                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12488                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12489                         return 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));
12490                 }
12491                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12492                 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));
12493                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12494                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12495                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12496                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12497                         return 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));
12498                 }
12499                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12500                 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));
12501                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12502                         NDR_PULL_ALLOC(ndr, r->in.credential);
12503                 }
12504                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12505                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12506                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12507                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12508                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12509                 ZERO_STRUCTP(r->out.return_authenticator);
12510                 NDR_PULL_ALLOC(ndr, r->out.password);
12511                 ZERO_STRUCTP(r->out.password);
12512         }
12513         if (flags & NDR_OUT) {
12514                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12515                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12516                 }
12517                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12518                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12519                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12520                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12521                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12522                         NDR_PULL_ALLOC(ndr, r->out.password);
12523                 }
12524                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
12525                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
12526                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
12527                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
12528                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12529         }
12530         return NDR_ERR_SUCCESS;
12531 }
12532
12533 _PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordGet *r)
12534 {
12535         ndr_print_struct(ndr, name, "netr_ServerPasswordGet");
12536         ndr->depth++;
12537         if (flags & NDR_SET_VALUES) {
12538                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12539         }
12540         if (flags & NDR_IN) {
12541                 ndr_print_struct(ndr, "in", "netr_ServerPasswordGet");
12542                 ndr->depth++;
12543                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12544                 ndr->depth++;
12545                 if (r->in.server_name) {
12546                         ndr_print_string(ndr, "server_name", r->in.server_name);
12547                 }
12548                 ndr->depth--;
12549                 ndr_print_string(ndr, "account_name", r->in.account_name);
12550                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12551                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12552                 ndr_print_ptr(ndr, "credential", r->in.credential);
12553                 ndr->depth++;
12554                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12555                 ndr->depth--;
12556                 ndr->depth--;
12557         }
12558         if (flags & NDR_OUT) {
12559                 ndr_print_struct(ndr, "out", "netr_ServerPasswordGet");
12560                 ndr->depth++;
12561                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12562                 ndr->depth++;
12563                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12564                 ndr->depth--;
12565                 ndr_print_ptr(ndr, "password", r->out.password);
12566                 ndr->depth++;
12567                 ndr_print_samr_Password(ndr, "password", r->out.password);
12568                 ndr->depth--;
12569                 ndr_print_WERROR(ndr, "result", r->out.result);
12570                 ndr->depth--;
12571         }
12572         ndr->depth--;
12573 }
12574
12575 static enum ndr_err_code ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12576 {
12577         if (flags & NDR_IN) {
12578         }
12579         if (flags & NDR_OUT) {
12580                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12581         }
12582         return NDR_ERR_SUCCESS;
12583 }
12584
12585 static enum ndr_err_code ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
12586 {
12587         if (flags & NDR_IN) {
12588         }
12589         if (flags & NDR_OUT) {
12590                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12591         }
12592         return NDR_ERR_SUCCESS;
12593 }
12594
12595 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12596 {
12597         ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
12598         ndr->depth++;
12599         if (flags & NDR_SET_VALUES) {
12600                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12601         }
12602         if (flags & NDR_IN) {
12603                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
12604                 ndr->depth++;
12605                 ndr->depth--;
12606         }
12607         if (flags & NDR_OUT) {
12608                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
12609                 ndr->depth++;
12610                 ndr_print_WERROR(ndr, "result", r->out.result);
12611                 ndr->depth--;
12612         }
12613         ndr->depth--;
12614 }
12615
12616 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesW *r)
12617 {
12618         uint32_t cntr_addresses_1;
12619         if (flags & NDR_IN) {
12620                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12621                 if (r->in.server_name) {
12622                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12623                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12624                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12625                         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));
12626                 }
12627                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12628                 if (r->in.addresses == NULL) {
12629                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12630                 }
12631                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12632                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12633                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12634                 }
12635                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12636                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12637                 }
12638         }
12639         if (flags & NDR_OUT) {
12640                 if (r->out.ctr == NULL) {
12641                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12642                 }
12643                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
12644                 if (*r->out.ctr) {
12645                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12646                 }
12647                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12648         }
12649         return NDR_ERR_SUCCESS;
12650 }
12651
12652 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r)
12653 {
12654         uint32_t _ptr_server_name;
12655         uint32_t cntr_addresses_1;
12656         uint32_t _ptr_ctr;
12657         TALLOC_CTX *_mem_save_server_name_0;
12658         TALLOC_CTX *_mem_save_addresses_1;
12659         TALLOC_CTX *_mem_save_ctr_0;
12660         TALLOC_CTX *_mem_save_ctr_1;
12661         if (flags & NDR_IN) {
12662                 ZERO_STRUCT(r->out);
12663
12664                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12665                 if (_ptr_server_name) {
12666                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12667                 } else {
12668                         r->in.server_name = NULL;
12669                 }
12670                 if (r->in.server_name) {
12671                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12672                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12673                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12674                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12675                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12676                                 return 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));
12677                         }
12678                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12679                         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));
12680                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12681                 }
12682                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
12683                 if (r->in.count < 0 || r->in.count > 32000) {
12684                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
12685                 }
12686                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
12687                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12688                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
12689                 }
12690                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
12691                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
12692                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12693                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12694                 }
12695                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12696                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12697                 }
12698                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
12699                 NDR_PULL_ALLOC(ndr, r->out.ctr);
12700                 ZERO_STRUCTP(r->out.ctr);
12701                 if (r->in.addresses) {
12702                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
12703                 }
12704         }
12705         if (flags & NDR_OUT) {
12706                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12707                         NDR_PULL_ALLOC(ndr, r->out.ctr);
12708                 }
12709                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
12710                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12711                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
12712                 if (_ptr_ctr) {
12713                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
12714                 } else {
12715                         *r->out.ctr = NULL;
12716                 }
12717                 if (*r->out.ctr) {
12718                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
12719                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
12720                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12721                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
12722                 }
12723                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
12724                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12725         }
12726         return NDR_ERR_SUCCESS;
12727 }
12728
12729 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesW *r)
12730 {
12731         uint32_t cntr_addresses_1;
12732         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesW");
12733         ndr->depth++;
12734         if (flags & NDR_SET_VALUES) {
12735                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12736         }
12737         if (flags & NDR_IN) {
12738                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesW");
12739                 ndr->depth++;
12740                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12741                 ndr->depth++;
12742                 if (r->in.server_name) {
12743                         ndr_print_string(ndr, "server_name", r->in.server_name);
12744                 }
12745                 ndr->depth--;
12746                 ndr_print_uint32(ndr, "count", r->in.count);
12747                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
12748                 ndr->depth++;
12749                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", r->in.count);
12750                 ndr->depth++;
12751                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
12752                         char *idx_1=NULL;
12753                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
12754                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
12755                                 free(idx_1);
12756                         }
12757                 }
12758                 ndr->depth--;
12759                 ndr->depth--;
12760                 ndr->depth--;
12761         }
12762         if (flags & NDR_OUT) {
12763                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesW");
12764                 ndr->depth++;
12765                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
12766                 ndr->depth++;
12767                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
12768                 ndr->depth++;
12769                 if (*r->out.ctr) {
12770                         ndr_print_netr_DsRAddressToSitenamesWCtr(ndr, "ctr", *r->out.ctr);
12771                 }
12772                 ndr->depth--;
12773                 ndr->depth--;
12774                 ndr_print_WERROR(ndr, "result", r->out.result);
12775                 ndr->depth--;
12776         }
12777         ndr->depth--;
12778 }
12779
12780 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
12781 {
12782         if (flags & NDR_IN) {
12783                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
12784                 if (r->in.server_unc) {
12785                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12786                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12787                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12788                         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));
12789                 }
12790                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
12791                 if (r->in.client_account) {
12792                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12793                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12794                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12795                         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));
12796                 }
12797                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.mask));
12798                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12799                 if (r->in.domain_name) {
12800                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12801                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12802                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12803                         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));
12804                 }
12805                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
12806                 if (r->in.domain_guid) {
12807                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
12808                 }
12809                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
12810                 if (r->in.site_name) {
12811                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12812                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12813                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12814                         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));
12815                 }
12816                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
12817         }
12818         if (flags & NDR_OUT) {
12819                 if (r->out.info == NULL) {
12820                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12821                 }
12822                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
12823                 if (*r->out.info) {
12824                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12825                 }
12826                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12827         }
12828         return NDR_ERR_SUCCESS;
12829 }
12830
12831 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
12832 {
12833         uint32_t _ptr_server_unc;
12834         uint32_t _ptr_client_account;
12835         uint32_t _ptr_domain_name;
12836         uint32_t _ptr_domain_guid;
12837         uint32_t _ptr_site_name;
12838         uint32_t _ptr_info;
12839         TALLOC_CTX *_mem_save_server_unc_0;
12840         TALLOC_CTX *_mem_save_client_account_0;
12841         TALLOC_CTX *_mem_save_domain_name_0;
12842         TALLOC_CTX *_mem_save_domain_guid_0;
12843         TALLOC_CTX *_mem_save_site_name_0;
12844         TALLOC_CTX *_mem_save_info_0;
12845         TALLOC_CTX *_mem_save_info_1;
12846         if (flags & NDR_IN) {
12847                 ZERO_STRUCT(r->out);
12848
12849                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12850                 if (_ptr_server_unc) {
12851                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
12852                 } else {
12853                         r->in.server_unc = NULL;
12854                 }
12855                 if (r->in.server_unc) {
12856                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12857                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12858                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12859                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12860                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12861                                 return 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));
12862                         }
12863                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12864                         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));
12865                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12866                 }
12867                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
12868                 if (_ptr_client_account) {
12869                         NDR_PULL_ALLOC(ndr, r->in.client_account);
12870                 } else {
12871                         r->in.client_account = NULL;
12872                 }
12873                 if (r->in.client_account) {
12874                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
12875                         NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
12876                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
12877                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
12878                         if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
12879                                 return 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));
12880                         }
12881                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
12882                         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));
12883                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
12884                 }
12885                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask));
12886                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12887                 if (_ptr_domain_name) {
12888                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12889                 } else {
12890                         r->in.domain_name = NULL;
12891                 }
12892                 if (r->in.domain_name) {
12893                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12894                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12895                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12896                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12897                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12898                                 return 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));
12899                         }
12900                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12901                         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));
12902                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12903                 }
12904                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12905                 if (_ptr_domain_guid) {
12906                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12907                 } else {
12908                         r->in.domain_guid = NULL;
12909                 }
12910                 if (r->in.domain_guid) {
12911                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12912                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12913                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
12914                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12915                 }
12916                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
12917                 if (_ptr_site_name) {
12918                         NDR_PULL_ALLOC(ndr, r->in.site_name);
12919                 } else {
12920                         r->in.site_name = NULL;
12921                 }
12922                 if (r->in.site_name) {
12923                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12924                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
12925                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
12926                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
12927                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
12928                                 return 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));
12929                         }
12930                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
12931                         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));
12932                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
12933                 }
12934                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12935                 NDR_PULL_ALLOC(ndr, r->out.info);
12936                 ZERO_STRUCTP(r->out.info);
12937         }
12938         if (flags & NDR_OUT) {
12939                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12940                         NDR_PULL_ALLOC(ndr, r->out.info);
12941                 }
12942                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12943                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12944                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12945                 if (_ptr_info) {
12946                         NDR_PULL_ALLOC(ndr, *r->out.info);
12947                 } else {
12948                         *r->out.info = NULL;
12949                 }
12950                 if (*r->out.info) {
12951                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
12952                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
12953                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12954                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
12955                 }
12956                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12957                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12958         }
12959         return NDR_ERR_SUCCESS;
12960 }
12961
12962 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
12963 {
12964         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
12965         ndr->depth++;
12966         if (flags & NDR_SET_VALUES) {
12967                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12968         }
12969         if (flags & NDR_IN) {
12970                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
12971                 ndr->depth++;
12972                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
12973                 ndr->depth++;
12974                 if (r->in.server_unc) {
12975                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
12976                 }
12977                 ndr->depth--;
12978                 ndr_print_ptr(ndr, "client_account", r->in.client_account);
12979                 ndr->depth++;
12980                 if (r->in.client_account) {
12981                         ndr_print_string(ndr, "client_account", r->in.client_account);
12982                 }
12983                 ndr->depth--;
12984                 ndr_print_samr_AcctFlags(ndr, "mask", r->in.mask);
12985                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12986                 ndr->depth++;
12987                 if (r->in.domain_name) {
12988                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12989                 }
12990                 ndr->depth--;
12991                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
12992                 ndr->depth++;
12993                 if (r->in.domain_guid) {
12994                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
12995                 }
12996                 ndr->depth--;
12997                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
12998                 ndr->depth++;
12999                 if (r->in.site_name) {
13000                         ndr_print_string(ndr, "site_name", r->in.site_name);
13001                 }
13002                 ndr->depth--;
13003                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
13004                 ndr->depth--;
13005         }
13006         if (flags & NDR_OUT) {
13007                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
13008                 ndr->depth++;
13009                 ndr_print_ptr(ndr, "info", r->out.info);
13010                 ndr->depth++;
13011                 ndr_print_ptr(ndr, "info", *r->out.info);
13012                 ndr->depth++;
13013                 if (*r->out.info) {
13014                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
13015                 }
13016                 ndr->depth--;
13017                 ndr->depth--;
13018                 ndr_print_WERROR(ndr, "result", r->out.result);
13019                 ndr->depth--;
13020         }
13021         ndr->depth--;
13022 }
13023
13024 static enum ndr_err_code ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13025 {
13026         if (flags & NDR_IN) {
13027         }
13028         if (flags & NDR_OUT) {
13029                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13030         }
13031         return NDR_ERR_SUCCESS;
13032 }
13033
13034 static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13035 {
13036         if (flags & NDR_IN) {
13037         }
13038         if (flags & NDR_OUT) {
13039                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13040         }
13041         return NDR_ERR_SUCCESS;
13042 }
13043
13044 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13045 {
13046         ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13047         ndr->depth++;
13048         if (flags & NDR_SET_VALUES) {
13049                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13050         }
13051         if (flags & NDR_IN) {
13052                 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13053                 ndr->depth++;
13054                 ndr->depth--;
13055         }
13056         if (flags & NDR_OUT) {
13057                 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13058                 ndr->depth++;
13059                 ndr_print_WERROR(ndr, "result", r->out.result);
13060                 ndr->depth--;
13061         }
13062         ndr->depth--;
13063 }
13064
13065 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
13066 {
13067         if (flags & NDR_IN) {
13068                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13069                 if (r->in.server_name) {
13070                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13071                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13072                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13073                         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));
13074                 }
13075         }
13076         if (flags & NDR_OUT) {
13077                 if (r->out.dom_trust_list == NULL) {
13078                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13079                 }
13080                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
13081                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13082         }
13083         return NDR_ERR_SUCCESS;
13084 }
13085
13086 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r)
13087 {
13088         uint32_t _ptr_server_name;
13089         TALLOC_CTX *_mem_save_server_name_0;
13090         TALLOC_CTX *_mem_save_dom_trust_list_0;
13091         if (flags & NDR_IN) {
13092                 ZERO_STRUCT(r->out);
13093
13094                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13095                 if (_ptr_server_name) {
13096                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13097                 } else {
13098                         r->in.server_name = NULL;
13099                 }
13100                 if (r->in.server_name) {
13101                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13102                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13103                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13104                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13105                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13106                                 return 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));
13107                         }
13108                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13109                         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));
13110                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13111                 }
13112                 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13113                 ZERO_STRUCTP(r->out.dom_trust_list);
13114         }
13115         if (flags & NDR_OUT) {
13116                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13117                         NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13118                 }
13119                 _mem_save_dom_trust_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
13120                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dom_trust_list, LIBNDR_FLAG_REF_ALLOC);
13121                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
13122                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_trust_list_0, LIBNDR_FLAG_REF_ALLOC);
13123                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13124         }
13125         return NDR_ERR_SUCCESS;
13126 }
13127
13128 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
13129 {
13130         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomainsEx");
13131         ndr->depth++;
13132         if (flags & NDR_SET_VALUES) {
13133                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13134         }
13135         if (flags & NDR_IN) {
13136                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomainsEx");
13137                 ndr->depth++;
13138                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13139                 ndr->depth++;
13140                 if (r->in.server_name) {
13141                         ndr_print_string(ndr, "server_name", r->in.server_name);
13142                 }
13143                 ndr->depth--;
13144                 ndr->depth--;
13145         }
13146         if (flags & NDR_OUT) {
13147                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomainsEx");
13148                 ndr->depth++;
13149                 ndr_print_ptr(ndr, "dom_trust_list", r->out.dom_trust_list);
13150                 ndr->depth++;
13151                 ndr_print_netr_DomainTrustList(ndr, "dom_trust_list", r->out.dom_trust_list);
13152                 ndr->depth--;
13153                 ndr_print_WERROR(ndr, "result", r->out.result);
13154                 ndr->depth--;
13155         }
13156         ndr->depth--;
13157 }
13158
13159 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesExW *r)
13160 {
13161         uint32_t cntr_addresses_1;
13162         if (flags & NDR_IN) {
13163                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13164                 if (r->in.server_name) {
13165                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13166                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13167                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13168                         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));
13169                 }
13170                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13171                 if (r->in.addresses == NULL) {
13172                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13173                 }
13174                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13175                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13176                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13177                 }
13178                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13179                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13180                 }
13181         }
13182         if (flags & NDR_OUT) {
13183                 if (r->out.ctr == NULL) {
13184                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13185                 }
13186                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
13187                 if (*r->out.ctr) {
13188                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13189                 }
13190                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13191         }
13192         return NDR_ERR_SUCCESS;
13193 }
13194
13195 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r)
13196 {
13197         uint32_t _ptr_server_name;
13198         uint32_t cntr_addresses_1;
13199         uint32_t _ptr_ctr;
13200         TALLOC_CTX *_mem_save_server_name_0;
13201         TALLOC_CTX *_mem_save_addresses_1;
13202         TALLOC_CTX *_mem_save_ctr_0;
13203         TALLOC_CTX *_mem_save_ctr_1;
13204         if (flags & NDR_IN) {
13205                 ZERO_STRUCT(r->out);
13206
13207                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13208                 if (_ptr_server_name) {
13209                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13210                 } else {
13211                         r->in.server_name = NULL;
13212                 }
13213                 if (r->in.server_name) {
13214                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13215                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13216                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13217                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13218                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13219                                 return 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));
13220                         }
13221                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13222                         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));
13223                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13224                 }
13225                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
13226                 if (r->in.count < 0 || r->in.count > 32000) {
13227                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13228                 }
13229                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
13230                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13231                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
13232                 }
13233                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
13234                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
13235                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13236                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13237                 }
13238                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13239                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13240                 }
13241                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
13242                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13243                 ZERO_STRUCTP(r->out.ctr);
13244                 if (r->in.addresses) {
13245                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
13246                 }
13247         }
13248         if (flags & NDR_OUT) {
13249                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13250                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13251                 }
13252                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13253                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13254                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
13255                 if (_ptr_ctr) {
13256                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
13257                 } else {
13258                         *r->out.ctr = NULL;
13259                 }
13260                 if (*r->out.ctr) {
13261                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
13262                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
13263                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13264                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
13265                 }
13266                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13267                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13268         }
13269         return NDR_ERR_SUCCESS;
13270 }
13271
13272 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesExW *r)
13273 {
13274         uint32_t cntr_addresses_1;
13275         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExW");
13276         ndr->depth++;
13277         if (flags & NDR_SET_VALUES) {
13278                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13279         }
13280         if (flags & NDR_IN) {
13281                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesExW");
13282                 ndr->depth++;
13283                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13284                 ndr->depth++;
13285                 if (r->in.server_name) {
13286                         ndr_print_string(ndr, "server_name", r->in.server_name);
13287                 }
13288                 ndr->depth--;
13289                 ndr_print_uint32(ndr, "count", r->in.count);
13290                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
13291                 ndr->depth++;
13292                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", r->in.count);
13293                 ndr->depth++;
13294                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
13295                         char *idx_1=NULL;
13296                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
13297                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
13298                                 free(idx_1);
13299                         }
13300                 }
13301                 ndr->depth--;
13302                 ndr->depth--;
13303                 ndr->depth--;
13304         }
13305         if (flags & NDR_OUT) {
13306                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesExW");
13307                 ndr->depth++;
13308                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13309                 ndr->depth++;
13310                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
13311                 ndr->depth++;
13312                 if (*r->out.ctr) {
13313                         ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr, "ctr", *r->out.ctr);
13314                 }
13315                 ndr->depth--;
13316                 ndr->depth--;
13317                 ndr_print_WERROR(ndr, "result", r->out.result);
13318                 ndr->depth--;
13319         }
13320         ndr->depth--;
13321 }
13322
13323 static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *ndr, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13324 {
13325         if (flags & NDR_IN) {
13326                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13327                 if (r->in.server_name) {
13328                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13329                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13330                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13331                         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));
13332                 }
13333         }
13334         if (flags & NDR_OUT) {
13335                 if (r->out.ctr == NULL) {
13336                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13337                 }
13338                 NDR_CHECK(ndr_push_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13339                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13340         }
13341         return NDR_ERR_SUCCESS;
13342 }
13343
13344 static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r)
13345 {
13346         uint32_t _ptr_server_name;
13347         TALLOC_CTX *_mem_save_server_name_0;
13348         TALLOC_CTX *_mem_save_ctr_0;
13349         if (flags & NDR_IN) {
13350                 ZERO_STRUCT(r->out);
13351
13352                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13353                 if (_ptr_server_name) {
13354                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13355                 } else {
13356                         r->in.server_name = NULL;
13357                 }
13358                 if (r->in.server_name) {
13359                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13360                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13361                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13362                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13363                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13364                                 return 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));
13365                         }
13366                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13367                         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));
13368                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13369                 }
13370                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13371                 ZERO_STRUCTP(r->out.ctr);
13372         }
13373         if (flags & NDR_OUT) {
13374                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13375                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13376                 }
13377                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13378                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13379                 NDR_CHECK(ndr_pull_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13380                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13381                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13382         }
13383         return NDR_ERR_SUCCESS;
13384 }
13385
13386 _PUBLIC_ void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13387 {
13388         ndr_print_struct(ndr, name, "netr_DsrGetDcSiteCoverageW");
13389         ndr->depth++;
13390         if (flags & NDR_SET_VALUES) {
13391                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13392         }
13393         if (flags & NDR_IN) {
13394                 ndr_print_struct(ndr, "in", "netr_DsrGetDcSiteCoverageW");
13395                 ndr->depth++;
13396                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13397                 ndr->depth++;
13398                 if (r->in.server_name) {
13399                         ndr_print_string(ndr, "server_name", r->in.server_name);
13400                 }
13401                 ndr->depth--;
13402                 ndr->depth--;
13403         }
13404         if (flags & NDR_OUT) {
13405                 ndr_print_struct(ndr, "out", "netr_DsrGetDcSiteCoverageW");
13406                 ndr->depth++;
13407                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13408                 ndr->depth++;
13409                 ndr_print_DcSitesCtr(ndr, "ctr", r->out.ctr);
13410                 ndr->depth--;
13411                 ndr_print_WERROR(ndr, "result", r->out.result);
13412                 ndr->depth--;
13413         }
13414         ndr->depth--;
13415 }
13416
13417 static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
13418 {
13419         if (flags & NDR_IN) {
13420                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13421                 if (r->in.server_name) {
13422                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13423                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13424                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13425                         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));
13426                 }
13427                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13428                 if (r->in.computer_name) {
13429                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13430                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13431                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13432                         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));
13433                 }
13434                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
13435                 if (r->in.logon == NULL) {
13436                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13437                 }
13438                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
13439                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
13440                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
13441                 if (r->in.flags == NULL) {
13442                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13443                 }
13444                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
13445         }
13446         if (flags & NDR_OUT) {
13447                 if (r->out.validation == NULL) {
13448                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13449                 }
13450                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13451                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13452                 if (r->out.authoritative == NULL) {
13453                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13454                 }
13455                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
13456                 if (r->out.flags == NULL) {
13457                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13458                 }
13459                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
13460                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13461         }
13462         return NDR_ERR_SUCCESS;
13463 }
13464
13465 static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
13466 {
13467         uint32_t _ptr_server_name;
13468         uint32_t _ptr_computer_name;
13469         TALLOC_CTX *_mem_save_server_name_0;
13470         TALLOC_CTX *_mem_save_computer_name_0;
13471         TALLOC_CTX *_mem_save_logon_0;
13472         TALLOC_CTX *_mem_save_validation_0;
13473         TALLOC_CTX *_mem_save_authoritative_0;
13474         TALLOC_CTX *_mem_save_flags_0;
13475         if (flags & NDR_IN) {
13476                 ZERO_STRUCT(r->out);
13477
13478                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13479                 if (_ptr_server_name) {
13480                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13481                 } else {
13482                         r->in.server_name = NULL;
13483                 }
13484                 if (r->in.server_name) {
13485                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13486                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13487                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13488                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13489                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13490                                 return 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));
13491                         }
13492                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13493                         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));
13494                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13495                 }
13496                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13497                 if (_ptr_computer_name) {
13498                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13499                 } else {
13500                         r->in.computer_name = NULL;
13501                 }
13502                 if (r->in.computer_name) {
13503                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13504                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13505                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13506                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13507                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13508                                 return 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));
13509                         }
13510                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13511                         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));
13512                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13513                 }
13514                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
13515                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13516                         NDR_PULL_ALLOC(ndr, r->in.logon);
13517                 }
13518                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
13519                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
13520                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
13521                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
13522                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
13523                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
13524                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13525                         NDR_PULL_ALLOC(ndr, r->in.flags);
13526                 }
13527                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13528                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
13529                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
13530                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13531                 NDR_PULL_ALLOC(ndr, r->out.validation);
13532                 ZERO_STRUCTP(r->out.validation);
13533                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
13534                 ZERO_STRUCTP(r->out.authoritative);
13535                 NDR_PULL_ALLOC(ndr, r->out.flags);
13536                 *r->out.flags = *r->in.flags;
13537         }
13538         if (flags & NDR_OUT) {
13539                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13540                         NDR_PULL_ALLOC(ndr, r->out.validation);
13541                 }
13542                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
13543                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
13544                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13545                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13546                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
13547                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13548                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
13549                 }
13550                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
13551                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
13552                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
13553                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
13554                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13555                         NDR_PULL_ALLOC(ndr, r->out.flags);
13556                 }
13557                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13558                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
13559                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
13560                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13561                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13562         }
13563         return NDR_ERR_SUCCESS;
13564 }
13565
13566 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
13567 {
13568         ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
13569         ndr->depth++;
13570         if (flags & NDR_SET_VALUES) {
13571                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13572         }
13573         if (flags & NDR_IN) {
13574                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
13575                 ndr->depth++;
13576                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13577                 ndr->depth++;
13578                 if (r->in.server_name) {
13579                         ndr_print_string(ndr, "server_name", r->in.server_name);
13580                 }
13581                 ndr->depth--;
13582                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13583                 ndr->depth++;
13584                 if (r->in.computer_name) {
13585                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
13586                 }
13587                 ndr->depth--;
13588                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
13589                 ndr_print_ptr(ndr, "logon", r->in.logon);
13590                 ndr->depth++;
13591                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
13592                 ndr_print_netr_LogonInfo(ndr, "logon", r->in.logon);
13593                 ndr->depth--;
13594                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
13595                 ndr_print_ptr(ndr, "flags", r->in.flags);
13596                 ndr->depth++;
13597                 ndr_print_uint32(ndr, "flags", *r->in.flags);
13598                 ndr->depth--;
13599                 ndr->depth--;
13600         }
13601         if (flags & NDR_OUT) {
13602                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
13603                 ndr->depth++;
13604                 ndr_print_ptr(ndr, "validation", r->out.validation);
13605                 ndr->depth++;
13606                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
13607                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
13608                 ndr->depth--;
13609                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
13610                 ndr->depth++;
13611                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
13612                 ndr->depth--;
13613                 ndr_print_ptr(ndr, "flags", r->out.flags);
13614                 ndr->depth++;
13615                 ndr_print_uint32(ndr, "flags", *r->out.flags);
13616                 ndr->depth--;
13617                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13618                 ndr->depth--;
13619         }
13620         ndr->depth--;
13621 }
13622
13623 static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13624 {
13625         if (flags & NDR_IN) {
13626                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13627                 if (r->in.server_name) {
13628                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13629                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13630                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13631                         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));
13632                 }
13633                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
13634         }
13635         if (flags & NDR_OUT) {
13636                 if (r->out.trusts == NULL) {
13637                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13638                 }
13639                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13640                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13641         }
13642         return NDR_ERR_SUCCESS;
13643 }
13644
13645 static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
13646 {
13647         uint32_t _ptr_server_name;
13648         TALLOC_CTX *_mem_save_server_name_0;
13649         TALLOC_CTX *_mem_save_trusts_0;
13650         if (flags & NDR_IN) {
13651                 ZERO_STRUCT(r->out);
13652
13653                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13654                 if (_ptr_server_name) {
13655                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13656                 } else {
13657                         r->in.server_name = NULL;
13658                 }
13659                 if (r->in.server_name) {
13660                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13661                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13662                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13663                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13664                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13665                                 return 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));
13666                         }
13667                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13668                         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));
13669                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13670                 }
13671                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
13672                 NDR_PULL_ALLOC(ndr, r->out.trusts);
13673                 ZERO_STRUCTP(r->out.trusts);
13674         }
13675         if (flags & NDR_OUT) {
13676                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13677                         NDR_PULL_ALLOC(ndr, r->out.trusts);
13678                 }
13679                 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
13680                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
13681                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13682                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, LIBNDR_FLAG_REF_ALLOC);
13683                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13684         }
13685         return NDR_ERR_SUCCESS;
13686 }
13687
13688 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13689 {
13690         ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
13691         ndr->depth++;
13692         if (flags & NDR_SET_VALUES) {
13693                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13694         }
13695         if (flags & NDR_IN) {
13696                 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
13697                 ndr->depth++;
13698                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13699                 ndr->depth++;
13700                 if (r->in.server_name) {
13701                         ndr_print_string(ndr, "server_name", r->in.server_name);
13702                 }
13703                 ndr->depth--;
13704                 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
13705                 ndr->depth--;
13706         }
13707         if (flags & NDR_OUT) {
13708                 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
13709                 ndr->depth++;
13710                 ndr_print_ptr(ndr, "trusts", r->out.trusts);
13711                 ndr->depth++;
13712                 ndr_print_netr_DomainTrustList(ndr, "trusts", r->out.trusts);
13713                 ndr->depth--;
13714                 ndr_print_WERROR(ndr, "result", r->out.result);
13715                 ndr->depth--;
13716         }
13717         ndr->depth--;
13718 }
13719
13720 static enum ndr_err_code ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push *ndr, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
13721 {
13722         if (flags & NDR_IN) {
13723                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13724                 if (r->in.server_name) {
13725                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13726                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13727                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13728                         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));
13729                 }
13730                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain));
13731                 if (r->in.domain) {
13732                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
13733                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13734                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
13735                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13736                 }
13737                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
13738                 if (r->in.domain_guid) {
13739                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
13740                 }
13741                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dsa_guid));
13742                 if (r->in.dsa_guid) {
13743                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.dsa_guid));
13744                 }
13745                 if (r->in.dns_host == NULL) {
13746                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13747                 }
13748                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
13749                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13750                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
13751                 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));
13752         }
13753         if (flags & NDR_OUT) {
13754                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13755         }
13756         return NDR_ERR_SUCCESS;
13757 }
13758
13759 static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull *ndr, int flags, struct netr_DsrDeregisterDNSHostRecords *r)
13760 {
13761         uint32_t _ptr_server_name;
13762         uint32_t _ptr_domain;
13763         uint32_t _ptr_domain_guid;
13764         uint32_t _ptr_dsa_guid;
13765         TALLOC_CTX *_mem_save_server_name_0;
13766         TALLOC_CTX *_mem_save_domain_0;
13767         TALLOC_CTX *_mem_save_domain_guid_0;
13768         TALLOC_CTX *_mem_save_dsa_guid_0;
13769         if (flags & NDR_IN) {
13770                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13771                 if (_ptr_server_name) {
13772                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13773                 } else {
13774                         r->in.server_name = NULL;
13775                 }
13776                 if (r->in.server_name) {
13777                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13778                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13779                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13780                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13781                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13782                                 return 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));
13783                         }
13784                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13785                         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));
13786                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13787                 }
13788                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
13789                 if (_ptr_domain) {
13790                         NDR_PULL_ALLOC(ndr, r->in.domain);
13791                 } else {
13792                         r->in.domain = NULL;
13793                 }
13794                 if (r->in.domain) {
13795                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
13796                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain, 0);
13797                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
13798                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
13799                         if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
13800                                 return 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));
13801                         }
13802                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t)));
13803                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t), CH_UTF16));
13804                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
13805                 }
13806                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
13807                 if (_ptr_domain_guid) {
13808                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
13809                 } else {
13810                         r->in.domain_guid = NULL;
13811                 }
13812                 if (r->in.domain_guid) {
13813                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13814                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
13815                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
13816                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
13817                 }
13818                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_guid));
13819                 if (_ptr_dsa_guid) {
13820                         NDR_PULL_ALLOC(ndr, r->in.dsa_guid);
13821                 } else {
13822                         r->in.dsa_guid = NULL;
13823                 }
13824                 if (r->in.dsa_guid) {
13825                         _mem_save_dsa_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13826                         NDR_PULL_SET_MEM_CTX(ndr, r->in.dsa_guid, 0);
13827                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.dsa_guid));
13828                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_guid_0, 0);
13829                 }
13830                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_host));
13831                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_host));
13832                 if (ndr_get_array_length(ndr, &r->in.dns_host) > ndr_get_array_size(ndr, &r->in.dns_host)) {
13833                         return 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));
13834                 }
13835                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t)));
13836                 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));
13837         }
13838         if (flags & NDR_OUT) {
13839                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13840         }
13841         return NDR_ERR_SUCCESS;
13842 }
13843
13844 _PUBLIC_ void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
13845 {
13846         ndr_print_struct(ndr, name, "netr_DsrDeregisterDNSHostRecords");
13847         ndr->depth++;
13848         if (flags & NDR_SET_VALUES) {
13849                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13850         }
13851         if (flags & NDR_IN) {
13852                 ndr_print_struct(ndr, "in", "netr_DsrDeregisterDNSHostRecords");
13853                 ndr->depth++;
13854                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13855                 ndr->depth++;
13856                 if (r->in.server_name) {
13857                         ndr_print_string(ndr, "server_name", r->in.server_name);
13858                 }
13859                 ndr->depth--;
13860                 ndr_print_ptr(ndr, "domain", r->in.domain);
13861                 ndr->depth++;
13862                 if (r->in.domain) {
13863                         ndr_print_string(ndr, "domain", r->in.domain);
13864                 }
13865                 ndr->depth--;
13866                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
13867                 ndr->depth++;
13868                 if (r->in.domain_guid) {
13869                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
13870                 }
13871                 ndr->depth--;
13872                 ndr_print_ptr(ndr, "dsa_guid", r->in.dsa_guid);
13873                 ndr->depth++;
13874                 if (r->in.dsa_guid) {
13875                         ndr_print_GUID(ndr, "dsa_guid", r->in.dsa_guid);
13876                 }
13877                 ndr->depth--;
13878                 ndr_print_ptr(ndr, "dns_host", r->in.dns_host);
13879                 ndr->depth++;
13880                 ndr_print_string(ndr, "dns_host", r->in.dns_host);
13881                 ndr->depth--;
13882                 ndr->depth--;
13883         }
13884         if (flags & NDR_OUT) {
13885                 ndr_print_struct(ndr, "out", "netr_DsrDeregisterDNSHostRecords");
13886                 ndr->depth++;
13887                 ndr_print_WERROR(ndr, "result", r->out.result);
13888                 ndr->depth--;
13889         }
13890         ndr->depth--;
13891 }
13892
13893 static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push *ndr, int flags, const struct netr_ServerTrustPasswordsGet *r)
13894 {
13895         if (flags & NDR_IN) {
13896                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13897                 if (r->in.server_name) {
13898                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13899                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13900                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13901                         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));
13902                 }
13903                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13904                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13905                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13906                 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));
13907                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13908                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13909                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13910                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13911                 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));
13912                 if (r->in.credential == NULL) {
13913                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13914                 }
13915                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13916         }
13917         if (flags & NDR_OUT) {
13918                 if (r->out.return_authenticator == NULL) {
13919                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13920                 }
13921                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13922                 if (r->out.password == NULL) {
13923                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13924                 }
13925                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
13926                 if (r->out.password2 == NULL) {
13927                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13928                 }
13929                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password2));
13930                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13931         }
13932         return NDR_ERR_SUCCESS;
13933 }
13934
13935 static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r)
13936 {
13937         uint32_t _ptr_server_name;
13938         TALLOC_CTX *_mem_save_server_name_0;
13939         TALLOC_CTX *_mem_save_credential_0;
13940         TALLOC_CTX *_mem_save_return_authenticator_0;
13941         TALLOC_CTX *_mem_save_password_0;
13942         TALLOC_CTX *_mem_save_password2_0;
13943         if (flags & NDR_IN) {
13944                 ZERO_STRUCT(r->out);
13945
13946                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13947                 if (_ptr_server_name) {
13948                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13949                 } else {
13950                         r->in.server_name = NULL;
13951                 }
13952                 if (r->in.server_name) {
13953                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13954                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13955                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13956                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13957                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13958                                 return 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));
13959                         }
13960                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13961                         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));
13962                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13963                 }
13964                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13965                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13966                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13967                         return 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));
13968                 }
13969                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13970                 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));
13971                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13972                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13973                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13974                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13975                         return 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));
13976                 }
13977                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13978                 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));
13979                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13980                         NDR_PULL_ALLOC(ndr, r->in.credential);
13981                 }
13982                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13983                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13984                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13985                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13986                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13987                 ZERO_STRUCTP(r->out.return_authenticator);
13988                 NDR_PULL_ALLOC(ndr, r->out.password);
13989                 ZERO_STRUCTP(r->out.password);
13990                 NDR_PULL_ALLOC(ndr, r->out.password2);
13991                 ZERO_STRUCTP(r->out.password2);
13992         }
13993         if (flags & NDR_OUT) {
13994                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13995                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13996                 }
13997                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13998                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13999                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14000                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14001                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14002                         NDR_PULL_ALLOC(ndr, r->out.password);
14003                 }
14004                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
14005                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
14006                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
14007                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
14008                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14009                         NDR_PULL_ALLOC(ndr, r->out.password2);
14010                 }
14011                 _mem_save_password2_0 = NDR_PULL_GET_MEM_CTX(ndr);
14012                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password2, LIBNDR_FLAG_REF_ALLOC);
14013                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password2));
14014                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password2_0, LIBNDR_FLAG_REF_ALLOC);
14015                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14016         }
14017         return NDR_ERR_SUCCESS;
14018 }
14019
14020 _PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerTrustPasswordsGet *r)
14021 {
14022         ndr_print_struct(ndr, name, "netr_ServerTrustPasswordsGet");
14023         ndr->depth++;
14024         if (flags & NDR_SET_VALUES) {
14025                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14026         }
14027         if (flags & NDR_IN) {
14028                 ndr_print_struct(ndr, "in", "netr_ServerTrustPasswordsGet");
14029                 ndr->depth++;
14030                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14031                 ndr->depth++;
14032                 if (r->in.server_name) {
14033                         ndr_print_string(ndr, "server_name", r->in.server_name);
14034                 }
14035                 ndr->depth--;
14036                 ndr_print_string(ndr, "account_name", r->in.account_name);
14037                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
14038                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
14039                 ndr_print_ptr(ndr, "credential", r->in.credential);
14040                 ndr->depth++;
14041                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14042                 ndr->depth--;
14043                 ndr->depth--;
14044         }
14045         if (flags & NDR_OUT) {
14046                 ndr_print_struct(ndr, "out", "netr_ServerTrustPasswordsGet");
14047                 ndr->depth++;
14048                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14049                 ndr->depth++;
14050                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14051                 ndr->depth--;
14052                 ndr_print_ptr(ndr, "password", r->out.password);
14053                 ndr->depth++;
14054                 ndr_print_samr_Password(ndr, "password", r->out.password);
14055                 ndr->depth--;
14056                 ndr_print_ptr(ndr, "password2", r->out.password2);
14057                 ndr->depth++;
14058                 ndr_print_samr_Password(ndr, "password2", r->out.password2);
14059                 ndr->depth--;
14060                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14061                 ndr->depth--;
14062         }
14063         ndr->depth--;
14064 }
14065
14066 static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_DsRGetForestTrustInformation *r)
14067 {
14068         if (flags & NDR_IN) {
14069                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14070                 if (r->in.server_name) {
14071                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14072                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14073                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14074                         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));
14075                 }
14076                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.trusted_domain_name));
14077                 if (r->in.trusted_domain_name) {
14078                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14079                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14080                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14081                         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));
14082                 }
14083                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14084         }
14085         if (flags & NDR_OUT) {
14086                 if (r->out.forest_trust_info == NULL) {
14087                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14088                 }
14089                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
14090                 if (*r->out.forest_trust_info) {
14091                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14092                 }
14093                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14094         }
14095         return NDR_ERR_SUCCESS;
14096 }
14097
14098 static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r)
14099 {
14100         uint32_t _ptr_server_name;
14101         uint32_t _ptr_trusted_domain_name;
14102         uint32_t _ptr_forest_trust_info;
14103         TALLOC_CTX *_mem_save_server_name_0;
14104         TALLOC_CTX *_mem_save_trusted_domain_name_0;
14105         TALLOC_CTX *_mem_save_forest_trust_info_0;
14106         TALLOC_CTX *_mem_save_forest_trust_info_1;
14107         if (flags & NDR_IN) {
14108                 ZERO_STRUCT(r->out);
14109
14110                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14111                 if (_ptr_server_name) {
14112                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14113                 } else {
14114                         r->in.server_name = NULL;
14115                 }
14116                 if (r->in.server_name) {
14117                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14118                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14119                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14120                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14121                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14122                                 return 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));
14123                         }
14124                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14125                         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));
14126                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14127                 }
14128                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
14129                 if (_ptr_trusted_domain_name) {
14130                         NDR_PULL_ALLOC(ndr, r->in.trusted_domain_name);
14131                 } else {
14132                         r->in.trusted_domain_name = NULL;
14133                 }
14134                 if (r->in.trusted_domain_name) {
14135                         _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14136                         NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0);
14137                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
14138                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
14139                         if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
14140                                 return 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));
14141                         }
14142                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
14143                         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));
14144                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
14145                 }
14146                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
14147                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14148                 ZERO_STRUCTP(r->out.forest_trust_info);
14149         }
14150         if (flags & NDR_OUT) {
14151                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14152                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14153                 }
14154                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14155                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
14156                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
14157                 if (_ptr_forest_trust_info) {
14158                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
14159                 } else {
14160                         *r->out.forest_trust_info = NULL;
14161                 }
14162                 if (*r->out.forest_trust_info) {
14163                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14164                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
14165                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14166                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
14167                 }
14168                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
14169                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14170         }
14171         return NDR_ERR_SUCCESS;
14172 }
14173
14174 _PUBLIC_ void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r)
14175 {
14176         ndr_print_struct(ndr, name, "netr_DsRGetForestTrustInformation");
14177         ndr->depth++;
14178         if (flags & NDR_SET_VALUES) {
14179                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14180         }
14181         if (flags & NDR_IN) {
14182                 ndr_print_struct(ndr, "in", "netr_DsRGetForestTrustInformation");
14183                 ndr->depth++;
14184                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14185                 ndr->depth++;
14186                 if (r->in.server_name) {
14187                         ndr_print_string(ndr, "server_name", r->in.server_name);
14188                 }
14189                 ndr->depth--;
14190                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14191                 ndr->depth++;
14192                 if (r->in.trusted_domain_name) {
14193                         ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14194                 }
14195                 ndr->depth--;
14196                 ndr_print_uint32(ndr, "flags", r->in.flags);
14197                 ndr->depth--;
14198         }
14199         if (flags & NDR_OUT) {
14200                 ndr_print_struct(ndr, "out", "netr_DsRGetForestTrustInformation");
14201                 ndr->depth++;
14202                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
14203                 ndr->depth++;
14204                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
14205                 ndr->depth++;
14206                 if (*r->out.forest_trust_info) {
14207                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
14208                 }
14209                 ndr->depth--;
14210                 ndr->depth--;
14211                 ndr_print_WERROR(ndr, "result", r->out.result);
14212                 ndr->depth--;
14213         }
14214         ndr->depth--;
14215 }
14216
14217 static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_GetForestTrustInformation *r)
14218 {
14219         if (flags & NDR_IN) {
14220                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14221                 if (r->in.server_name) {
14222                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14223                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14224                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14225                         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));
14226                 }
14227                 if (r->in.trusted_domain_name == NULL) {
14228                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14229                 }
14230                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14231                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14232                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14233                 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));
14234                 if (r->in.credential == NULL) {
14235                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14236                 }
14237                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14238                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14239         }
14240         if (flags & NDR_OUT) {
14241                 if (r->out.return_authenticator == NULL) {
14242                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14243                 }
14244                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14245                 if (r->out.forest_trust_info == NULL) {
14246                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14247                 }
14248                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
14249                 if (*r->out.forest_trust_info) {
14250                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14251                 }
14252                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14253         }
14254         return NDR_ERR_SUCCESS;
14255 }
14256
14257 static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r)
14258 {
14259         uint32_t _ptr_server_name;
14260         uint32_t _ptr_forest_trust_info;
14261         TALLOC_CTX *_mem_save_server_name_0;
14262         TALLOC_CTX *_mem_save_credential_0;
14263         TALLOC_CTX *_mem_save_return_authenticator_0;
14264         TALLOC_CTX *_mem_save_forest_trust_info_0;
14265         TALLOC_CTX *_mem_save_forest_trust_info_1;
14266         if (flags & NDR_IN) {
14267                 ZERO_STRUCT(r->out);
14268
14269                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14270                 if (_ptr_server_name) {
14271                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14272                 } else {
14273                         r->in.server_name = NULL;
14274                 }
14275                 if (r->in.server_name) {
14276                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14277                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14278                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14279                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14280                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14281                                 return 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));
14282                         }
14283                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14284                         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));
14285                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14286                 }
14287                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
14288                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
14289                 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
14290                         return 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));
14291                 }
14292                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
14293                 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));
14294                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14295                         NDR_PULL_ALLOC(ndr, r->in.credential);
14296                 }
14297                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14298                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
14299                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14300                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
14301                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
14302                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14303                 ZERO_STRUCTP(r->out.return_authenticator);
14304                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14305                 ZERO_STRUCTP(r->out.forest_trust_info);
14306         }
14307         if (flags & NDR_OUT) {
14308                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14309                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14310                 }
14311                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14312                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14313                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14314                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14315                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14316                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14317                 }
14318                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14319                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
14320                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
14321                 if (_ptr_forest_trust_info) {
14322                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
14323                 } else {
14324                         *r->out.forest_trust_info = NULL;
14325                 }
14326                 if (*r->out.forest_trust_info) {
14327                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14328                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
14329                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14330                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
14331                 }
14332                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
14333                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14334         }
14335         return NDR_ERR_SUCCESS;
14336 }
14337
14338 _PUBLIC_ void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r)
14339 {
14340         ndr_print_struct(ndr, name, "netr_GetForestTrustInformation");
14341         ndr->depth++;
14342         if (flags & NDR_SET_VALUES) {
14343                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14344         }
14345         if (flags & NDR_IN) {
14346                 ndr_print_struct(ndr, "in", "netr_GetForestTrustInformation");
14347                 ndr->depth++;
14348                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14349                 ndr->depth++;
14350                 if (r->in.server_name) {
14351                         ndr_print_string(ndr, "server_name", r->in.server_name);
14352                 }
14353                 ndr->depth--;
14354                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14355                 ndr->depth++;
14356                 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14357                 ndr->depth--;
14358                 ndr_print_ptr(ndr, "credential", r->in.credential);
14359                 ndr->depth++;
14360                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14361                 ndr->depth--;
14362                 ndr_print_uint32(ndr, "flags", r->in.flags);
14363                 ndr->depth--;
14364         }
14365         if (flags & NDR_OUT) {
14366                 ndr_print_struct(ndr, "out", "netr_GetForestTrustInformation");
14367                 ndr->depth++;
14368                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14369                 ndr->depth++;
14370                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14371                 ndr->depth--;
14372                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
14373                 ndr->depth++;
14374                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
14375                 ndr->depth++;
14376                 if (*r->out.forest_trust_info) {
14377                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
14378                 }
14379                 ndr->depth--;
14380                 ndr->depth--;
14381                 ndr_print_WERROR(ndr, "result", r->out.result);
14382                 ndr->depth--;
14383         }
14384         ndr->depth--;
14385 }
14386
14387 static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
14388 {
14389         if (flags & NDR_IN) {
14390                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14391                 if (r->in.server_name) {
14392                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14393                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14394                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14395                         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));
14396                 }
14397                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
14398                 if (r->in.computer_name) {
14399                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14400                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14401                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14402                         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));
14403                 }
14404                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
14405                 if (r->in.credential) {
14406                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14407                 }
14408                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
14409                 if (r->in.return_authenticator) {
14410                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14411                 }
14412                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
14413                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14414                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14415                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
14416                 if (r->in.flags == NULL) {
14417                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14418                 }
14419                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
14420         }
14421         if (flags & NDR_OUT) {
14422                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
14423                 if (r->out.return_authenticator) {
14424                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14425                 }
14426                 if (r->out.validation == NULL) {
14427                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14428                 }
14429                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14430                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14431                 if (r->out.authoritative == NULL) {
14432                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14433                 }
14434                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
14435                 if (r->out.flags == NULL) {
14436                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14437                 }
14438                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
14439                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
14440         }
14441         return NDR_ERR_SUCCESS;
14442 }
14443
14444 static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
14445 {
14446         uint32_t _ptr_server_name;
14447         uint32_t _ptr_computer_name;
14448         uint32_t _ptr_credential;
14449         uint32_t _ptr_return_authenticator;
14450         TALLOC_CTX *_mem_save_server_name_0;
14451         TALLOC_CTX *_mem_save_computer_name_0;
14452         TALLOC_CTX *_mem_save_credential_0;
14453         TALLOC_CTX *_mem_save_return_authenticator_0;
14454         TALLOC_CTX *_mem_save_validation_0;
14455         TALLOC_CTX *_mem_save_authoritative_0;
14456         TALLOC_CTX *_mem_save_flags_0;
14457         if (flags & NDR_IN) {
14458                 ZERO_STRUCT(r->out);
14459
14460                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14461                 if (_ptr_server_name) {
14462                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14463                 } else {
14464                         r->in.server_name = NULL;
14465                 }
14466                 if (r->in.server_name) {
14467                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14468                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14469                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14470                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14471                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14472                                 return 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));
14473                         }
14474                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14475                         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));
14476                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14477                 }
14478                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
14479                 if (_ptr_computer_name) {
14480                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
14481                 } else {
14482                         r->in.computer_name = NULL;
14483                 }
14484                 if (r->in.computer_name) {
14485                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14486                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
14487                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14488                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14489                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14490                                 return 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));
14491                         }
14492                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14493                         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));
14494                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
14495                 }
14496                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
14497                 if (_ptr_credential) {
14498                         NDR_PULL_ALLOC(ndr, r->in.credential);
14499                 } else {
14500                         r->in.credential = NULL;
14501                 }
14502                 if (r->in.credential) {
14503                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14504                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
14505                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14506                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
14507                 }
14508                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14509                 if (_ptr_return_authenticator) {
14510                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
14511                 } else {
14512                         r->in.return_authenticator = NULL;
14513                 }
14514                 if (r->in.return_authenticator) {
14515                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14516                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
14517                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14518                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14519                 }
14520                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
14521                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14522                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14523                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
14524                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14525                         NDR_PULL_ALLOC(ndr, r->in.flags);
14526                 }
14527                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14528                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
14529                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
14530                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14531                 NDR_PULL_ALLOC(ndr, r->out.validation);
14532                 ZERO_STRUCTP(r->out.validation);
14533                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
14534                 ZERO_STRUCTP(r->out.authoritative);
14535                 NDR_PULL_ALLOC(ndr, r->out.flags);
14536                 *r->out.flags = *r->in.flags;
14537         }
14538         if (flags & NDR_OUT) {
14539                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14540                 if (_ptr_return_authenticator) {
14541                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14542                 } else {
14543                         r->out.return_authenticator = NULL;
14544                 }
14545                 if (r->out.return_authenticator) {
14546                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14547                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
14548                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14549                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14550                 }
14551                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14552                         NDR_PULL_ALLOC(ndr, r->out.validation);
14553                 }
14554                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
14555                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
14556                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14557                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14558                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
14559                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14560                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
14561                 }
14562                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
14563                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
14564                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
14565                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
14566                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14567                         NDR_PULL_ALLOC(ndr, r->out.flags);
14568                 }
14569                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14570                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
14571                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
14572                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14573                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14574         }
14575         return NDR_ERR_SUCCESS;
14576 }
14577
14578 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
14579 {
14580         ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
14581         ndr->depth++;
14582         if (flags & NDR_SET_VALUES) {
14583                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14584         }
14585         if (flags & NDR_IN) {
14586                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
14587                 ndr->depth++;
14588                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14589                 ndr->depth++;
14590                 if (r->in.server_name) {
14591                         ndr_print_string(ndr, "server_name", r->in.server_name);
14592                 }
14593                 ndr->depth--;
14594                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14595                 ndr->depth++;
14596                 if (r->in.computer_name) {
14597                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
14598                 }
14599                 ndr->depth--;
14600                 ndr_print_ptr(ndr, "credential", r->in.credential);
14601                 ndr->depth++;
14602                 if (r->in.credential) {
14603                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14604                 }
14605                 ndr->depth--;
14606                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
14607                 ndr->depth++;
14608                 if (r->in.return_authenticator) {
14609                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
14610                 }
14611                 ndr->depth--;
14612                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
14613                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
14614                 ndr_print_netr_LogonInfo(ndr, "logon", &r->in.logon);
14615                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
14616                 ndr_print_ptr(ndr, "flags", r->in.flags);
14617                 ndr->depth++;
14618                 ndr_print_uint32(ndr, "flags", *r->in.flags);
14619                 ndr->depth--;
14620                 ndr->depth--;
14621         }
14622         if (flags & NDR_OUT) {
14623                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
14624                 ndr->depth++;
14625                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14626                 ndr->depth++;
14627                 if (r->out.return_authenticator) {
14628                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14629                 }
14630                 ndr->depth--;
14631                 ndr_print_ptr(ndr, "validation", r->out.validation);
14632                 ndr->depth++;
14633                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
14634                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
14635                 ndr->depth--;
14636                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
14637                 ndr->depth++;
14638                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
14639                 ndr->depth--;
14640                 ndr_print_ptr(ndr, "flags", r->out.flags);
14641                 ndr->depth++;
14642                 ndr_print_uint32(ndr, "flags", *r->out.flags);
14643                 ndr->depth--;
14644                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14645                 ndr->depth--;
14646         }
14647         ndr->depth--;
14648 }
14649
14650 static enum ndr_err_code ndr_push_netr_NETRSERVERGETTRUSTINFO(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14651 {
14652         if (flags & NDR_IN) {
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_NETRSERVERGETTRUSTINFO(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERGETTRUSTINFO *r)
14661 {
14662         if (flags & NDR_IN) {
14663         }
14664         if (flags & NDR_OUT) {
14665                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14666         }
14667         return NDR_ERR_SUCCESS;
14668 }
14669
14670 _PUBLIC_ void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14671 {
14672         ndr_print_struct(ndr, name, "netr_NETRSERVERGETTRUSTINFO");
14673         ndr->depth++;
14674         if (flags & NDR_SET_VALUES) {
14675                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14676         }
14677         if (flags & NDR_IN) {
14678                 ndr_print_struct(ndr, "in", "netr_NETRSERVERGETTRUSTINFO");
14679                 ndr->depth++;
14680                 ndr->depth--;
14681         }
14682         if (flags & NDR_OUT) {
14683                 ndr_print_struct(ndr, "out", "netr_NETRSERVERGETTRUSTINFO");
14684                 ndr->depth++;
14685                 ndr_print_WERROR(ndr, "result", r->out.result);
14686                 ndr->depth--;
14687         }
14688         ndr->depth--;
14689 }
14690
14691 static const struct ndr_interface_call netlogon_calls[] = {
14692         {
14693                 "netr_LogonUasLogon",
14694                 sizeof(struct netr_LogonUasLogon),
14695                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
14696                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
14697                 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
14698                 false,
14699         },
14700         {
14701                 "netr_LogonUasLogoff",
14702                 sizeof(struct netr_LogonUasLogoff),
14703                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
14704                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
14705                 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
14706                 false,
14707         },
14708         {
14709                 "netr_LogonSamLogon",
14710                 sizeof(struct netr_LogonSamLogon),
14711                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
14712                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
14713                 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
14714                 false,
14715         },
14716         {
14717                 "netr_LogonSamLogoff",
14718                 sizeof(struct netr_LogonSamLogoff),
14719                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
14720                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
14721                 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
14722                 false,
14723         },
14724         {
14725                 "netr_ServerReqChallenge",
14726                 sizeof(struct netr_ServerReqChallenge),
14727                 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
14728                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
14729                 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
14730                 false,
14731         },
14732         {
14733                 "netr_ServerAuthenticate",
14734                 sizeof(struct netr_ServerAuthenticate),
14735                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
14736                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
14737                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
14738                 false,
14739         },
14740         {
14741                 "netr_ServerPasswordSet",
14742                 sizeof(struct netr_ServerPasswordSet),
14743                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
14744                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
14745                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
14746                 false,
14747         },
14748         {
14749                 "netr_DatabaseDeltas",
14750                 sizeof(struct netr_DatabaseDeltas),
14751                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
14752                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
14753                 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
14754                 false,
14755         },
14756         {
14757                 "netr_DatabaseSync",
14758                 sizeof(struct netr_DatabaseSync),
14759                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
14760                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
14761                 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
14762                 false,
14763         },
14764         {
14765                 "netr_AccountDeltas",
14766                 sizeof(struct netr_AccountDeltas),
14767                 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
14768                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
14769                 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
14770                 false,
14771         },
14772         {
14773                 "netr_AccountSync",
14774                 sizeof(struct netr_AccountSync),
14775                 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
14776                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
14777                 (ndr_print_function_t) ndr_print_netr_AccountSync,
14778                 false,
14779         },
14780         {
14781                 "netr_GetDcName",
14782                 sizeof(struct netr_GetDcName),
14783                 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
14784                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
14785                 (ndr_print_function_t) ndr_print_netr_GetDcName,
14786                 false,
14787         },
14788         {
14789                 "netr_LogonControl",
14790                 sizeof(struct netr_LogonControl),
14791                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
14792                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
14793                 (ndr_print_function_t) ndr_print_netr_LogonControl,
14794                 false,
14795         },
14796         {
14797                 "netr_GetAnyDCName",
14798                 sizeof(struct netr_GetAnyDCName),
14799                 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
14800                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
14801                 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
14802                 false,
14803         },
14804         {
14805                 "netr_LogonControl2",
14806                 sizeof(struct netr_LogonControl2),
14807                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
14808                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
14809                 (ndr_print_function_t) ndr_print_netr_LogonControl2,
14810                 false,
14811         },
14812         {
14813                 "netr_ServerAuthenticate2",
14814                 sizeof(struct netr_ServerAuthenticate2),
14815                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
14816                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
14817                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
14818                 false,
14819         },
14820         {
14821                 "netr_DatabaseSync2",
14822                 sizeof(struct netr_DatabaseSync2),
14823                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
14824                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
14825                 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
14826                 false,
14827         },
14828         {
14829                 "netr_DatabaseRedo",
14830                 sizeof(struct netr_DatabaseRedo),
14831                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
14832                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
14833                 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
14834                 false,
14835         },
14836         {
14837                 "netr_LogonControl2Ex",
14838                 sizeof(struct netr_LogonControl2Ex),
14839                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
14840                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
14841                 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
14842                 false,
14843         },
14844         {
14845                 "netr_NetrEnumerateTrustedDomains",
14846                 sizeof(struct netr_NetrEnumerateTrustedDomains),
14847                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomains,
14848                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomains,
14849                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomains,
14850                 false,
14851         },
14852         {
14853                 "netr_DsRGetDCName",
14854                 sizeof(struct netr_DsRGetDCName),
14855                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
14856                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
14857                 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
14858                 false,
14859         },
14860         {
14861                 "netr_NETRLOGONDUMMYROUTINE1",
14862                 sizeof(struct netr_NETRLOGONDUMMYROUTINE1),
14863                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONDUMMYROUTINE1,
14864                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONDUMMYROUTINE1,
14865                 (ndr_print_function_t) ndr_print_netr_NETRLOGONDUMMYROUTINE1,
14866                 false,
14867         },
14868         {
14869                 "netr_NETRLOGONSETSERVICEBITS",
14870                 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
14871                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
14872                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
14873                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
14874                 false,
14875         },
14876         {
14877                 "netr_LogonGetTrustRid",
14878                 sizeof(struct netr_LogonGetTrustRid),
14879                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetTrustRid,
14880                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetTrustRid,
14881                 (ndr_print_function_t) ndr_print_netr_LogonGetTrustRid,
14882                 false,
14883         },
14884         {
14885                 "netr_NETRLOGONCOMPUTESERVERDIGEST",
14886                 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
14887                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
14888                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
14889                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
14890                 false,
14891         },
14892         {
14893                 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
14894                 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
14895                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14896                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14897                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14898                 false,
14899         },
14900         {
14901                 "netr_ServerAuthenticate3",
14902                 sizeof(struct netr_ServerAuthenticate3),
14903                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
14904                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
14905                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
14906                 false,
14907         },
14908         {
14909                 "netr_DsRGetDCNameEx",
14910                 sizeof(struct netr_DsRGetDCNameEx),
14911                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
14912                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
14913                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
14914                 false,
14915         },
14916         {
14917                 "netr_DsRGetSiteName",
14918                 sizeof(struct netr_DsRGetSiteName),
14919                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
14920                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
14921                 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
14922                 false,
14923         },
14924         {
14925                 "netr_LogonGetDomainInfo",
14926                 sizeof(struct netr_LogonGetDomainInfo),
14927                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
14928                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
14929                 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
14930                 false,
14931         },
14932         {
14933                 "netr_ServerPasswordSet2",
14934                 sizeof(struct netr_ServerPasswordSet2),
14935                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
14936                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
14937                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
14938                 false,
14939         },
14940         {
14941                 "netr_ServerPasswordGet",
14942                 sizeof(struct netr_ServerPasswordGet),
14943                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordGet,
14944                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordGet,
14945                 (ndr_print_function_t) ndr_print_netr_ServerPasswordGet,
14946                 false,
14947         },
14948         {
14949                 "netr_NETRLOGONSENDTOSAM",
14950                 sizeof(struct netr_NETRLOGONSENDTOSAM),
14951                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
14952                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
14953                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
14954                 false,
14955         },
14956         {
14957                 "netr_DsRAddressToSitenamesW",
14958                 sizeof(struct netr_DsRAddressToSitenamesW),
14959                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesW,
14960                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesW,
14961                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesW,
14962                 false,
14963         },
14964         {
14965                 "netr_DsRGetDCNameEx2",
14966                 sizeof(struct netr_DsRGetDCNameEx2),
14967                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
14968                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
14969                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
14970                 false,
14971         },
14972         {
14973                 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
14974                 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
14975                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14976                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14977                 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14978                 false,
14979         },
14980         {
14981                 "netr_NetrEnumerateTrustedDomainsEx",
14982                 sizeof(struct netr_NetrEnumerateTrustedDomainsEx),
14983                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomainsEx,
14984                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomainsEx,
14985                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomainsEx,
14986                 false,
14987         },
14988         {
14989                 "netr_DsRAddressToSitenamesExW",
14990                 sizeof(struct netr_DsRAddressToSitenamesExW),
14991                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesExW,
14992                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesExW,
14993                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesExW,
14994                 false,
14995         },
14996         {
14997                 "netr_DsrGetDcSiteCoverageW",
14998                 sizeof(struct netr_DsrGetDcSiteCoverageW),
14999                 (ndr_push_flags_fn_t) ndr_push_netr_DsrGetDcSiteCoverageW,
15000                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrGetDcSiteCoverageW,
15001                 (ndr_print_function_t) ndr_print_netr_DsrGetDcSiteCoverageW,
15002                 false,
15003         },
15004         {
15005                 "netr_LogonSamLogonEx",
15006                 sizeof(struct netr_LogonSamLogonEx),
15007                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
15008                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
15009                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
15010                 false,
15011         },
15012         {
15013                 "netr_DsrEnumerateDomainTrusts",
15014                 sizeof(struct netr_DsrEnumerateDomainTrusts),
15015                 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
15016                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
15017                 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
15018                 false,
15019         },
15020         {
15021                 "netr_DsrDeregisterDNSHostRecords",
15022                 sizeof(struct netr_DsrDeregisterDNSHostRecords),
15023                 (ndr_push_flags_fn_t) ndr_push_netr_DsrDeregisterDNSHostRecords,
15024                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrDeregisterDNSHostRecords,
15025                 (ndr_print_function_t) ndr_print_netr_DsrDeregisterDNSHostRecords,
15026                 false,
15027         },
15028         {
15029                 "netr_ServerTrustPasswordsGet",
15030                 sizeof(struct netr_ServerTrustPasswordsGet),
15031                 (ndr_push_flags_fn_t) ndr_push_netr_ServerTrustPasswordsGet,
15032                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerTrustPasswordsGet,
15033                 (ndr_print_function_t) ndr_print_netr_ServerTrustPasswordsGet,
15034                 false,
15035         },
15036         {
15037                 "netr_DsRGetForestTrustInformation",
15038                 sizeof(struct netr_DsRGetForestTrustInformation),
15039                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetForestTrustInformation,
15040                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetForestTrustInformation,
15041                 (ndr_print_function_t) ndr_print_netr_DsRGetForestTrustInformation,
15042                 false,
15043         },
15044         {
15045                 "netr_GetForestTrustInformation",
15046                 sizeof(struct netr_GetForestTrustInformation),
15047                 (ndr_push_flags_fn_t) ndr_push_netr_GetForestTrustInformation,
15048                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetForestTrustInformation,
15049                 (ndr_print_function_t) ndr_print_netr_GetForestTrustInformation,
15050                 false,
15051         },
15052         {
15053                 "netr_LogonSamLogonWithFlags",
15054                 sizeof(struct netr_LogonSamLogonWithFlags),
15055                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
15056                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
15057                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
15058                 false,
15059         },
15060         {
15061                 "netr_NETRSERVERGETTRUSTINFO",
15062                 sizeof(struct netr_NETRSERVERGETTRUSTINFO),
15063                 (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERGETTRUSTINFO,
15064                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERGETTRUSTINFO,
15065                 (ndr_print_function_t) ndr_print_netr_NETRSERVERGETTRUSTINFO,
15066                 false,
15067         },
15068         { NULL, 0, NULL, NULL, NULL, false }
15069 };
15070
15071 static const char * const netlogon_endpoint_strings[] = {
15072         "ncacn_np:[\\pipe\\netlogon]", 
15073         "ncacn_ip_tcp:", 
15074         "ncalrpc:", 
15075 };
15076
15077 static const struct ndr_interface_string_array netlogon_endpoints = {
15078         .count  = 3,
15079         .names  = netlogon_endpoint_strings
15080 };
15081
15082 static const char * const netlogon_authservice_strings[] = {
15083         "host", 
15084 };
15085
15086 static const struct ndr_interface_string_array netlogon_authservices = {
15087         .count  = 1,
15088         .names  = netlogon_authservice_strings
15089 };
15090
15091
15092 const struct ndr_interface_table ndr_table_netlogon = {
15093         .name           = "netlogon",
15094         .syntax_id      = {
15095                 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
15096                 NDR_NETLOGON_VERSION
15097         },
15098         .helpstring     = NDR_NETLOGON_HELPSTRING,
15099         .num_calls      = 47,
15100         .calls          = netlogon_calls,
15101         .endpoints      = &netlogon_endpoints,
15102         .authservices   = &netlogon_authservices
15103 };
15104