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_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
5946 {
5947         if (ndr_flags & NDR_SCALARS) {
5948                 NDR_CHECK(ndr_push_align(ndr, 4));
5949                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
5950                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
5951         }
5952         if (ndr_flags & NDR_BUFFERS) {
5953                 if (r->data) {
5954                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
5955                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
5956                 }
5957         }
5958         return NDR_ERR_SUCCESS;
5959 }
5960
5961 static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
5962 {
5963         uint32_t _ptr_data;
5964         TALLOC_CTX *_mem_save_data_0;
5965         if (ndr_flags & NDR_SCALARS) {
5966                 NDR_CHECK(ndr_pull_align(ndr, 4));
5967                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
5968                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
5969                 if (_ptr_data) {
5970                         NDR_PULL_ALLOC(ndr, r->data);
5971                 } else {
5972                         r->data = NULL;
5973                 }
5974         }
5975         if (ndr_flags & NDR_BUFFERS) {
5976                 if (r->data) {
5977                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
5978                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
5979                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
5980                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
5981                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
5982                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
5983                 }
5984                 if (r->data) {
5985                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
5986                 }
5987         }
5988         return NDR_ERR_SUCCESS;
5989 }
5990
5991 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
5992 {
5993         ndr_print_struct(ndr, name, "netr_Blob");
5994         ndr->depth++;
5995         ndr_print_uint32(ndr, "length", r->length);
5996         ndr_print_ptr(ndr, "data", r->data);
5997         ndr->depth++;
5998         if (r->data) {
5999                 ndr_print_array_uint8(ndr, "data", r->data, r->length);
6000         }
6001         ndr->depth--;
6002         ndr->depth--;
6003 }
6004
6005 static enum ndr_err_code ndr_push_netr_DsRGetDCName_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6006 {
6007         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6008         return NDR_ERR_SUCCESS;
6009 }
6010
6011 static enum ndr_err_code ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6012 {
6013         uint32_t v;
6014         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6015         *r = v;
6016         return NDR_ERR_SUCCESS;
6017 }
6018
6019 _PUBLIC_ void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char *name, uint32_t r)
6020 {
6021         ndr_print_uint32(ndr, name, r);
6022         ndr->depth++;
6023         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY, r);
6024         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED, r);
6025         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED, r);
6026         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED, r);
6027         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED, r);
6028         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY, r);
6029         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED, r);
6030         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED, r);
6031         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED, r);
6032         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED, r);
6033         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED, r);
6034         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF, r);
6035         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED, r);
6036         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME, r);
6037         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME, r);
6038         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE, r);
6039         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED, r);
6040         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME, r);
6041         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME, r);
6042         ndr->depth--;
6043 }
6044
6045 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType r)
6046 {
6047         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6048         return NDR_ERR_SUCCESS;
6049 }
6050
6051 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType *r)
6052 {
6053         uint32_t v;
6054         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6055         *r = v;
6056         return NDR_ERR_SUCCESS;
6057 }
6058
6059 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const char *name, enum netr_DsRGetDCNameInfo_AddressType r)
6060 {
6061         const char *val = NULL;
6062
6063         switch (r) {
6064                 case DS_ADDRESS_TYPE_INET: val = "DS_ADDRESS_TYPE_INET"; break;
6065                 case DS_ADDRESS_TYPE_NETBIOS: val = "DS_ADDRESS_TYPE_NETBIOS"; break;
6066         }
6067         ndr_print_enum(ndr, name, "ENUM", val, r);
6068 }
6069
6070 static enum ndr_err_code ndr_push_netr_DsR_DcFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6071 {
6072         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6073         return NDR_ERR_SUCCESS;
6074 }
6075
6076 static enum ndr_err_code ndr_pull_netr_DsR_DcFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6077 {
6078         uint32_t v;
6079         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6080         *r = v;
6081         return NDR_ERR_SUCCESS;
6082 }
6083
6084 _PUBLIC_ void ndr_print_netr_DsR_DcFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6085 {
6086         ndr_print_uint32(ndr, name, r);
6087         ndr->depth++;
6088         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC, r);
6089         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC, r);
6090         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP, r);
6091         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS, r);
6092         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC, r);
6093         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV, r);
6094         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST, r);
6095         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE, r);
6096         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV, r);
6097         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC, r);
6098         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6, r);
6099         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6, r);
6100         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER, r);
6101         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN, r);
6102         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST, r);
6103         ndr->depth--;
6104 }
6105
6106 _PUBLIC_ enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
6107 {
6108         if (ndr_flags & NDR_SCALARS) {
6109                 NDR_CHECK(ndr_push_align(ndr, 4));
6110                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
6111                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
6112                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, r->dc_address_type));
6113                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6114                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6115                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
6116                 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr, NDR_SCALARS, r->dc_flags));
6117                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
6118                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
6119         }
6120         if (ndr_flags & NDR_BUFFERS) {
6121                 if (r->dc_unc) {
6122                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6123                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6124                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6125                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6126                 }
6127                 if (r->dc_address) {
6128                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6129                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6130                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6131                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6132                 }
6133                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6134                 if (r->domain_name) {
6135                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6136                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6137                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6138                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6139                 }
6140                 if (r->forest_name) {
6141                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6142                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6143                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6144                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6145                 }
6146                 if (r->dc_site_name) {
6147                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6148                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6149                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6150                         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));
6151                 }
6152                 if (r->client_site_name) {
6153                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6154                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6155                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6156                         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));
6157                 }
6158         }
6159         return NDR_ERR_SUCCESS;
6160 }
6161
6162 _PUBLIC_ enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
6163 {
6164         uint32_t _ptr_dc_unc;
6165         TALLOC_CTX *_mem_save_dc_unc_0;
6166         uint32_t _ptr_dc_address;
6167         TALLOC_CTX *_mem_save_dc_address_0;
6168         uint32_t _ptr_domain_name;
6169         TALLOC_CTX *_mem_save_domain_name_0;
6170         uint32_t _ptr_forest_name;
6171         TALLOC_CTX *_mem_save_forest_name_0;
6172         uint32_t _ptr_dc_site_name;
6173         TALLOC_CTX *_mem_save_dc_site_name_0;
6174         uint32_t _ptr_client_site_name;
6175         TALLOC_CTX *_mem_save_client_site_name_0;
6176         if (ndr_flags & NDR_SCALARS) {
6177                 NDR_CHECK(ndr_pull_align(ndr, 4));
6178                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6179                 if (_ptr_dc_unc) {
6180                         NDR_PULL_ALLOC(ndr, r->dc_unc);
6181                 } else {
6182                         r->dc_unc = NULL;
6183                 }
6184                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6185                 if (_ptr_dc_address) {
6186                         NDR_PULL_ALLOC(ndr, r->dc_address);
6187                 } else {
6188                         r->dc_address = NULL;
6189                 }
6190                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, &r->dc_address_type));
6191                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6192                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6193                 if (_ptr_domain_name) {
6194                         NDR_PULL_ALLOC(ndr, r->domain_name);
6195                 } else {
6196                         r->domain_name = NULL;
6197                 }
6198                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
6199                 if (_ptr_forest_name) {
6200                         NDR_PULL_ALLOC(ndr, r->forest_name);
6201                 } else {
6202                         r->forest_name = NULL;
6203                 }
6204                 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr, NDR_SCALARS, &r->dc_flags));
6205                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
6206                 if (_ptr_dc_site_name) {
6207                         NDR_PULL_ALLOC(ndr, r->dc_site_name);
6208                 } else {
6209                         r->dc_site_name = NULL;
6210                 }
6211                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
6212                 if (_ptr_client_site_name) {
6213                         NDR_PULL_ALLOC(ndr, r->client_site_name);
6214                 } else {
6215                         r->client_site_name = NULL;
6216                 }
6217         }
6218         if (ndr_flags & NDR_BUFFERS) {
6219                 if (r->dc_unc) {
6220                         _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6221                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
6222                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
6223                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
6224                         if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
6225                                 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));
6226                         }
6227                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
6228                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
6229                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
6230                 }
6231                 if (r->dc_address) {
6232                         _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
6233                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
6234                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
6235                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
6236                         if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
6237                                 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));
6238                         }
6239                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
6240                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
6241                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
6242                 }
6243                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6244                 if (r->domain_name) {
6245                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6246                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6247                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6248                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6249                         if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
6250                                 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));
6251                         }
6252                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
6253                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
6254                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6255                 }
6256                 if (r->forest_name) {
6257                         _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6258                         NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
6259                         NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
6260                         NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
6261                         if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
6262                                 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));
6263                         }
6264                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
6265                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
6266                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
6267                 }
6268                 if (r->dc_site_name) {
6269                         _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6270                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
6271                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
6272                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
6273                         if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
6274                                 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));
6275                         }
6276                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
6277                         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));
6278                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
6279                 }
6280                 if (r->client_site_name) {
6281                         _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6282                         NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
6283                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
6284                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
6285                         if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
6286                                 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));
6287                         }
6288                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
6289                         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));
6290                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
6291                 }
6292         }
6293         return NDR_ERR_SUCCESS;
6294 }
6295
6296 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
6297 {
6298         ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
6299         ndr->depth++;
6300         ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
6301         ndr->depth++;
6302         if (r->dc_unc) {
6303                 ndr_print_string(ndr, "dc_unc", r->dc_unc);
6304         }
6305         ndr->depth--;
6306         ndr_print_ptr(ndr, "dc_address", r->dc_address);
6307         ndr->depth++;
6308         if (r->dc_address) {
6309                 ndr_print_string(ndr, "dc_address", r->dc_address);
6310         }
6311         ndr->depth--;
6312         ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr, "dc_address_type", r->dc_address_type);
6313         ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
6314         ndr_print_ptr(ndr, "domain_name", r->domain_name);
6315         ndr->depth++;
6316         if (r->domain_name) {
6317                 ndr_print_string(ndr, "domain_name", r->domain_name);
6318         }
6319         ndr->depth--;
6320         ndr_print_ptr(ndr, "forest_name", r->forest_name);
6321         ndr->depth++;
6322         if (r->forest_name) {
6323                 ndr_print_string(ndr, "forest_name", r->forest_name);
6324         }
6325         ndr->depth--;
6326         ndr_print_netr_DsR_DcFlags(ndr, "dc_flags", r->dc_flags);
6327         ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
6328         ndr->depth++;
6329         if (r->dc_site_name) {
6330                 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
6331         }
6332         ndr->depth--;
6333         ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
6334         ndr->depth++;
6335         if (r->client_site_name) {
6336                 ndr_print_string(ndr, "client_site_name", r->client_site_name);
6337         }
6338         ndr->depth--;
6339         ndr->depth--;
6340 }
6341
6342 static enum ndr_err_code ndr_push_netr_BinaryString(struct ndr_push *ndr, int ndr_flags, const struct netr_BinaryString *r)
6343 {
6344         uint32_t cntr_data_1;
6345         {
6346                 uint32_t _flags_save_STRUCT = ndr->flags;
6347                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6348                 if (ndr_flags & NDR_SCALARS) {
6349                         NDR_CHECK(ndr_push_align(ndr, 4));
6350                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
6351                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
6352                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6353                 }
6354                 if (ndr_flags & NDR_BUFFERS) {
6355                         if (r->data) {
6356                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
6357                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6358                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
6359                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6360                                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data[cntr_data_1]));
6361                                 }
6362                         }
6363                 }
6364                 ndr->flags = _flags_save_STRUCT;
6365         }
6366         return NDR_ERR_SUCCESS;
6367 }
6368
6369 static enum ndr_err_code ndr_pull_netr_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct netr_BinaryString *r)
6370 {
6371         uint32_t _ptr_data;
6372         uint32_t cntr_data_1;
6373         TALLOC_CTX *_mem_save_data_0;
6374         TALLOC_CTX *_mem_save_data_1;
6375         {
6376                 uint32_t _flags_save_STRUCT = ndr->flags;
6377                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6378                 if (ndr_flags & NDR_SCALARS) {
6379                         NDR_CHECK(ndr_pull_align(ndr, 4));
6380                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
6381                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
6382                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6383                         if (_ptr_data) {
6384                                 NDR_PULL_ALLOC(ndr, r->data);
6385                         } else {
6386                                 r->data = NULL;
6387                         }
6388                 }
6389                 if (ndr_flags & NDR_BUFFERS) {
6390                         if (r->data) {
6391                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6392                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6393                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6394                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
6395                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
6396                                         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));
6397                                 }
6398                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6399                                 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
6400                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6401                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6402                                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
6403                                 }
6404                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
6405                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6406                         }
6407                         if (r->data) {
6408                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size / 2));
6409                         }
6410                         if (r->data) {
6411                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length / 2));
6412                         }
6413                 }
6414                 ndr->flags = _flags_save_STRUCT;
6415         }
6416         return NDR_ERR_SUCCESS;
6417 }
6418
6419 _PUBLIC_ void ndr_print_netr_BinaryString(struct ndr_print *ndr, const char *name, const struct netr_BinaryString *r)
6420 {
6421         uint32_t cntr_data_1;
6422         ndr_print_struct(ndr, name, "netr_BinaryString");
6423         {
6424                 uint32_t _flags_save_STRUCT = ndr->flags;
6425                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6426                 ndr->depth++;
6427                 ndr_print_uint16(ndr, "length", r->length);
6428                 ndr_print_uint16(ndr, "size", r->size);
6429                 ndr_print_ptr(ndr, "data", r->data);
6430                 ndr->depth++;
6431                 if (r->data) {
6432                         ndr->print(ndr, "%s: ARRAY(%d)", "data", r->length / 2);
6433                         ndr->depth++;
6434                         for (cntr_data_1=0;cntr_data_1<r->length / 2;cntr_data_1++) {
6435                                 char *idx_1=NULL;
6436                                 if (asprintf(&idx_1, "[%d]", cntr_data_1) != -1) {
6437                                         ndr_print_uint16(ndr, "data", r->data[cntr_data_1]);
6438                                         free(idx_1);
6439                                 }
6440                         }
6441                         ndr->depth--;
6442                 }
6443                 ndr->depth--;
6444                 ndr->depth--;
6445                 ndr->flags = _flags_save_STRUCT;
6446         }
6447 }
6448
6449 static enum ndr_err_code ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r)
6450 {
6451         uint32_t cntr_unknown7_0;
6452         if (ndr_flags & NDR_SCALARS) {
6453                 NDR_CHECK(ndr_push_align(ndr, 4));
6454                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6455                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain));
6456                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site));
6457                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1));
6458                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2));
6459                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3));
6460                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4));
6461                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6462                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product));
6463                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6464                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6465                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6466                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0]));
6467                 }
6468         }
6469         if (ndr_flags & NDR_BUFFERS) {
6470                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6471                 if (r->workstation_domain) {
6472                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6473                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6474                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6475                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6476                 }
6477                 if (r->workstation_site) {
6478                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6479                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6480                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6481                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6482                 }
6483                 if (r->unknown1) {
6484                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6485                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6486                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6487                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6488                 }
6489                 if (r->unknown2) {
6490                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6491                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6492                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6493                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6494                 }
6495                 if (r->unknown3) {
6496                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6497                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6498                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6499                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6500                 }
6501                 if (r->unknown4) {
6502                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6503                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6504                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6505                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6506                 }
6507                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6508                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product));
6509                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6510                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6511         }
6512         return NDR_ERR_SUCCESS;
6513 }
6514
6515 static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r)
6516 {
6517         uint32_t _ptr_workstation_domain;
6518         TALLOC_CTX *_mem_save_workstation_domain_0;
6519         uint32_t _ptr_workstation_site;
6520         TALLOC_CTX *_mem_save_workstation_site_0;
6521         uint32_t _ptr_unknown1;
6522         TALLOC_CTX *_mem_save_unknown1_0;
6523         uint32_t _ptr_unknown2;
6524         TALLOC_CTX *_mem_save_unknown2_0;
6525         uint32_t _ptr_unknown3;
6526         TALLOC_CTX *_mem_save_unknown3_0;
6527         uint32_t _ptr_unknown4;
6528         TALLOC_CTX *_mem_save_unknown4_0;
6529         uint32_t cntr_unknown7_0;
6530         if (ndr_flags & NDR_SCALARS) {
6531                 NDR_CHECK(ndr_pull_align(ndr, 4));
6532                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6533                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain));
6534                 if (_ptr_workstation_domain) {
6535                         NDR_PULL_ALLOC(ndr, r->workstation_domain);
6536                 } else {
6537                         r->workstation_domain = NULL;
6538                 }
6539                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site));
6540                 if (_ptr_workstation_site) {
6541                         NDR_PULL_ALLOC(ndr, r->workstation_site);
6542                 } else {
6543                         r->workstation_site = NULL;
6544                 }
6545                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1));
6546                 if (_ptr_unknown1) {
6547                         NDR_PULL_ALLOC(ndr, r->unknown1);
6548                 } else {
6549                         r->unknown1 = NULL;
6550                 }
6551                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2));
6552                 if (_ptr_unknown2) {
6553                         NDR_PULL_ALLOC(ndr, r->unknown2);
6554                 } else {
6555                         r->unknown2 = NULL;
6556                 }
6557                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3));
6558                 if (_ptr_unknown3) {
6559                         NDR_PULL_ALLOC(ndr, r->unknown3);
6560                 } else {
6561                         r->unknown3 = NULL;
6562                 }
6563                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
6564                 if (_ptr_unknown4) {
6565                         NDR_PULL_ALLOC(ndr, r->unknown4);
6566                 } else {
6567                         r->unknown4 = NULL;
6568                 }
6569                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6570                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product));
6571                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6572                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6573                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6574                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0]));
6575                 }
6576         }
6577         if (ndr_flags & NDR_BUFFERS) {
6578                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6579                 if (r->workstation_domain) {
6580                         _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6581                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0);
6582                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain));
6583                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain));
6584                         if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) {
6585                                 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));
6586                         }
6587                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t)));
6588                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16));
6589                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0);
6590                 }
6591                 if (r->workstation_site) {
6592                         _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
6593                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0);
6594                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site));
6595                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site));
6596                         if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) {
6597                                 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));
6598                         }
6599                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t)));
6600                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16));
6601                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0);
6602                 }
6603                 if (r->unknown1) {
6604                         _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6605                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0);
6606                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1));
6607                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1));
6608                         if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) {
6609                                 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));
6610                         }
6611                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t)));
6612                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16));
6613                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0);
6614                 }
6615                 if (r->unknown2) {
6616                         _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6617                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0);
6618                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2));
6619                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2));
6620                         if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) {
6621                                 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));
6622                         }
6623                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t)));
6624                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16));
6625                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0);
6626                 }
6627                 if (r->unknown3) {
6628                         _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6629                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0);
6630                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3));
6631                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3));
6632                         if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) {
6633                                 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));
6634                         }
6635                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t)));
6636                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16));
6637                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0);
6638                 }
6639                 if (r->unknown4) {
6640                         _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6641                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0);
6642                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4));
6643                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4));
6644                         if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) {
6645                                 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));
6646                         }
6647                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t)));
6648                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16));
6649                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0);
6650                 }
6651                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6652                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product));
6653                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6654                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6655         }
6656         return NDR_ERR_SUCCESS;
6657 }
6658
6659 _PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r)
6660 {
6661         uint32_t cntr_unknown7_0;
6662         ndr_print_struct(ndr, name, "netr_DomainQuery1");
6663         ndr->depth++;
6664         ndr_print_netr_Blob(ndr, "blob", &r->blob);
6665         ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain);
6666         ndr->depth++;
6667         if (r->workstation_domain) {
6668                 ndr_print_string(ndr, "workstation_domain", r->workstation_domain);
6669         }
6670         ndr->depth--;
6671         ndr_print_ptr(ndr, "workstation_site", r->workstation_site);
6672         ndr->depth++;
6673         if (r->workstation_site) {
6674                 ndr_print_string(ndr, "workstation_site", r->workstation_site);
6675         }
6676         ndr->depth--;
6677         ndr_print_ptr(ndr, "unknown1", r->unknown1);
6678         ndr->depth++;
6679         if (r->unknown1) {
6680                 ndr_print_string(ndr, "unknown1", r->unknown1);
6681         }
6682         ndr->depth--;
6683         ndr_print_ptr(ndr, "unknown2", r->unknown2);
6684         ndr->depth++;
6685         if (r->unknown2) {
6686                 ndr_print_string(ndr, "unknown2", r->unknown2);
6687         }
6688         ndr->depth--;
6689         ndr_print_ptr(ndr, "unknown3", r->unknown3);
6690         ndr->depth++;
6691         if (r->unknown3) {
6692                 ndr_print_string(ndr, "unknown3", r->unknown3);
6693         }
6694         ndr->depth--;
6695         ndr_print_ptr(ndr, "unknown4", r->unknown4);
6696         ndr->depth++;
6697         if (r->unknown4) {
6698                 ndr_print_string(ndr, "unknown4", r->unknown4);
6699         }
6700         ndr->depth--;
6701         ndr_print_netr_BinaryString(ndr, "blob2", &r->blob2);
6702         ndr_print_lsa_String(ndr, "product", &r->product);
6703         ndr_print_lsa_String(ndr, "unknown5", &r->unknown5);
6704         ndr_print_lsa_String(ndr, "unknown6", &r->unknown6);
6705         ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", 4);
6706         ndr->depth++;
6707         for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) {
6708                 char *idx_0=NULL;
6709                 if (asprintf(&idx_0, "[%d]", cntr_unknown7_0) != -1) {
6710                         ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]);
6711                         free(idx_0);
6712                 }
6713         }
6714         ndr->depth--;
6715         ndr->depth--;
6716 }
6717
6718 static enum ndr_err_code ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r)
6719 {
6720         if (ndr_flags & NDR_SCALARS) {
6721                 int level = ndr_push_get_switch_value(ndr, r);
6722                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6723                 switch (level) {
6724                         case 1: {
6725                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6726                         break; }
6727
6728                         case 2: {
6729                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6730                         break; }
6731
6732                         default:
6733                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6734                 }
6735         }
6736         if (ndr_flags & NDR_BUFFERS) {
6737                 int level = ndr_push_get_switch_value(ndr, r);
6738                 switch (level) {
6739                         case 1:
6740                                 if (r->query1) {
6741                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6742                                 }
6743                         break;
6744
6745                         case 2:
6746                                 if (r->query1) {
6747                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6748                                 }
6749                         break;
6750
6751                         default:
6752                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6753                 }
6754         }
6755         return NDR_ERR_SUCCESS;
6756 }
6757
6758 static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r)
6759 {
6760         int level;
6761         uint32_t _level;
6762         TALLOC_CTX *_mem_save_query1_0;
6763         level = ndr_pull_get_switch_value(ndr, r);
6764         if (ndr_flags & NDR_SCALARS) {
6765                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6766                 if (_level != level) {
6767                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6768                 }
6769                 switch (level) {
6770                         case 1: {
6771                                 uint32_t _ptr_query1;
6772                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6773                                 if (_ptr_query1) {
6774                                         NDR_PULL_ALLOC(ndr, r->query1);
6775                                 } else {
6776                                         r->query1 = NULL;
6777                                 }
6778                         break; }
6779
6780                         case 2: {
6781                                 uint32_t _ptr_query1;
6782                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6783                                 if (_ptr_query1) {
6784                                         NDR_PULL_ALLOC(ndr, r->query1);
6785                                 } else {
6786                                         r->query1 = NULL;
6787                                 }
6788                         break; }
6789
6790                         default:
6791                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6792                 }
6793         }
6794         if (ndr_flags & NDR_BUFFERS) {
6795                 switch (level) {
6796                         case 1:
6797                                 if (r->query1) {
6798                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6799                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6800                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6801                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6802                                 }
6803                         break;
6804
6805                         case 2:
6806                                 if (r->query1) {
6807                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6808                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6809                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6810                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6811                                 }
6812                         break;
6813
6814                         default:
6815                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6816                 }
6817         }
6818         return NDR_ERR_SUCCESS;
6819 }
6820
6821 _PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r)
6822 {
6823         int level;
6824         level = ndr_print_get_switch_value(ndr, r);
6825         ndr_print_union(ndr, name, level, "netr_DomainQuery");
6826         switch (level) {
6827                 case 1:
6828                         ndr_print_ptr(ndr, "query1", r->query1);
6829                         ndr->depth++;
6830                         if (r->query1) {
6831                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6832                         }
6833                         ndr->depth--;
6834                 break;
6835
6836                 case 2:
6837                         ndr_print_ptr(ndr, "query1", r->query1);
6838                         ndr->depth++;
6839                         if (r->query1) {
6840                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6841                         }
6842                         ndr->depth--;
6843                 break;
6844
6845                 default:
6846                         ndr_print_bad_level(ndr, name, level);
6847         }
6848 }
6849
6850 static enum ndr_err_code ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r)
6851 {
6852         uint32_t cntr_unknown1_0;
6853         uint32_t cntr_unknown_0;
6854         if (ndr_flags & NDR_SCALARS) {
6855                 NDR_CHECK(ndr_push_align(ndr, 4));
6856                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6857                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6858                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
6859                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
6860                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
6861                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6862                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6863                 }
6864                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6865                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6866                 }
6867         }
6868         if (ndr_flags & NDR_BUFFERS) {
6869                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6870                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6871                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6872                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
6873                 if (r->sid) {
6874                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6875                 }
6876                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6877                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6878                 }
6879         }
6880         return NDR_ERR_SUCCESS;
6881 }
6882
6883 static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r)
6884 {
6885         uint32_t _ptr_sid;
6886         TALLOC_CTX *_mem_save_sid_0;
6887         uint32_t cntr_unknown1_0;
6888         uint32_t cntr_unknown_0;
6889         if (ndr_flags & NDR_SCALARS) {
6890                 NDR_CHECK(ndr_pull_align(ndr, 4));
6891                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6892                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6893                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
6894                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
6895                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
6896                 if (_ptr_sid) {
6897                         NDR_PULL_ALLOC(ndr, r->sid);
6898                 } else {
6899                         r->sid = NULL;
6900                 }
6901                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6902                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6903                 }
6904                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6905                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
6906                 }
6907         }
6908         if (ndr_flags & NDR_BUFFERS) {
6909                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6910                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6911                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6912                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
6913                 if (r->sid) {
6914                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6915                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
6916                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6917                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
6918                 }
6919                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6920                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6921                 }
6922         }
6923         return NDR_ERR_SUCCESS;
6924 }
6925
6926 _PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r)
6927 {
6928         uint32_t cntr_unknown1_0;
6929         uint32_t cntr_unknown_0;
6930         ndr_print_struct(ndr, name, "netr_DomainTrustInfo");
6931         ndr->depth++;
6932         ndr_print_lsa_String(ndr, "domainname", &r->domainname);
6933         ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname);
6934         ndr_print_lsa_String(ndr, "forest", &r->forest);
6935         ndr_print_GUID(ndr, "guid", &r->guid);
6936         ndr_print_ptr(ndr, "sid", r->sid);
6937         ndr->depth++;
6938         if (r->sid) {
6939                 ndr_print_dom_sid2(ndr, "sid", r->sid);
6940         }
6941         ndr->depth--;
6942         ndr->print(ndr, "%s: ARRAY(%d)", "unknown1", 4);
6943         ndr->depth++;
6944         for (cntr_unknown1_0=0;cntr_unknown1_0<4;cntr_unknown1_0++) {
6945                 char *idx_0=NULL;
6946                 if (asprintf(&idx_0, "[%d]", cntr_unknown1_0) != -1) {
6947                         ndr_print_netr_BinaryString(ndr, "unknown1", &r->unknown1[cntr_unknown1_0]);
6948                         free(idx_0);
6949                 }
6950         }
6951         ndr->depth--;
6952         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 4);
6953         ndr->depth++;
6954         for (cntr_unknown_0=0;cntr_unknown_0<4;cntr_unknown_0++) {
6955                 char *idx_0=NULL;
6956                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
6957                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
6958                         free(idx_0);
6959                 }
6960         }
6961         ndr->depth--;
6962         ndr->depth--;
6963 }
6964
6965 static enum ndr_err_code ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r)
6966 {
6967         uint32_t cntr_trusts_1;
6968         uint32_t cntr_unknown_0;
6969         if (ndr_flags & NDR_SCALARS) {
6970                 NDR_CHECK(ndr_push_align(ndr, 4));
6971                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
6972                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
6973                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts));
6974                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
6975                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6976                 }
6977         }
6978         if (ndr_flags & NDR_BUFFERS) {
6979                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
6980                 if (r->trusts) {
6981                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
6982                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6983                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
6984                         }
6985                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6986                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
6987                         }
6988                 }
6989         }
6990         return NDR_ERR_SUCCESS;
6991 }
6992
6993 static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r)
6994 {
6995         uint32_t _ptr_trusts;
6996         uint32_t cntr_trusts_1;
6997         TALLOC_CTX *_mem_save_trusts_0;
6998         TALLOC_CTX *_mem_save_trusts_1;
6999         uint32_t cntr_unknown_0;
7000         if (ndr_flags & NDR_SCALARS) {
7001                 NDR_CHECK(ndr_pull_align(ndr, 4));
7002                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7003                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts));
7004                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts));
7005                 if (_ptr_trusts) {
7006                         NDR_PULL_ALLOC(ndr, r->trusts);
7007                 } else {
7008                         r->trusts = NULL;
7009                 }
7010                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
7011                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
7012                 }
7013         }
7014         if (ndr_flags & NDR_BUFFERS) {
7015                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7016                 if (r->trusts) {
7017                         _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
7018                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7019                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts));
7020                         NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts));
7021                         _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
7022                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7023                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7024                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7025                         }
7026                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7027                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7028                         }
7029                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
7030                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0);
7031                 }
7032                 if (r->trusts) {
7033                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts));
7034                 }
7035         }
7036         return NDR_ERR_SUCCESS;
7037 }
7038
7039 _PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r)
7040 {
7041         uint32_t cntr_trusts_1;
7042         uint32_t cntr_unknown_0;
7043         ndr_print_struct(ndr, name, "netr_DomainInfo1");
7044         ndr->depth++;
7045         ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo);
7046         ndr_print_uint32(ndr, "num_trusts", r->num_trusts);
7047         ndr_print_ptr(ndr, "trusts", r->trusts);
7048         ndr->depth++;
7049         if (r->trusts) {
7050                 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", r->num_trusts);
7051                 ndr->depth++;
7052                 for (cntr_trusts_1=0;cntr_trusts_1<r->num_trusts;cntr_trusts_1++) {
7053                         char *idx_1=NULL;
7054                         if (asprintf(&idx_1, "[%d]", cntr_trusts_1) != -1) {
7055                                 ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]);
7056                                 free(idx_1);
7057                         }
7058                 }
7059                 ndr->depth--;
7060         }
7061         ndr->depth--;
7062         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 14);
7063         ndr->depth++;
7064         for (cntr_unknown_0=0;cntr_unknown_0<14;cntr_unknown_0++) {
7065                 char *idx_0=NULL;
7066                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
7067                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
7068                         free(idx_0);
7069                 }
7070         }
7071         ndr->depth--;
7072         ndr->depth--;
7073 }
7074
7075 static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
7076 {
7077         if (ndr_flags & NDR_SCALARS) {
7078                 int level = ndr_push_get_switch_value(ndr, r);
7079                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7080                 switch (level) {
7081                         case 1: {
7082                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7083                         break; }
7084
7085                         case 2: {
7086                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7087                         break; }
7088
7089                         default:
7090                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7091                 }
7092         }
7093         if (ndr_flags & NDR_BUFFERS) {
7094                 int level = ndr_push_get_switch_value(ndr, r);
7095                 switch (level) {
7096                         case 1:
7097                                 if (r->info1) {
7098                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7099                                 }
7100                         break;
7101
7102                         case 2:
7103                                 if (r->info1) {
7104                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7105                                 }
7106                         break;
7107
7108                         default:
7109                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7110                 }
7111         }
7112         return NDR_ERR_SUCCESS;
7113 }
7114
7115 static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
7116 {
7117         int level;
7118         uint32_t _level;
7119         TALLOC_CTX *_mem_save_info1_0;
7120         level = ndr_pull_get_switch_value(ndr, r);
7121         if (ndr_flags & NDR_SCALARS) {
7122                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7123                 if (_level != level) {
7124                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7125                 }
7126                 switch (level) {
7127                         case 1: {
7128                                 uint32_t _ptr_info1;
7129                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7130                                 if (_ptr_info1) {
7131                                         NDR_PULL_ALLOC(ndr, r->info1);
7132                                 } else {
7133                                         r->info1 = NULL;
7134                                 }
7135                         break; }
7136
7137                         case 2: {
7138                                 uint32_t _ptr_info1;
7139                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7140                                 if (_ptr_info1) {
7141                                         NDR_PULL_ALLOC(ndr, r->info1);
7142                                 } else {
7143                                         r->info1 = NULL;
7144                                 }
7145                         break; }
7146
7147                         default:
7148                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7149                 }
7150         }
7151         if (ndr_flags & NDR_BUFFERS) {
7152                 switch (level) {
7153                         case 1:
7154                                 if (r->info1) {
7155                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7156                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7157                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7158                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7159                                 }
7160                         break;
7161
7162                         case 2:
7163                                 if (r->info1) {
7164                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7165                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7166                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7167                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7168                                 }
7169                         break;
7170
7171                         default:
7172                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7173                 }
7174         }
7175         return NDR_ERR_SUCCESS;
7176 }
7177
7178 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
7179 {
7180         int level;
7181         level = ndr_print_get_switch_value(ndr, r);
7182         ndr_print_union(ndr, name, level, "netr_DomainInfo");
7183         switch (level) {
7184                 case 1:
7185                         ndr_print_ptr(ndr, "info1", r->info1);
7186                         ndr->depth++;
7187                         if (r->info1) {
7188                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7189                         }
7190                         ndr->depth--;
7191                 break;
7192
7193                 case 2:
7194                         ndr_print_ptr(ndr, "info1", r->info1);
7195                         ndr->depth++;
7196                         if (r->info1) {
7197                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7198                         }
7199                         ndr->depth--;
7200                 break;
7201
7202                 default:
7203                         ndr_print_bad_level(ndr, name, level);
7204         }
7205 }
7206
7207 static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
7208 {
7209         {
7210                 uint32_t _flags_save_STRUCT = ndr->flags;
7211                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7212                 if (ndr_flags & NDR_SCALARS) {
7213                         NDR_CHECK(ndr_push_align(ndr, 4));
7214                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7215                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
7216                 }
7217                 if (ndr_flags & NDR_BUFFERS) {
7218                 }
7219                 ndr->flags = _flags_save_STRUCT;
7220         }
7221         return NDR_ERR_SUCCESS;
7222 }
7223
7224 static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
7225 {
7226         {
7227                 uint32_t _flags_save_STRUCT = ndr->flags;
7228                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7229                 if (ndr_flags & NDR_SCALARS) {
7230                         NDR_CHECK(ndr_pull_align(ndr, 4));
7231                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7232                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7233                 }
7234                 if (ndr_flags & NDR_BUFFERS) {
7235                 }
7236                 ndr->flags = _flags_save_STRUCT;
7237         }
7238         return NDR_ERR_SUCCESS;
7239 }
7240
7241 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
7242 {
7243         ndr_print_struct(ndr, name, "netr_CryptPassword");
7244         {
7245                 uint32_t _flags_save_STRUCT = ndr->flags;
7246                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7247                 ndr->depth++;
7248                 ndr_print_array_uint8(ndr, "data", r->data, 512);
7249                 ndr_print_uint32(ndr, "length", r->length);
7250                 ndr->depth--;
7251                 ndr->flags = _flags_save_STRUCT;
7252         }
7253 }
7254
7255 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesWCtr *r)
7256 {
7257         uint32_t cntr_sitename_1;
7258         if (ndr_flags & NDR_SCALARS) {
7259                 NDR_CHECK(ndr_push_align(ndr, 4));
7260                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7261                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7262         }
7263         if (ndr_flags & NDR_BUFFERS) {
7264                 if (r->sitename) {
7265                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7266                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7267                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7268                         }
7269                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7270                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7271                         }
7272                 }
7273         }
7274         return NDR_ERR_SUCCESS;
7275 }
7276
7277 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r)
7278 {
7279         uint32_t _ptr_sitename;
7280         uint32_t cntr_sitename_1;
7281         TALLOC_CTX *_mem_save_sitename_0;
7282         TALLOC_CTX *_mem_save_sitename_1;
7283         if (ndr_flags & NDR_SCALARS) {
7284                 NDR_CHECK(ndr_pull_align(ndr, 4));
7285                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7286                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7287                 if (_ptr_sitename) {
7288                         NDR_PULL_ALLOC(ndr, r->sitename);
7289                 } else {
7290                         r->sitename = NULL;
7291                 }
7292         }
7293         if (ndr_flags & NDR_BUFFERS) {
7294                 if (r->sitename) {
7295                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7296                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7297                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7298                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7299                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7300                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7301                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7302                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7303                         }
7304                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7305                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7306                         }
7307                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7308                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7309                 }
7310                 if (r->sitename) {
7311                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7312                 }
7313         }
7314         return NDR_ERR_SUCCESS;
7315 }
7316
7317 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r)
7318 {
7319         uint32_t cntr_sitename_1;
7320         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesWCtr");
7321         ndr->depth++;
7322         ndr_print_uint32(ndr, "count", r->count);
7323         ndr_print_ptr(ndr, "sitename", r->sitename);
7324         ndr->depth++;
7325         if (r->sitename) {
7326                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", r->count);
7327                 ndr->depth++;
7328                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7329                         char *idx_1=NULL;
7330                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
7331                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
7332                                 free(idx_1);
7333                         }
7334                 }
7335                 ndr->depth--;
7336         }
7337         ndr->depth--;
7338         ndr->depth--;
7339 }
7340
7341 static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddress *r)
7342 {
7343         if (ndr_flags & NDR_SCALARS) {
7344                 NDR_CHECK(ndr_push_align(ndr, 4));
7345                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
7346                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7347         }
7348         if (ndr_flags & NDR_BUFFERS) {
7349                 if (r->buffer) {
7350                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7351                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->size));
7352                 }
7353         }
7354         return NDR_ERR_SUCCESS;
7355 }
7356
7357 static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r)
7358 {
7359         uint32_t _ptr_buffer;
7360         TALLOC_CTX *_mem_save_buffer_0;
7361         if (ndr_flags & NDR_SCALARS) {
7362                 NDR_CHECK(ndr_pull_align(ndr, 4));
7363                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
7364                 if (_ptr_buffer) {
7365                         NDR_PULL_ALLOC(ndr, r->buffer);
7366                 } else {
7367                         r->buffer = NULL;
7368                 }
7369                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7370         }
7371         if (ndr_flags & NDR_BUFFERS) {
7372                 if (r->buffer) {
7373                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
7374                         NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
7375                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
7376                         NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
7377                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
7378                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
7379                 }
7380                 if (r->buffer) {
7381                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->size));
7382                 }
7383         }
7384         return NDR_ERR_SUCCESS;
7385 }
7386
7387 _PUBLIC_ void ndr_print_netr_DsRAddress(struct ndr_print *ndr, const char *name, const struct netr_DsRAddress *r)
7388 {
7389         ndr_print_struct(ndr, name, "netr_DsRAddress");
7390         ndr->depth++;
7391         ndr_print_ptr(ndr, "buffer", r->buffer);
7392         ndr->depth++;
7393         if (r->buffer) {
7394                 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->size);
7395         }
7396         ndr->depth--;
7397         ndr_print_uint32(ndr, "size", r->size);
7398         ndr->depth--;
7399 }
7400
7401 static enum ndr_err_code ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7402 {
7403         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7404         return NDR_ERR_SUCCESS;
7405 }
7406
7407 static enum ndr_err_code ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7408 {
7409         uint32_t v;
7410         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7411         *r = v;
7412         return NDR_ERR_SUCCESS;
7413 }
7414
7415 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7416 {
7417         ndr_print_uint32(ndr, name, r);
7418         ndr->depth++;
7419         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
7420         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
7421         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
7422         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
7423         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
7424         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
7425         ndr->depth--;
7426 }
7427
7428 static enum ndr_err_code ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
7429 {
7430         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7431         return NDR_ERR_SUCCESS;
7432 }
7433
7434 static enum ndr_err_code ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
7435 {
7436         uint32_t v;
7437         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7438         *r = v;
7439         return NDR_ERR_SUCCESS;
7440 }
7441
7442 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
7443 {
7444         const char *val = NULL;
7445
7446         switch (r) {
7447                 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
7448                 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
7449                 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
7450                 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
7451         }
7452         ndr_print_enum(ndr, name, "ENUM", val, r);
7453 }
7454
7455 static enum ndr_err_code ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7456 {
7457         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7458         return NDR_ERR_SUCCESS;
7459 }
7460
7461 static enum ndr_err_code ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7462 {
7463         uint32_t v;
7464         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7465         *r = v;
7466         return NDR_ERR_SUCCESS;
7467 }
7468
7469 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
7470 {
7471         ndr_print_uint32(ndr, name, r);
7472         ndr->depth++;
7473         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
7474         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
7475         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
7476         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
7477         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
7478         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
7479         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
7480         ndr->depth--;
7481 }
7482
7483 static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
7484 {
7485         if (ndr_flags & NDR_SCALARS) {
7486                 NDR_CHECK(ndr_push_align(ndr, 4));
7487                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7488                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7489                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
7490                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7491                 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
7492                 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
7493                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
7494                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
7495         }
7496         if (ndr_flags & NDR_BUFFERS) {
7497                 if (r->netbios_name) {
7498                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7499                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7500                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7501                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7502                 }
7503                 if (r->dns_name) {
7504                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7505                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7506                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7507                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7508                 }
7509                 if (r->sid) {
7510                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7511                 }
7512                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
7513         }
7514         return NDR_ERR_SUCCESS;
7515 }
7516
7517 static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
7518 {
7519         uint32_t _ptr_netbios_name;
7520         TALLOC_CTX *_mem_save_netbios_name_0;
7521         uint32_t _ptr_dns_name;
7522         TALLOC_CTX *_mem_save_dns_name_0;
7523         uint32_t _ptr_sid;
7524         TALLOC_CTX *_mem_save_sid_0;
7525         if (ndr_flags & NDR_SCALARS) {
7526                 NDR_CHECK(ndr_pull_align(ndr, 4));
7527                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7528                 if (_ptr_netbios_name) {
7529                         NDR_PULL_ALLOC(ndr, r->netbios_name);
7530                 } else {
7531                         r->netbios_name = NULL;
7532                 }
7533                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7534                 if (_ptr_dns_name) {
7535                         NDR_PULL_ALLOC(ndr, r->dns_name);
7536                 } else {
7537                         r->dns_name = NULL;
7538                 }
7539                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
7540                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7541                 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
7542                 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
7543                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
7544                 if (_ptr_sid) {
7545                         NDR_PULL_ALLOC(ndr, r->sid);
7546                 } else {
7547                         r->sid = NULL;
7548                 }
7549                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
7550         }
7551         if (ndr_flags & NDR_BUFFERS) {
7552                 if (r->netbios_name) {
7553                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7554                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7555                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7556                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7557                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
7558                                 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));
7559                         }
7560                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
7561                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
7562                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7563                 }
7564                 if (r->dns_name) {
7565                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7566                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7567                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7568                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7569                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
7570                                 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));
7571                         }
7572                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
7573                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
7574                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7575                 }
7576                 if (r->sid) {
7577                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7578                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
7579                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7580                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
7581                 }
7582                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
7583         }
7584         return NDR_ERR_SUCCESS;
7585 }
7586
7587 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
7588 {
7589         ndr_print_struct(ndr, name, "netr_DomainTrust");
7590         ndr->depth++;
7591         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7592         ndr->depth++;
7593         if (r->netbios_name) {
7594                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7595         }
7596         ndr->depth--;
7597         ndr_print_ptr(ndr, "dns_name", r->dns_name);
7598         ndr->depth++;
7599         if (r->dns_name) {
7600                 ndr_print_string(ndr, "dns_name", r->dns_name);
7601         }
7602         ndr->depth--;
7603         ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
7604         ndr_print_uint32(ndr, "parent_index", r->parent_index);
7605         ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
7606         ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
7607         ndr_print_ptr(ndr, "sid", r->sid);
7608         ndr->depth++;
7609         if (r->sid) {
7610                 ndr_print_dom_sid2(ndr, "sid", r->sid);
7611         }
7612         ndr->depth--;
7613         ndr_print_GUID(ndr, "guid", &r->guid);
7614         ndr->depth--;
7615 }
7616
7617 static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustList *r)
7618 {
7619         uint32_t cntr_array_1;
7620         if (ndr_flags & NDR_SCALARS) {
7621                 NDR_CHECK(ndr_push_align(ndr, 4));
7622                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7623                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7624         }
7625         if (ndr_flags & NDR_BUFFERS) {
7626                 if (r->array) {
7627                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7628                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7629                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7630                         }
7631                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7632                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7633                         }
7634                 }
7635         }
7636         return NDR_ERR_SUCCESS;
7637 }
7638
7639 static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r)
7640 {
7641         uint32_t _ptr_array;
7642         uint32_t cntr_array_1;
7643         TALLOC_CTX *_mem_save_array_0;
7644         TALLOC_CTX *_mem_save_array_1;
7645         if (ndr_flags & NDR_SCALARS) {
7646                 NDR_CHECK(ndr_pull_align(ndr, 4));
7647                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7648                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7649                 if (_ptr_array) {
7650                         NDR_PULL_ALLOC(ndr, r->array);
7651                 } else {
7652                         r->array = NULL;
7653                 }
7654         }
7655         if (ndr_flags & NDR_BUFFERS) {
7656                 if (r->array) {
7657                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7658                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7659                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7660                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
7661                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7662                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7663                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7664                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7665                         }
7666                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7667                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7668                         }
7669                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7670                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7671                 }
7672                 if (r->array) {
7673                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7674                 }
7675         }
7676         return NDR_ERR_SUCCESS;
7677 }
7678
7679 _PUBLIC_ void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r)
7680 {
7681         uint32_t cntr_array_1;
7682         ndr_print_struct(ndr, name, "netr_DomainTrustList");
7683         ndr->depth++;
7684         ndr_print_uint32(ndr, "count", r->count);
7685         ndr_print_ptr(ndr, "array", r->array);
7686         ndr->depth++;
7687         if (r->array) {
7688                 ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
7689                 ndr->depth++;
7690                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7691                         char *idx_1=NULL;
7692                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
7693                                 ndr_print_netr_DomainTrust(ndr, "array", &r->array[cntr_array_1]);
7694                                 free(idx_1);
7695                         }
7696                 }
7697                 ndr->depth--;
7698         }
7699         ndr->depth--;
7700         ndr->depth--;
7701 }
7702
7703 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesExWCtr *r)
7704 {
7705         uint32_t cntr_sitename_1;
7706         uint32_t cntr_subnetname_1;
7707         if (ndr_flags & NDR_SCALARS) {
7708                 NDR_CHECK(ndr_push_align(ndr, 4));
7709                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7710                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7711                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->subnetname));
7712         }
7713         if (ndr_flags & NDR_BUFFERS) {
7714                 if (r->sitename) {
7715                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7716                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7717                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7718                         }
7719                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7720                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7721                         }
7722                 }
7723                 if (r->subnetname) {
7724                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7725                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7726                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7727                         }
7728                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7729                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7730                         }
7731                 }
7732         }
7733         return NDR_ERR_SUCCESS;
7734 }
7735
7736 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r)
7737 {
7738         uint32_t _ptr_sitename;
7739         uint32_t cntr_sitename_1;
7740         TALLOC_CTX *_mem_save_sitename_0;
7741         TALLOC_CTX *_mem_save_sitename_1;
7742         uint32_t _ptr_subnetname;
7743         uint32_t cntr_subnetname_1;
7744         TALLOC_CTX *_mem_save_subnetname_0;
7745         TALLOC_CTX *_mem_save_subnetname_1;
7746         if (ndr_flags & NDR_SCALARS) {
7747                 NDR_CHECK(ndr_pull_align(ndr, 4));
7748                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7749                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7750                 if (_ptr_sitename) {
7751                         NDR_PULL_ALLOC(ndr, r->sitename);
7752                 } else {
7753                         r->sitename = NULL;
7754                 }
7755                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_subnetname));
7756                 if (_ptr_subnetname) {
7757                         NDR_PULL_ALLOC(ndr, r->subnetname);
7758                 } else {
7759                         r->subnetname = NULL;
7760                 }
7761         }
7762         if (ndr_flags & NDR_BUFFERS) {
7763                 if (r->sitename) {
7764                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7765                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7766                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7767                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7768                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7769                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7770                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7771                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7772                         }
7773                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7774                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7775                         }
7776                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7777                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7778                 }
7779                 if (r->subnetname) {
7780                         _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7781                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7782                         NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname));
7783                         NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname));
7784                         _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr);
7785                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7786                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7787                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7788                         }
7789                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7790                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7791                         }
7792                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0);
7793                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_0, 0);
7794                 }
7795                 if (r->sitename) {
7796                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7797                 }
7798                 if (r->subnetname) {
7799                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->subnetname, r->count));
7800                 }
7801         }
7802         return NDR_ERR_SUCCESS;
7803 }
7804
7805 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r)
7806 {
7807         uint32_t cntr_sitename_1;
7808         uint32_t cntr_subnetname_1;
7809         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExWCtr");
7810         ndr->depth++;
7811         ndr_print_uint32(ndr, "count", r->count);
7812         ndr_print_ptr(ndr, "sitename", r->sitename);
7813         ndr->depth++;
7814         if (r->sitename) {
7815                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", r->count);
7816                 ndr->depth++;
7817                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7818                         char *idx_1=NULL;
7819                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
7820                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
7821                                 free(idx_1);
7822                         }
7823                 }
7824                 ndr->depth--;
7825         }
7826         ndr->depth--;
7827         ndr_print_ptr(ndr, "subnetname", r->subnetname);
7828         ndr->depth++;
7829         if (r->subnetname) {
7830                 ndr->print(ndr, "%s: ARRAY(%d)", "subnetname", r->count);
7831                 ndr->depth++;
7832                 for (cntr_subnetname_1=0;cntr_subnetname_1<r->count;cntr_subnetname_1++) {
7833                         char *idx_1=NULL;
7834                         if (asprintf(&idx_1, "[%d]", cntr_subnetname_1) != -1) {
7835                                 ndr_print_lsa_String(ndr, "subnetname", &r->subnetname[cntr_subnetname_1]);
7836                                 free(idx_1);
7837                         }
7838                 }
7839                 ndr->depth--;
7840         }
7841         ndr->depth--;
7842         ndr->depth--;
7843 }
7844
7845 static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags, const struct DcSitesCtr *r)
7846 {
7847         uint32_t cntr_sites_1;
7848         if (ndr_flags & NDR_SCALARS) {
7849                 NDR_CHECK(ndr_push_align(ndr, 4));
7850                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7851                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sites));
7852         }
7853         if (ndr_flags & NDR_BUFFERS) {
7854                 if (r->sites) {
7855                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7856                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7857                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7858                         }
7859                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7860                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7861                         }
7862                 }
7863         }
7864         return NDR_ERR_SUCCESS;
7865 }
7866
7867 static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r)
7868 {
7869         uint32_t _ptr_sites;
7870         uint32_t cntr_sites_1;
7871         TALLOC_CTX *_mem_save_sites_0;
7872         TALLOC_CTX *_mem_save_sites_1;
7873         if (ndr_flags & NDR_SCALARS) {
7874                 NDR_CHECK(ndr_pull_align(ndr, 4));
7875                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sites));
7876                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sites));
7877                 if (_ptr_sites) {
7878                         NDR_PULL_ALLOC(ndr, r->sites);
7879                 } else {
7880                         r->sites = NULL;
7881                 }
7882         }
7883         if (ndr_flags & NDR_BUFFERS) {
7884                 if (r->sites) {
7885                         _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr);
7886                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7887                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sites));
7888                         NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites));
7889                         _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr);
7890                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7891                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7892                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7893                         }
7894                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7895                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7896                         }
7897                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0);
7898                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_0, 0);
7899                 }
7900                 if (r->sites) {
7901                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sites, r->num_sites));
7902                 }
7903         }
7904         return NDR_ERR_SUCCESS;
7905 }
7906
7907 _PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r)
7908 {
7909         uint32_t cntr_sites_1;
7910         ndr_print_struct(ndr, name, "DcSitesCtr");
7911         ndr->depth++;
7912         ndr_print_uint32(ndr, "num_sites", r->num_sites);
7913         ndr_print_ptr(ndr, "sites", r->sites);
7914         ndr->depth++;
7915         if (r->sites) {
7916                 ndr->print(ndr, "%s: ARRAY(%d)", "sites", r->num_sites);
7917                 ndr->depth++;
7918                 for (cntr_sites_1=0;cntr_sites_1<r->num_sites;cntr_sites_1++) {
7919                         char *idx_1=NULL;
7920                         if (asprintf(&idx_1, "[%d]", cntr_sites_1) != -1) {
7921                                 ndr_print_lsa_String(ndr, "sites", &r->sites[cntr_sites_1]);
7922                                 free(idx_1);
7923                         }
7924                 }
7925                 ndr->depth--;
7926         }
7927         ndr->depth--;
7928         ndr->depth--;
7929 }
7930
7931 static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
7932 {
7933         if (flags & NDR_IN) {
7934                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
7935                 if (r->in.server_name) {
7936                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7937                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7938                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7939                         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));
7940                 }
7941                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7942                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7943                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7944                 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));
7945                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7946                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7947                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7948                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7949         }
7950         if (flags & NDR_OUT) {
7951                 if (r->out.info == NULL) {
7952                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7953                 }
7954                 NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
7955                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
7956         }
7957         return NDR_ERR_SUCCESS;
7958 }
7959
7960 static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
7961 {
7962         uint32_t _ptr_server_name;
7963         TALLOC_CTX *_mem_save_server_name_0;
7964         TALLOC_CTX *_mem_save_info_0;
7965         if (flags & NDR_IN) {
7966                 ZERO_STRUCT(r->out);
7967
7968                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
7969                 if (_ptr_server_name) {
7970                         NDR_PULL_ALLOC(ndr, r->in.server_name);
7971                 } else {
7972                         r->in.server_name = NULL;
7973                 }
7974                 if (r->in.server_name) {
7975                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7976                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
7977                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
7978                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
7979                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
7980                                 return 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));
7981                         }
7982                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
7983                         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));
7984                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
7985                 }
7986                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
7987                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
7988                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
7989                         return 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));
7990                 }
7991                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
7992                 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));
7993                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
7994                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
7995                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
7996                         return 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));
7997                 }
7998                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
7999                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8000                 NDR_PULL_ALLOC(ndr, r->out.info);
8001                 ZERO_STRUCTP(r->out.info);
8002         }
8003         if (flags & NDR_OUT) {
8004                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8005                         NDR_PULL_ALLOC(ndr, r->out.info);
8006                 }
8007                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8008                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8009                 NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
8010                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8011                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8012         }
8013         return NDR_ERR_SUCCESS;
8014 }
8015
8016 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
8017 {
8018         ndr_print_struct(ndr, name, "netr_LogonUasLogon");
8019         ndr->depth++;
8020         if (flags & NDR_SET_VALUES) {
8021                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8022         }
8023         if (flags & NDR_IN) {
8024                 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
8025                 ndr->depth++;
8026                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8027                 ndr->depth++;
8028                 if (r->in.server_name) {
8029                         ndr_print_string(ndr, "server_name", r->in.server_name);
8030                 }
8031                 ndr->depth--;
8032                 ndr_print_string(ndr, "account_name", r->in.account_name);
8033                 ndr_print_string(ndr, "workstation", r->in.workstation);
8034                 ndr->depth--;
8035         }
8036         if (flags & NDR_OUT) {
8037                 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
8038                 ndr->depth++;
8039                 ndr_print_ptr(ndr, "info", r->out.info);
8040                 ndr->depth++;
8041                 ndr_print_netr_UasInfo(ndr, "info", r->out.info);
8042                 ndr->depth--;
8043                 ndr_print_WERROR(ndr, "result", r->out.result);
8044                 ndr->depth--;
8045         }
8046         ndr->depth--;
8047 }
8048
8049 static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
8050 {
8051         if (flags & NDR_IN) {
8052                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8053                 if (r->in.server_name) {
8054                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8055                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8056                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8057                         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));
8058                 }
8059                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8060                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8061                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8062                 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));
8063                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8064                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8065                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8066                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8067         }
8068         if (flags & NDR_OUT) {
8069                 if (r->out.info == NULL) {
8070                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8071                 }
8072                 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8073                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8074         }
8075         return NDR_ERR_SUCCESS;
8076 }
8077
8078 static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
8079 {
8080         uint32_t _ptr_server_name;
8081         TALLOC_CTX *_mem_save_server_name_0;
8082         TALLOC_CTX *_mem_save_info_0;
8083         if (flags & NDR_IN) {
8084                 ZERO_STRUCT(r->out);
8085
8086                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8087                 if (_ptr_server_name) {
8088                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8089                 } else {
8090                         r->in.server_name = NULL;
8091                 }
8092                 if (r->in.server_name) {
8093                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8094                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8095                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8096                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8097                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8098                                 return 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));
8099                         }
8100                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8101                         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));
8102                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8103                 }
8104                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8105                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8106                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8107                         return 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));
8108                 }
8109                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8110                 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));
8111                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8112                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8113                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8114                         return 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));
8115                 }
8116                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8117                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8118                 NDR_PULL_ALLOC(ndr, r->out.info);
8119                 ZERO_STRUCTP(r->out.info);
8120         }
8121         if (flags & NDR_OUT) {
8122                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8123                         NDR_PULL_ALLOC(ndr, r->out.info);
8124                 }
8125                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8126                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8127                 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8128                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8129                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8130         }
8131         return NDR_ERR_SUCCESS;
8132 }
8133
8134 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
8135 {
8136         ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
8137         ndr->depth++;
8138         if (flags & NDR_SET_VALUES) {
8139                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8140         }
8141         if (flags & NDR_IN) {
8142                 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
8143                 ndr->depth++;
8144                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8145                 ndr->depth++;
8146                 if (r->in.server_name) {
8147                         ndr_print_string(ndr, "server_name", r->in.server_name);
8148                 }
8149                 ndr->depth--;
8150                 ndr_print_string(ndr, "account_name", r->in.account_name);
8151                 ndr_print_string(ndr, "workstation", r->in.workstation);
8152                 ndr->depth--;
8153         }
8154         if (flags & NDR_OUT) {
8155                 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
8156                 ndr->depth++;
8157                 ndr_print_ptr(ndr, "info", r->out.info);
8158                 ndr->depth++;
8159                 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
8160                 ndr->depth--;
8161                 ndr_print_WERROR(ndr, "result", r->out.result);
8162                 ndr->depth--;
8163         }
8164         ndr->depth--;
8165 }
8166
8167 static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
8168 {
8169         if (flags & NDR_IN) {
8170                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8171                 if (r->in.server_name) {
8172                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8173                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8174                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8175                         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));
8176                 }
8177                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8178                 if (r->in.computer_name) {
8179                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8180                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8181                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8182                         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));
8183                 }
8184                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8185                 if (r->in.credential) {
8186                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8187                 }
8188                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8189                 if (r->in.return_authenticator) {
8190                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8191                 }
8192                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
8193                 if (r->in.logon == NULL) {
8194                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8195                 }
8196                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
8197                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
8198                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
8199         }
8200         if (flags & NDR_OUT) {
8201                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8202                 if (r->out.return_authenticator) {
8203                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8204                 }
8205                 if (r->out.validation == NULL) {
8206                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8207                 }
8208                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8209                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8210                 if (r->out.authoritative == NULL) {
8211                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8212                 }
8213                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
8214                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8215         }
8216         return NDR_ERR_SUCCESS;
8217 }
8218
8219 static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
8220 {
8221         uint32_t _ptr_server_name;
8222         uint32_t _ptr_computer_name;
8223         uint32_t _ptr_credential;
8224         uint32_t _ptr_return_authenticator;
8225         TALLOC_CTX *_mem_save_server_name_0;
8226         TALLOC_CTX *_mem_save_computer_name_0;
8227         TALLOC_CTX *_mem_save_credential_0;
8228         TALLOC_CTX *_mem_save_return_authenticator_0;
8229         TALLOC_CTX *_mem_save_logon_0;
8230         TALLOC_CTX *_mem_save_validation_0;
8231         TALLOC_CTX *_mem_save_authoritative_0;
8232         if (flags & NDR_IN) {
8233                 ZERO_STRUCT(r->out);
8234
8235                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8236                 if (_ptr_server_name) {
8237                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8238                 } else {
8239                         r->in.server_name = NULL;
8240                 }
8241                 if (r->in.server_name) {
8242                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8243                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8244                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8245                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8246                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8247                                 return 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));
8248                         }
8249                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8250                         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));
8251                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8252                 }
8253                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8254                 if (_ptr_computer_name) {
8255                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8256                 } else {
8257                         r->in.computer_name = NULL;
8258                 }
8259                 if (r->in.computer_name) {
8260                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8261                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8262                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8263                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8264                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8265                                 return 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));
8266                         }
8267                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8268                         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));
8269                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8270                 }
8271                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8272                 if (_ptr_credential) {
8273                         NDR_PULL_ALLOC(ndr, r->in.credential);
8274                 } else {
8275                         r->in.credential = NULL;
8276                 }
8277                 if (r->in.credential) {
8278                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8279                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8280                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8281                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8282                 }
8283                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8284                 if (_ptr_return_authenticator) {
8285                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8286                 } else {
8287                         r->in.return_authenticator = NULL;
8288                 }
8289                 if (r->in.return_authenticator) {
8290                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8291                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8292                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8293                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8294                 }
8295                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
8296                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8297                         NDR_PULL_ALLOC(ndr, r->in.logon);
8298                 }
8299                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
8300                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
8301                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
8302                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
8303                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
8304                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
8305                 NDR_PULL_ALLOC(ndr, r->out.validation);
8306                 ZERO_STRUCTP(r->out.validation);
8307                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
8308                 ZERO_STRUCTP(r->out.authoritative);
8309         }
8310         if (flags & NDR_OUT) {
8311                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8312                 if (_ptr_return_authenticator) {
8313                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8314                 } else {
8315                         r->out.return_authenticator = NULL;
8316                 }
8317                 if (r->out.return_authenticator) {
8318                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8319                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8320                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8321                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8322                 }
8323                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8324                         NDR_PULL_ALLOC(ndr, r->out.validation);
8325                 }
8326                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
8327                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
8328                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8329                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8330                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
8331                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8332                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
8333                 }
8334                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
8335                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
8336                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
8337                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
8338                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8339         }
8340         return NDR_ERR_SUCCESS;
8341 }
8342
8343 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
8344 {
8345         ndr_print_struct(ndr, name, "netr_LogonSamLogon");
8346         ndr->depth++;
8347         if (flags & NDR_SET_VALUES) {
8348                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8349         }
8350         if (flags & NDR_IN) {
8351                 ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
8352                 ndr->depth++;
8353                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8354                 ndr->depth++;
8355                 if (r->in.server_name) {
8356                         ndr_print_string(ndr, "server_name", r->in.server_name);
8357                 }
8358                 ndr->depth--;
8359                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8360                 ndr->depth++;
8361                 if (r->in.computer_name) {
8362                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8363                 }
8364                 ndr->depth--;
8365                 ndr_print_ptr(ndr, "credential", r->in.credential);
8366                 ndr->depth++;
8367                 if (r->in.credential) {
8368                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8369                 }
8370                 ndr->depth--;
8371                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8372                 ndr->depth++;
8373                 if (r->in.return_authenticator) {
8374                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8375                 }
8376                 ndr->depth--;
8377                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
8378                 ndr_print_ptr(ndr, "logon", r->in.logon);
8379                 ndr->depth++;
8380                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
8381                 ndr_print_netr_LogonInfo(ndr, "logon", r->in.logon);
8382                 ndr->depth--;
8383                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
8384                 ndr->depth--;
8385         }
8386         if (flags & NDR_OUT) {
8387                 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
8388                 ndr->depth++;
8389                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8390                 ndr->depth++;
8391                 if (r->out.return_authenticator) {
8392                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8393                 }
8394                 ndr->depth--;
8395                 ndr_print_ptr(ndr, "validation", r->out.validation);
8396                 ndr->depth++;
8397                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
8398                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
8399                 ndr->depth--;
8400                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
8401                 ndr->depth++;
8402                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
8403                 ndr->depth--;
8404                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8405                 ndr->depth--;
8406         }
8407         ndr->depth--;
8408 }
8409
8410 static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
8411 {
8412         if (flags & NDR_IN) {
8413                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8414                 if (r->in.server_name) {
8415                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8416                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8417                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8418                         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));
8419                 }
8420                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8421                 if (r->in.computer_name) {
8422                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8423                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8424                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8425                         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));
8426                 }
8427                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8428                 if (r->in.credential) {
8429                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8430                 }
8431                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8432                 if (r->in.return_authenticator) {
8433                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8434                 }
8435                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
8436                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8437                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8438         }
8439         if (flags & NDR_OUT) {
8440                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8441                 if (r->out.return_authenticator) {
8442                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8443                 }
8444                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8445         }
8446         return NDR_ERR_SUCCESS;
8447 }
8448
8449 static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
8450 {
8451         uint32_t _ptr_server_name;
8452         uint32_t _ptr_computer_name;
8453         uint32_t _ptr_credential;
8454         uint32_t _ptr_return_authenticator;
8455         TALLOC_CTX *_mem_save_server_name_0;
8456         TALLOC_CTX *_mem_save_computer_name_0;
8457         TALLOC_CTX *_mem_save_credential_0;
8458         TALLOC_CTX *_mem_save_return_authenticator_0;
8459         if (flags & NDR_IN) {
8460                 ZERO_STRUCT(r->out);
8461
8462                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8463                 if (_ptr_server_name) {
8464                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8465                 } else {
8466                         r->in.server_name = NULL;
8467                 }
8468                 if (r->in.server_name) {
8469                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8470                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8471                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8472                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8473                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8474                                 return 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));
8475                         }
8476                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8477                         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));
8478                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8479                 }
8480                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8481                 if (_ptr_computer_name) {
8482                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8483                 } else {
8484                         r->in.computer_name = NULL;
8485                 }
8486                 if (r->in.computer_name) {
8487                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8488                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8489                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8490                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8491                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8492                                 return 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));
8493                         }
8494                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8495                         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));
8496                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8497                 }
8498                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8499                 if (_ptr_credential) {
8500                         NDR_PULL_ALLOC(ndr, r->in.credential);
8501                 } else {
8502                         r->in.credential = NULL;
8503                 }
8504                 if (r->in.credential) {
8505                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8506                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8507                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8508                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8509                 }
8510                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8511                 if (_ptr_return_authenticator) {
8512                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8513                 } else {
8514                         r->in.return_authenticator = NULL;
8515                 }
8516                 if (r->in.return_authenticator) {
8517                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8518                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8519                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8520                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8521                 }
8522                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
8523                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8524                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8525         }
8526         if (flags & NDR_OUT) {
8527                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8528                 if (_ptr_return_authenticator) {
8529                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8530                 } else {
8531                         r->out.return_authenticator = NULL;
8532                 }
8533                 if (r->out.return_authenticator) {
8534                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8535                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8536                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8537                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8538                 }
8539                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8540         }
8541         return NDR_ERR_SUCCESS;
8542 }
8543
8544 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
8545 {
8546         ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
8547         ndr->depth++;
8548         if (flags & NDR_SET_VALUES) {
8549                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8550         }
8551         if (flags & NDR_IN) {
8552                 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
8553                 ndr->depth++;
8554                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8555                 ndr->depth++;
8556                 if (r->in.server_name) {
8557                         ndr_print_string(ndr, "server_name", r->in.server_name);
8558                 }
8559                 ndr->depth--;
8560                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8561                 ndr->depth++;
8562                 if (r->in.computer_name) {
8563                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8564                 }
8565                 ndr->depth--;
8566                 ndr_print_ptr(ndr, "credential", r->in.credential);
8567                 ndr->depth++;
8568                 if (r->in.credential) {
8569                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8570                 }
8571                 ndr->depth--;
8572                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8573                 ndr->depth++;
8574                 if (r->in.return_authenticator) {
8575                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8576                 }
8577                 ndr->depth--;
8578                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
8579                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
8580                 ndr_print_netr_LogonInfo(ndr, "logon", &r->in.logon);
8581                 ndr->depth--;
8582         }
8583         if (flags & NDR_OUT) {
8584                 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
8585                 ndr->depth++;
8586                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8587                 ndr->depth++;
8588                 if (r->out.return_authenticator) {
8589                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8590                 }
8591                 ndr->depth--;
8592                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8593                 ndr->depth--;
8594         }
8595         ndr->depth--;
8596 }
8597
8598 static enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
8599 {
8600         if (flags & NDR_IN) {
8601                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8602                 if (r->in.server_name) {
8603                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8604                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8605                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8606                         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));
8607                 }
8608                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8609                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8610                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8611                 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));
8612                 if (r->in.credentials == NULL) {
8613                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8614                 }
8615                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8616         }
8617         if (flags & NDR_OUT) {
8618                 if (r->out.return_credentials == NULL) {
8619                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8620                 }
8621                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8622                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8623         }
8624         return NDR_ERR_SUCCESS;
8625 }
8626
8627 static enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
8628 {
8629         uint32_t _ptr_server_name;
8630         TALLOC_CTX *_mem_save_server_name_0;
8631         TALLOC_CTX *_mem_save_credentials_0;
8632         TALLOC_CTX *_mem_save_return_credentials_0;
8633         if (flags & NDR_IN) {
8634                 ZERO_STRUCT(r->out);
8635
8636                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8637                 if (_ptr_server_name) {
8638                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8639                 } else {
8640                         r->in.server_name = NULL;
8641                 }
8642                 if (r->in.server_name) {
8643                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8644                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8645                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8646                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8647                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8648                                 return 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));
8649                         }
8650                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8651                         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));
8652                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8653                 }
8654                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8655                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8656                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8657                         return 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));
8658                 }
8659                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8660                 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));
8661                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8662                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8663                 }
8664                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8665                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8666                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8667                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8668                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8669                 ZERO_STRUCTP(r->out.return_credentials);
8670         }
8671         if (flags & NDR_OUT) {
8672                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8673                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8674                 }
8675                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8676                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
8677                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8678                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8679                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8680         }
8681         return NDR_ERR_SUCCESS;
8682 }
8683
8684 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
8685 {
8686         ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
8687         ndr->depth++;
8688         if (flags & NDR_SET_VALUES) {
8689                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8690         }
8691         if (flags & NDR_IN) {
8692                 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
8693                 ndr->depth++;
8694                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8695                 ndr->depth++;
8696                 if (r->in.server_name) {
8697                         ndr_print_string(ndr, "server_name", r->in.server_name);
8698                 }
8699                 ndr->depth--;
8700                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8701                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8702                 ndr->depth++;
8703                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8704                 ndr->depth--;
8705                 ndr->depth--;
8706         }
8707         if (flags & NDR_OUT) {
8708                 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
8709                 ndr->depth++;
8710                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
8711                 ndr->depth++;
8712                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
8713                 ndr->depth--;
8714                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8715                 ndr->depth--;
8716         }
8717         ndr->depth--;
8718 }
8719
8720 static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
8721 {
8722         if (flags & NDR_IN) {
8723                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8724                 if (r->in.server_name) {
8725                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8726                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8727                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8728                         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));
8729                 }
8730                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8731                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8732                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8733                 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));
8734                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8735                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8736                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8737                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8738                 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));
8739                 if (r->in.credentials == NULL) {
8740                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8741                 }
8742                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8743         }
8744         if (flags & NDR_OUT) {
8745                 if (r->out.return_credentials == NULL) {
8746                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8747                 }
8748                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8749                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8750         }
8751         return NDR_ERR_SUCCESS;
8752 }
8753
8754 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
8755 {
8756         uint32_t _ptr_server_name;
8757         TALLOC_CTX *_mem_save_server_name_0;
8758         TALLOC_CTX *_mem_save_credentials_0;
8759         TALLOC_CTX *_mem_save_return_credentials_0;
8760         if (flags & NDR_IN) {
8761                 ZERO_STRUCT(r->out);
8762
8763                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8764                 if (_ptr_server_name) {
8765                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8766                 } else {
8767                         r->in.server_name = NULL;
8768                 }
8769                 if (r->in.server_name) {
8770                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8771                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8772                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8773                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8774                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8775                                 return 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));
8776                         }
8777                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8778                         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));
8779                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8780                 }
8781                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8782                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8783                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8784                         return 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));
8785                 }
8786                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8787                 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));
8788                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8789                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8790                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8791                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8792                         return 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));
8793                 }
8794                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8795                 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));
8796                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8797                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8798                 }
8799                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8800                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8801                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8802                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8803                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8804                 ZERO_STRUCTP(r->out.return_credentials);
8805         }
8806         if (flags & NDR_OUT) {
8807                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8808                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8809                 }
8810                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8811                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
8812                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8813                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8814                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8815         }
8816         return NDR_ERR_SUCCESS;
8817 }
8818
8819 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
8820 {
8821         ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
8822         ndr->depth++;
8823         if (flags & NDR_SET_VALUES) {
8824                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8825         }
8826         if (flags & NDR_IN) {
8827                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
8828                 ndr->depth++;
8829                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8830                 ndr->depth++;
8831                 if (r->in.server_name) {
8832                         ndr_print_string(ndr, "server_name", r->in.server_name);
8833                 }
8834                 ndr->depth--;
8835                 ndr_print_string(ndr, "account_name", r->in.account_name);
8836                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8837                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8838                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8839                 ndr->depth++;
8840                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8841                 ndr->depth--;
8842                 ndr->depth--;
8843         }
8844         if (flags & NDR_OUT) {
8845                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
8846                 ndr->depth++;
8847                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
8848                 ndr->depth++;
8849                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
8850                 ndr->depth--;
8851                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8852                 ndr->depth--;
8853         }
8854         ndr->depth--;
8855 }
8856
8857 static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
8858 {
8859         if (flags & NDR_IN) {
8860                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8861                 if (r->in.server_name) {
8862                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8863                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8864                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8865                         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));
8866                 }
8867                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8868                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8869                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8870                 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));
8871                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8872                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8873                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8874                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8875                 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));
8876                 if (r->in.credential == NULL) {
8877                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8878                 }
8879                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8880                 if (r->in.new_password == NULL) {
8881                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8882                 }
8883                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_password));
8884         }
8885         if (flags & NDR_OUT) {
8886                 if (r->out.return_authenticator == NULL) {
8887                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8888                 }
8889                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8890                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8891         }
8892         return NDR_ERR_SUCCESS;
8893 }
8894
8895 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
8896 {
8897         uint32_t _ptr_server_name;
8898         TALLOC_CTX *_mem_save_server_name_0;
8899         TALLOC_CTX *_mem_save_credential_0;
8900         TALLOC_CTX *_mem_save_return_authenticator_0;
8901         TALLOC_CTX *_mem_save_new_password_0;
8902         if (flags & NDR_IN) {
8903                 ZERO_STRUCT(r->out);
8904
8905                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8906                 if (_ptr_server_name) {
8907                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8908                 } else {
8909                         r->in.server_name = NULL;
8910                 }
8911                 if (r->in.server_name) {
8912                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8913                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8914                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8915                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8916                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8917                                 return 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));
8918                         }
8919                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8920                         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));
8921                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8922                 }
8923                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8924                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8925                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8926                         return 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));
8927                 }
8928                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8929                 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));
8930                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8931                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8932                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8933                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8934                         return 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));
8935                 }
8936                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8937                 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));
8938                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8939                         NDR_PULL_ALLOC(ndr, r->in.credential);
8940                 }
8941                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8942                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
8943                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8944                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
8945                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8946                         NDR_PULL_ALLOC(ndr, r->in.new_password);
8947                 }
8948                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
8949                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
8950                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_password));
8951                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
8952                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8953                 ZERO_STRUCTP(r->out.return_authenticator);
8954         }
8955         if (flags & NDR_OUT) {
8956                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8957                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8958                 }
8959                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8960                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8961                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8962                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8963                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8964         }
8965         return NDR_ERR_SUCCESS;
8966 }
8967
8968 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
8969 {
8970         ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
8971         ndr->depth++;
8972         if (flags & NDR_SET_VALUES) {
8973                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8974         }
8975         if (flags & NDR_IN) {
8976                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
8977                 ndr->depth++;
8978                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8979                 ndr->depth++;
8980                 if (r->in.server_name) {
8981                         ndr_print_string(ndr, "server_name", r->in.server_name);
8982                 }
8983                 ndr->depth--;
8984                 ndr_print_string(ndr, "account_name", r->in.account_name);
8985                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8986                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8987                 ndr_print_ptr(ndr, "credential", r->in.credential);
8988                 ndr->depth++;
8989                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8990                 ndr->depth--;
8991                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
8992                 ndr->depth++;
8993                 ndr_print_samr_Password(ndr, "new_password", r->in.new_password);
8994                 ndr->depth--;
8995                 ndr->depth--;
8996         }
8997         if (flags & NDR_OUT) {
8998                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
8999                 ndr->depth++;
9000                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9001                 ndr->depth++;
9002                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9003                 ndr->depth--;
9004                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9005                 ndr->depth--;
9006         }
9007         ndr->depth--;
9008 }
9009
9010 static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
9011 {
9012         if (flags & NDR_IN) {
9013                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9014                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9015                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9016                 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));
9017                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9018                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9019                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9020                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9021                 if (r->in.credential == NULL) {
9022                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9023                 }
9024                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9025                 if (r->in.return_authenticator == NULL) {
9026                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9027                 }
9028                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9029                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9030                 if (r->in.sequence_num == NULL) {
9031                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9032                 }
9033                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
9034                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9035         }
9036         if (flags & NDR_OUT) {
9037                 if (r->out.return_authenticator == NULL) {
9038                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9039                 }
9040                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9041                 if (r->out.sequence_num == NULL) {
9042                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9043                 }
9044                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
9045                 if (r->out.delta_enum_array == NULL) {
9046                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9047                 }
9048                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
9049                 if (*r->out.delta_enum_array) {
9050                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9051                 }
9052                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9053         }
9054         return NDR_ERR_SUCCESS;
9055 }
9056
9057 static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
9058 {
9059         uint32_t _ptr_delta_enum_array;
9060         TALLOC_CTX *_mem_save_credential_0;
9061         TALLOC_CTX *_mem_save_return_authenticator_0;
9062         TALLOC_CTX *_mem_save_sequence_num_0;
9063         TALLOC_CTX *_mem_save_delta_enum_array_0;
9064         TALLOC_CTX *_mem_save_delta_enum_array_1;
9065         if (flags & NDR_IN) {
9066                 ZERO_STRUCT(r->out);
9067
9068                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9069                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9070                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9071                         return 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));
9072                 }
9073                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9074                 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));
9075                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9076                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9077                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9078                         return 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));
9079                 }
9080                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9081                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9082                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9083                         NDR_PULL_ALLOC(ndr, r->in.credential);
9084                 }
9085                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9086                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
9087                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9088                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
9089                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9090                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9091                 }
9092                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9093                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9094                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9095                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9096                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9097                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9098                         NDR_PULL_ALLOC(ndr, r->in.sequence_num);
9099                 }
9100                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9101                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9102                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
9103                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9104                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9105                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9106                 *r->out.return_authenticator = *r->in.return_authenticator;
9107                 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9108                 *r->out.sequence_num = *r->in.sequence_num;
9109                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9110                 ZERO_STRUCTP(r->out.delta_enum_array);
9111         }
9112         if (flags & NDR_OUT) {
9113                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9114                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9115                 }
9116                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9117                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9118                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9119                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9120                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9121                         NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9122                 }
9123                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9124                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9125                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
9126                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9127                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9128                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9129                 }
9130                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9131                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9132                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
9133                 if (_ptr_delta_enum_array) {
9134                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
9135                 } else {
9136                         *r->out.delta_enum_array = NULL;
9137                 }
9138                 if (*r->out.delta_enum_array) {
9139                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
9140                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
9141                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9142                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
9143                 }
9144                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9145                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9146         }
9147         return NDR_ERR_SUCCESS;
9148 }
9149
9150 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
9151 {
9152         ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
9153         ndr->depth++;
9154         if (flags & NDR_SET_VALUES) {
9155                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9156         }
9157         if (flags & NDR_IN) {
9158                 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
9159                 ndr->depth++;
9160                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9161                 ndr_print_string(ndr, "computername", r->in.computername);
9162                 ndr_print_ptr(ndr, "credential", r->in.credential);
9163                 ndr->depth++;
9164                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9165                 ndr->depth--;
9166                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9167                 ndr->depth++;
9168                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9169                 ndr->depth--;
9170                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9171                 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
9172                 ndr->depth++;
9173                 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
9174                 ndr->depth--;
9175                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9176                 ndr->depth--;
9177         }
9178         if (flags & NDR_OUT) {
9179                 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
9180                 ndr->depth++;
9181                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9182                 ndr->depth++;
9183                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9184                 ndr->depth--;
9185                 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
9186                 ndr->depth++;
9187                 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
9188                 ndr->depth--;
9189                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9190                 ndr->depth++;
9191                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
9192                 ndr->depth++;
9193                 if (*r->out.delta_enum_array) {
9194                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
9195                 }
9196                 ndr->depth--;
9197                 ndr->depth--;
9198                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9199                 ndr->depth--;
9200         }
9201         ndr->depth--;
9202 }
9203
9204 static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
9205 {
9206         if (flags & NDR_IN) {
9207                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9208                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9209                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9210                 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));
9211                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9212                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9213                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9214                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9215                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9216                 if (r->in.return_authenticator == NULL) {
9217                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9218                 }
9219                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9220                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9221                 if (r->in.sync_context == NULL) {
9222                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9223                 }
9224                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
9225                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9226         }
9227         if (flags & NDR_OUT) {
9228                 if (r->out.return_authenticator == NULL) {
9229                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9230                 }
9231                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9232                 if (r->out.sync_context == NULL) {
9233                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9234                 }
9235                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
9236                 if (r->out.delta_enum_array == NULL) {
9237                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9238                 }
9239                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9240                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9241         }
9242         return NDR_ERR_SUCCESS;
9243 }
9244
9245 static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
9246 {
9247         TALLOC_CTX *_mem_save_return_authenticator_0;
9248         TALLOC_CTX *_mem_save_sync_context_0;
9249         TALLOC_CTX *_mem_save_delta_enum_array_0;
9250         if (flags & NDR_IN) {
9251                 ZERO_STRUCT(r->out);
9252
9253                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9254                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9255                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9256                         return 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));
9257                 }
9258                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9259                 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));
9260                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9261                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9262                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9263                         return 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));
9264                 }
9265                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9266                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9267                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9268                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9269                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9270                 }
9271                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9272                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9273                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9274                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9275                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9276                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9277                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
9278                 }
9279                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9280                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
9281                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
9282                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9283                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9284                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9285                 *r->out.return_authenticator = *r->in.return_authenticator;
9286                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
9287                 *r->out.sync_context = *r->in.sync_context;
9288                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9289                 ZERO_STRUCTP(r->out.delta_enum_array);
9290         }
9291         if (flags & NDR_OUT) {
9292                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9293                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9294                 }
9295                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9296                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9297                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9298                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9299                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9300                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
9301                 }
9302                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9303                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
9304                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
9305                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9306                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9307                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9308                 }
9309                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9310                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9311                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9312                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9313                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9314         }
9315         return NDR_ERR_SUCCESS;
9316 }
9317
9318 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
9319 {
9320         ndr_print_struct(ndr, name, "netr_DatabaseSync");
9321         ndr->depth++;
9322         if (flags & NDR_SET_VALUES) {
9323                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9324         }
9325         if (flags & NDR_IN) {
9326                 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
9327                 ndr->depth++;
9328                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9329                 ndr_print_string(ndr, "computername", r->in.computername);
9330                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9331                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9332                 ndr->depth++;
9333                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9334                 ndr->depth--;
9335                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9336                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
9337                 ndr->depth++;
9338                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
9339                 ndr->depth--;
9340                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9341                 ndr->depth--;
9342         }
9343         if (flags & NDR_OUT) {
9344                 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
9345                 ndr->depth++;
9346                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9347                 ndr->depth++;
9348                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9349                 ndr->depth--;
9350                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
9351                 ndr->depth++;
9352                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
9353                 ndr->depth--;
9354                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9355                 ndr->depth++;
9356                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
9357                 ndr->depth--;
9358                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9359                 ndr->depth--;
9360         }
9361         ndr->depth--;
9362 }
9363
9364 static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
9365 {
9366         if (flags & NDR_IN) {
9367                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9368                 if (r->in.logon_server) {
9369                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9370                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9371                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9372                         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));
9373                 }
9374                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9375                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9376                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9377                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9378                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9379                 if (r->in.return_authenticator == NULL) {
9380                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9381                 }
9382                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9383                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9384                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
9385                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9386                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9387         }
9388         if (flags & NDR_OUT) {
9389                 if (r->out.return_authenticator == NULL) {
9390                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9391                 }
9392                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9393                 if (r->out.buffer == NULL) {
9394                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9395                 }
9396                 {
9397                         struct ndr_push *_ndr_buffer;
9398                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9399                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9400                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9401                 }
9402                 if (r->out.count_returned == NULL) {
9403                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9404                 }
9405                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9406                 if (r->out.total_entries == NULL) {
9407                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9408                 }
9409                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9410                 if (r->out.recordid == NULL) {
9411                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9412                 }
9413                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9414                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9415         }
9416         return NDR_ERR_SUCCESS;
9417 }
9418
9419 static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
9420 {
9421         uint32_t _ptr_logon_server;
9422         TALLOC_CTX *_mem_save_logon_server_0;
9423         TALLOC_CTX *_mem_save_return_authenticator_0;
9424         TALLOC_CTX *_mem_save_buffer_0;
9425         TALLOC_CTX *_mem_save_count_returned_0;
9426         TALLOC_CTX *_mem_save_total_entries_0;
9427         TALLOC_CTX *_mem_save_recordid_0;
9428         if (flags & NDR_IN) {
9429                 ZERO_STRUCT(r->out);
9430
9431                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9432                 if (_ptr_logon_server) {
9433                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9434                 } else {
9435                         r->in.logon_server = NULL;
9436                 }
9437                 if (r->in.logon_server) {
9438                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9439                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9440                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9441                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9442                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9443                                 return 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));
9444                         }
9445                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9446                         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));
9447                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9448                 }
9449                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9450                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9451                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9452                         return 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));
9453                 }
9454                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9455                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9456                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9457                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9458                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9459                 }
9460                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9461                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9462                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9463                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9464                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9465                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
9466                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9467                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9468                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9469                 *r->out.return_authenticator = *r->in.return_authenticator;
9470                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9471                 ZERO_STRUCTP(r->out.buffer);
9472                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9473                 ZERO_STRUCTP(r->out.count_returned);
9474                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9475                 ZERO_STRUCTP(r->out.total_entries);
9476                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9477                 ZERO_STRUCTP(r->out.recordid);
9478         }
9479         if (flags & NDR_OUT) {
9480                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9481                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9482                 }
9483                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9484                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9485                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9486                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9487                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9488                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9489                 }
9490                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9491                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9492                 {
9493                         struct ndr_pull *_ndr_buffer;
9494                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9495                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9496                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9497                 }
9498                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9499                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9500                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9501                 }
9502                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9503                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9504                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9505                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9506                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9507                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9508                 }
9509                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9510                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9511                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9512                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9513                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9514                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9515                 }
9516                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9517                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9518                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9519                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9520                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9521         }
9522         return NDR_ERR_SUCCESS;
9523 }
9524
9525 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
9526 {
9527         ndr_print_struct(ndr, name, "netr_AccountDeltas");
9528         ndr->depth++;
9529         if (flags & NDR_SET_VALUES) {
9530                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9531         }
9532         if (flags & NDR_IN) {
9533                 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
9534                 ndr->depth++;
9535                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9536                 ndr->depth++;
9537                 if (r->in.logon_server) {
9538                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9539                 }
9540                 ndr->depth--;
9541                 ndr_print_string(ndr, "computername", r->in.computername);
9542                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9543                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9544                 ndr->depth++;
9545                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9546                 ndr->depth--;
9547                 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
9548                 ndr_print_uint32(ndr, "count", r->in.count);
9549                 ndr_print_uint32(ndr, "level", r->in.level);
9550                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9551                 ndr->depth--;
9552         }
9553         if (flags & NDR_OUT) {
9554                 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
9555                 ndr->depth++;
9556                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9557                 ndr->depth++;
9558                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9559                 ndr->depth--;
9560                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9561                 ndr->depth++;
9562                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9563                 ndr->depth--;
9564                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9565                 ndr->depth++;
9566                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9567                 ndr->depth--;
9568                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9569                 ndr->depth++;
9570                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9571                 ndr->depth--;
9572                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9573                 ndr->depth++;
9574                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9575                 ndr->depth--;
9576                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9577                 ndr->depth--;
9578         }
9579         ndr->depth--;
9580 }
9581
9582 static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
9583 {
9584         if (flags & NDR_IN) {
9585                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9586                 if (r->in.logon_server) {
9587                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9588                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9589                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9590                         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));
9591                 }
9592                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9593                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9594                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9595                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9596                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9597                 if (r->in.return_authenticator == NULL) {
9598                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9599                 }
9600                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9601                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
9602                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9603                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9604                 if (r->in.recordid == NULL) {
9605                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9606                 }
9607                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9608         }
9609         if (flags & NDR_OUT) {
9610                 if (r->out.return_authenticator == NULL) {
9611                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9612                 }
9613                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9614                 if (r->out.buffer == NULL) {
9615                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9616                 }
9617                 {
9618                         struct ndr_push *_ndr_buffer;
9619                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9620                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9621                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9622                 }
9623                 if (r->out.count_returned == NULL) {
9624                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9625                 }
9626                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9627                 if (r->out.total_entries == NULL) {
9628                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9629                 }
9630                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9631                 if (r->out.next_reference == NULL) {
9632                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9633                 }
9634                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
9635                 if (r->out.recordid == NULL) {
9636                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9637                 }
9638                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9639                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9640         }
9641         return NDR_ERR_SUCCESS;
9642 }
9643
9644 static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
9645 {
9646         uint32_t _ptr_logon_server;
9647         TALLOC_CTX *_mem_save_logon_server_0;
9648         TALLOC_CTX *_mem_save_return_authenticator_0;
9649         TALLOC_CTX *_mem_save_buffer_0;
9650         TALLOC_CTX *_mem_save_count_returned_0;
9651         TALLOC_CTX *_mem_save_total_entries_0;
9652         TALLOC_CTX *_mem_save_next_reference_0;
9653         TALLOC_CTX *_mem_save_recordid_0;
9654         if (flags & NDR_IN) {
9655                 ZERO_STRUCT(r->out);
9656
9657                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9658                 if (_ptr_logon_server) {
9659                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9660                 } else {
9661                         r->in.logon_server = NULL;
9662                 }
9663                 if (r->in.logon_server) {
9664                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9665                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9666                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9667                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9668                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9669                                 return 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));
9670                         }
9671                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9672                         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));
9673                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9674                 }
9675                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9676                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9677                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9678                         return 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));
9679                 }
9680                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9681                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9682                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9683                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9684                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9685                 }
9686                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9687                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9688                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9689                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9690                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
9691                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9692                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9693                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9694                         NDR_PULL_ALLOC(ndr, r->in.recordid);
9695                 }
9696                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9697                 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
9698                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9699                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9700                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9701                 *r->out.return_authenticator = *r->in.return_authenticator;
9702                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9703                 ZERO_STRUCTP(r->out.buffer);
9704                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9705                 ZERO_STRUCTP(r->out.count_returned);
9706                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9707                 ZERO_STRUCTP(r->out.total_entries);
9708                 NDR_PULL_ALLOC(ndr, r->out.next_reference);
9709                 ZERO_STRUCTP(r->out.next_reference);
9710                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9711                 *r->out.recordid = *r->in.recordid;
9712         }
9713         if (flags & NDR_OUT) {
9714                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9715                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9716                 }
9717                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9718                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9719                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9720                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9721                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9722                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9723                 }
9724                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9725                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9726                 {
9727                         struct ndr_pull *_ndr_buffer;
9728                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9729                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9730                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9731                 }
9732                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9733                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9734                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9735                 }
9736                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9737                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9738                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9739                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9740                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9741                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9742                 }
9743                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9744                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9745                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9746                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9747                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9748                         NDR_PULL_ALLOC(ndr, r->out.next_reference);
9749                 }
9750                 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
9751                 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
9752                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
9753                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
9754                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9755                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9756                 }
9757                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9758                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9759                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9760                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9761                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9762         }
9763         return NDR_ERR_SUCCESS;
9764 }
9765
9766 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
9767 {
9768         ndr_print_struct(ndr, name, "netr_AccountSync");
9769         ndr->depth++;
9770         if (flags & NDR_SET_VALUES) {
9771                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9772         }
9773         if (flags & NDR_IN) {
9774                 ndr_print_struct(ndr, "in", "netr_AccountSync");
9775                 ndr->depth++;
9776                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9777                 ndr->depth++;
9778                 if (r->in.logon_server) {
9779                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9780                 }
9781                 ndr->depth--;
9782                 ndr_print_string(ndr, "computername", r->in.computername);
9783                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9784                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9785                 ndr->depth++;
9786                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9787                 ndr->depth--;
9788                 ndr_print_uint32(ndr, "reference", r->in.reference);
9789                 ndr_print_uint32(ndr, "level", r->in.level);
9790                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9791                 ndr_print_ptr(ndr, "recordid", r->in.recordid);
9792                 ndr->depth++;
9793                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
9794                 ndr->depth--;
9795                 ndr->depth--;
9796         }
9797         if (flags & NDR_OUT) {
9798                 ndr_print_struct(ndr, "out", "netr_AccountSync");
9799                 ndr->depth++;
9800                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9801                 ndr->depth++;
9802                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9803                 ndr->depth--;
9804                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9805                 ndr->depth++;
9806                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9807                 ndr->depth--;
9808                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9809                 ndr->depth++;
9810                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9811                 ndr->depth--;
9812                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9813                 ndr->depth++;
9814                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9815                 ndr->depth--;
9816                 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
9817                 ndr->depth++;
9818                 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
9819                 ndr->depth--;
9820                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9821                 ndr->depth++;
9822                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9823                 ndr->depth--;
9824                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9825                 ndr->depth--;
9826         }
9827         ndr->depth--;
9828 }
9829
9830 static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
9831 {
9832         if (flags & NDR_IN) {
9833                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9834                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9835                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9836                 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));
9837                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
9838                 if (r->in.domainname) {
9839                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9840                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9841                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9842                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9843                 }
9844         }
9845         if (flags & NDR_OUT) {
9846                 if (r->out.dcname == NULL) {
9847                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9848                 }
9849                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
9850                 if (*r->out.dcname) {
9851                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9852                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9853                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9854                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9855                 }
9856                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9857         }
9858         return NDR_ERR_SUCCESS;
9859 }
9860
9861 static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
9862 {
9863         uint32_t _ptr_domainname;
9864         uint32_t _ptr_dcname;
9865         TALLOC_CTX *_mem_save_domainname_0;
9866         TALLOC_CTX *_mem_save_dcname_0;
9867         TALLOC_CTX *_mem_save_dcname_1;
9868         if (flags & NDR_IN) {
9869                 ZERO_STRUCT(r->out);
9870
9871                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9872                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9873                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9874                         return 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));
9875                 }
9876                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9877                 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));
9878                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
9879                 if (_ptr_domainname) {
9880                         NDR_PULL_ALLOC(ndr, r->in.domainname);
9881                 } else {
9882                         r->in.domainname = NULL;
9883                 }
9884                 if (r->in.domainname) {
9885                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9886                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
9887                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
9888                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
9889                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
9890                                 return 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));
9891                         }
9892                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
9893                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
9894                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
9895                 }
9896                 NDR_PULL_ALLOC(ndr, r->out.dcname);
9897                 ZERO_STRUCTP(r->out.dcname);
9898         }
9899         if (flags & NDR_OUT) {
9900                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9901                         NDR_PULL_ALLOC(ndr, r->out.dcname);
9902                 }
9903                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9904                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
9905                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
9906                 if (_ptr_dcname) {
9907                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
9908                 } else {
9909                         *r->out.dcname = NULL;
9910                 }
9911                 if (*r->out.dcname) {
9912                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
9913                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
9914                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
9915                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
9916                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
9917                                 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));
9918                         }
9919                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
9920                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
9921                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
9922                 }
9923                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
9924                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9925         }
9926         return NDR_ERR_SUCCESS;
9927 }
9928
9929 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
9930 {
9931         ndr_print_struct(ndr, name, "netr_GetDcName");
9932         ndr->depth++;
9933         if (flags & NDR_SET_VALUES) {
9934                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9935         }
9936         if (flags & NDR_IN) {
9937                 ndr_print_struct(ndr, "in", "netr_GetDcName");
9938                 ndr->depth++;
9939                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9940                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
9941                 ndr->depth++;
9942                 if (r->in.domainname) {
9943                         ndr_print_string(ndr, "domainname", r->in.domainname);
9944                 }
9945                 ndr->depth--;
9946                 ndr->depth--;
9947         }
9948         if (flags & NDR_OUT) {
9949                 ndr_print_struct(ndr, "out", "netr_GetDcName");
9950                 ndr->depth++;
9951                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
9952                 ndr->depth++;
9953                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
9954                 ndr->depth++;
9955                 if (*r->out.dcname) {
9956                         ndr_print_string(ndr, "dcname", *r->out.dcname);
9957                 }
9958                 ndr->depth--;
9959                 ndr->depth--;
9960                 ndr_print_WERROR(ndr, "result", r->out.result);
9961                 ndr->depth--;
9962         }
9963         ndr->depth--;
9964 }
9965
9966 static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
9967 {
9968         if (flags & NDR_IN) {
9969                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9970                 if (r->in.logon_server) {
9971                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9972                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9973                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9974                         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));
9975                 }
9976                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
9977                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9978         }
9979         if (flags & NDR_OUT) {
9980                 if (r->out.info == NULL) {
9981                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9982                 }
9983                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
9984                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9985                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9986         }
9987         return NDR_ERR_SUCCESS;
9988 }
9989
9990 static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
9991 {
9992         uint32_t _ptr_logon_server;
9993         TALLOC_CTX *_mem_save_logon_server_0;
9994         TALLOC_CTX *_mem_save_info_0;
9995         if (flags & NDR_IN) {
9996                 ZERO_STRUCT(r->out);
9997
9998                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9999                 if (_ptr_logon_server) {
10000                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10001                 } else {
10002                         r->in.logon_server = NULL;
10003                 }
10004                 if (r->in.logon_server) {
10005                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10006                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10007                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10008                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10009                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10010                                 return 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));
10011                         }
10012                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10013                         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));
10014                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10015                 }
10016                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
10017                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10018                 NDR_PULL_ALLOC(ndr, r->out.info);
10019                 ZERO_STRUCTP(r->out.info);
10020         }
10021         if (flags & NDR_OUT) {
10022                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10023                         NDR_PULL_ALLOC(ndr, r->out.info);
10024                 }
10025                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10026                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
10027                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
10028                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10029                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
10030                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10031         }
10032         return NDR_ERR_SUCCESS;
10033 }
10034
10035 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
10036 {
10037         ndr_print_struct(ndr, name, "netr_LogonControl");
10038         ndr->depth++;
10039         if (flags & NDR_SET_VALUES) {
10040                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10041         }
10042         if (flags & NDR_IN) {
10043                 ndr_print_struct(ndr, "in", "netr_LogonControl");
10044                 ndr->depth++;
10045                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10046                 ndr->depth++;
10047                 if (r->in.logon_server) {
10048                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10049                 }
10050                 ndr->depth--;
10051                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
10052                 ndr_print_uint32(ndr, "level", r->in.level);
10053                 ndr->depth--;
10054         }
10055         if (flags & NDR_OUT) {
10056                 ndr_print_struct(ndr, "out", "netr_LogonControl");
10057                 ndr->depth++;
10058                 ndr_print_ptr(ndr, "info", r->out.info);
10059                 ndr->depth++;
10060                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
10061                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "info", r->out.info);
10062                 ndr->depth--;
10063                 ndr_print_WERROR(ndr, "result", r->out.result);
10064                 ndr->depth--;
10065         }
10066         ndr->depth--;
10067 }
10068
10069 static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
10070 {
10071         if (flags & NDR_IN) {
10072                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10073                 if (r->in.logon_server) {
10074                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10075                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10076                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10077                         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));
10078                 }
10079                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
10080                 if (r->in.domainname) {
10081                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10082                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10083                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10084                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10085                 }
10086         }
10087         if (flags & NDR_OUT) {
10088                 if (r->out.dcname == NULL) {
10089                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10090                 }
10091                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
10092                 if (*r->out.dcname) {
10093                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10094                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10095                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10096                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10097                 }
10098                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10099         }
10100         return NDR_ERR_SUCCESS;
10101 }
10102
10103 static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
10104 {
10105         uint32_t _ptr_logon_server;
10106         uint32_t _ptr_domainname;
10107         uint32_t _ptr_dcname;
10108         TALLOC_CTX *_mem_save_logon_server_0;
10109         TALLOC_CTX *_mem_save_domainname_0;
10110         TALLOC_CTX *_mem_save_dcname_0;
10111         TALLOC_CTX *_mem_save_dcname_1;
10112         if (flags & NDR_IN) {
10113                 ZERO_STRUCT(r->out);
10114
10115                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10116                 if (_ptr_logon_server) {
10117                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10118                 } else {
10119                         r->in.logon_server = NULL;
10120                 }
10121                 if (r->in.logon_server) {
10122                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10123                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10124                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10125                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10126                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10127                                 return 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));
10128                         }
10129                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10130                         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));
10131                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10132                 }
10133                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
10134                 if (_ptr_domainname) {
10135                         NDR_PULL_ALLOC(ndr, r->in.domainname);
10136                 } else {
10137                         r->in.domainname = NULL;
10138                 }
10139                 if (r->in.domainname) {
10140                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10141                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
10142                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
10143                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
10144                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
10145                                 return 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));
10146                         }
10147                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
10148                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
10149                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
10150                 }
10151                 NDR_PULL_ALLOC(ndr, r->out.dcname);
10152                 ZERO_STRUCTP(r->out.dcname);
10153         }
10154         if (flags & NDR_OUT) {
10155                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10156                         NDR_PULL_ALLOC(ndr, r->out.dcname);
10157                 }
10158                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10159                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
10160                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
10161                 if (_ptr_dcname) {
10162                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
10163                 } else {
10164                         *r->out.dcname = NULL;
10165                 }
10166                 if (*r->out.dcname) {
10167                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
10168                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
10169                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
10170                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
10171                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
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->out.dcname), ndr_get_array_length(ndr, r->out.dcname));
10173                         }
10174                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
10175                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
10176                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
10177                 }
10178                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
10179                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10180         }
10181         return NDR_ERR_SUCCESS;
10182 }
10183
10184 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
10185 {
10186         ndr_print_struct(ndr, name, "netr_GetAnyDCName");
10187         ndr->depth++;
10188         if (flags & NDR_SET_VALUES) {
10189                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10190         }
10191         if (flags & NDR_IN) {
10192                 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
10193                 ndr->depth++;
10194                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10195                 ndr->depth++;
10196                 if (r->in.logon_server) {
10197                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10198                 }
10199                 ndr->depth--;
10200                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
10201                 ndr->depth++;
10202                 if (r->in.domainname) {
10203                         ndr_print_string(ndr, "domainname", r->in.domainname);
10204                 }
10205                 ndr->depth--;
10206                 ndr->depth--;
10207         }
10208         if (flags & NDR_OUT) {
10209                 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
10210                 ndr->depth++;
10211                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
10212                 ndr->depth++;
10213                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
10214                 ndr->depth++;
10215                 if (*r->out.dcname) {
10216                         ndr_print_string(ndr, "dcname", *r->out.dcname);
10217                 }
10218                 ndr->depth--;
10219                 ndr->depth--;
10220                 ndr_print_WERROR(ndr, "result", r->out.result);
10221                 ndr->depth--;
10222         }
10223         ndr->depth--;
10224 }
10225
10226 static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
10227 {
10228         if (flags & NDR_IN) {
10229                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10230                 if (r->in.logon_server) {
10231                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10232                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10233                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10234                         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));
10235                 }
10236                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
10237                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10238                 if (r->in.data == NULL) {
10239                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10240                 }
10241                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
10242                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
10243         }
10244         if (flags & NDR_OUT) {
10245                 if (r->out.query == NULL) {
10246                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10247                 }
10248                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10249                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10250                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10251         }
10252         return NDR_ERR_SUCCESS;
10253 }
10254
10255 static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
10256 {
10257         uint32_t _ptr_logon_server;
10258         TALLOC_CTX *_mem_save_logon_server_0;
10259         TALLOC_CTX *_mem_save_data_0;
10260         TALLOC_CTX *_mem_save_query_0;
10261         if (flags & NDR_IN) {
10262                 ZERO_STRUCT(r->out);
10263
10264                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10265                 if (_ptr_logon_server) {
10266                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10267                 } else {
10268                         r->in.logon_server = NULL;
10269                 }
10270                 if (r->in.logon_server) {
10271                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10272                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10273                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10274                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10275                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10276                                 return 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));
10277                         }
10278                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10279                         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));
10280                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10281                 }
10282                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
10283                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10284                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10285                         NDR_PULL_ALLOC(ndr, r->in.data);
10286                 }
10287                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
10288                 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
10289                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
10290                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
10291                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
10292                 NDR_PULL_ALLOC(ndr, r->out.query);
10293                 ZERO_STRUCTP(r->out.query);
10294         }
10295         if (flags & NDR_OUT) {
10296                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10297                         NDR_PULL_ALLOC(ndr, r->out.query);
10298                 }
10299                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10300                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10301                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10302                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10303                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10304                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10305         }
10306         return NDR_ERR_SUCCESS;
10307 }
10308
10309 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
10310 {
10311         ndr_print_struct(ndr, name, "netr_LogonControl2");
10312         ndr->depth++;
10313         if (flags & NDR_SET_VALUES) {
10314                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10315         }
10316         if (flags & NDR_IN) {
10317                 ndr_print_struct(ndr, "in", "netr_LogonControl2");
10318                 ndr->depth++;
10319                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10320                 ndr->depth++;
10321                 if (r->in.logon_server) {
10322                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10323                 }
10324                 ndr->depth--;
10325                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
10326                 ndr_print_uint32(ndr, "level", r->in.level);
10327                 ndr_print_ptr(ndr, "data", r->in.data);
10328                 ndr->depth++;
10329                 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
10330                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
10331                 ndr->depth--;
10332                 ndr->depth--;
10333         }
10334         if (flags & NDR_OUT) {
10335                 ndr_print_struct(ndr, "out", "netr_LogonControl2");
10336                 ndr->depth++;
10337                 ndr_print_ptr(ndr, "query", r->out.query);
10338                 ndr->depth++;
10339                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10340                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10341                 ndr->depth--;
10342                 ndr_print_WERROR(ndr, "result", r->out.result);
10343                 ndr->depth--;
10344         }
10345         ndr->depth--;
10346 }
10347
10348 static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
10349 {
10350         if (flags & NDR_IN) {
10351                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10352                 if (r->in.server_name) {
10353                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10354                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10355                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10356                         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));
10357                 }
10358                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10359                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10360                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10361                 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));
10362                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
10363                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10364                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10365                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10366                 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));
10367                 if (r->in.credentials == NULL) {
10368                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10369                 }
10370                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10371                 if (r->in.negotiate_flags == NULL) {
10372                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10373                 }
10374                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.negotiate_flags));
10375         }
10376         if (flags & NDR_OUT) {
10377                 if (r->out.return_credentials == NULL) {
10378                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10379                 }
10380                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10381                 if (r->out.negotiate_flags == NULL) {
10382                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10383                 }
10384                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.negotiate_flags));
10385                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10386         }
10387         return NDR_ERR_SUCCESS;
10388 }
10389
10390 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
10391 {
10392         uint32_t _ptr_server_name;
10393         TALLOC_CTX *_mem_save_server_name_0;
10394         TALLOC_CTX *_mem_save_credentials_0;
10395         TALLOC_CTX *_mem_save_return_credentials_0;
10396         TALLOC_CTX *_mem_save_negotiate_flags_0;
10397         if (flags & NDR_IN) {
10398                 ZERO_STRUCT(r->out);
10399
10400                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10401                 if (_ptr_server_name) {
10402                         NDR_PULL_ALLOC(ndr, r->in.server_name);
10403                 } else {
10404                         r->in.server_name = NULL;
10405                 }
10406                 if (r->in.server_name) {
10407                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10408                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10409                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10410                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10411                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10412                                 return 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));
10413                         }
10414                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10415                         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));
10416                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10417                 }
10418                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
10419                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
10420                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
10421                         return 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));
10422                 }
10423                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
10424                 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));
10425                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
10426                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10427                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10428                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10429                         return 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));
10430                 }
10431                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10432                 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));
10433                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10434                         NDR_PULL_ALLOC(ndr, r->in.credentials);
10435                 }
10436                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10437                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
10438                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10439                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10440                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10441                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
10442                 }
10443                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10444                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10445                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.negotiate_flags));
10446                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10447                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10448                 ZERO_STRUCTP(r->out.return_credentials);
10449                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10450                 *r->out.negotiate_flags = *r->in.negotiate_flags;
10451         }
10452         if (flags & NDR_OUT) {
10453                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10454                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10455                 }
10456                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10457                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
10458                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10459                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10460                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10461                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10462                 }
10463                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10464                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10465                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.negotiate_flags));
10466                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10467                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10468         }
10469         return NDR_ERR_SUCCESS;
10470 }
10471
10472 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
10473 {
10474         ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
10475         ndr->depth++;
10476         if (flags & NDR_SET_VALUES) {
10477                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10478         }
10479         if (flags & NDR_IN) {
10480                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
10481                 ndr->depth++;
10482                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10483                 ndr->depth++;
10484                 if (r->in.server_name) {
10485                         ndr_print_string(ndr, "server_name", r->in.server_name);
10486                 }
10487                 ndr->depth--;
10488                 ndr_print_string(ndr, "account_name", r->in.account_name);
10489                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10490                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10491                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
10492                 ndr->depth++;
10493                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
10494                 ndr->depth--;
10495                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
10496                 ndr->depth++;
10497                 ndr_print_uint32(ndr, "negotiate_flags", *r->in.negotiate_flags);
10498                 ndr->depth--;
10499                 ndr->depth--;
10500         }
10501         if (flags & NDR_OUT) {
10502                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
10503                 ndr->depth++;
10504                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
10505                 ndr->depth++;
10506                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
10507                 ndr->depth--;
10508                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
10509                 ndr->depth++;
10510                 ndr_print_uint32(ndr, "negotiate_flags", *r->out.negotiate_flags);
10511                 ndr->depth--;
10512                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10513                 ndr->depth--;
10514         }
10515         ndr->depth--;
10516 }
10517
10518 static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
10519 {
10520         if (flags & NDR_IN) {
10521                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10522                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10523                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10524                 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));
10525                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10526                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10527                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10528                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10529                 if (r->in.credential == NULL) {
10530                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10531                 }
10532                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10533                 if (r->in.return_authenticator == NULL) {
10534                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10535                 }
10536                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10537                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10538                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.restart_state));
10539                 if (r->in.sync_context == NULL) {
10540                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10541                 }
10542                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
10543                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10544         }
10545         if (flags & NDR_OUT) {
10546                 if (r->out.return_authenticator == NULL) {
10547                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10548                 }
10549                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10550                 if (r->out.sync_context == NULL) {
10551                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10552                 }
10553                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
10554                 if (r->out.delta_enum_array == NULL) {
10555                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10556                 }
10557                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10558                 if (*r->out.delta_enum_array) {
10559                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10560                 }
10561                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10562         }
10563         return NDR_ERR_SUCCESS;
10564 }
10565
10566 static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
10567 {
10568         uint32_t _ptr_delta_enum_array;
10569         TALLOC_CTX *_mem_save_credential_0;
10570         TALLOC_CTX *_mem_save_return_authenticator_0;
10571         TALLOC_CTX *_mem_save_sync_context_0;
10572         TALLOC_CTX *_mem_save_delta_enum_array_0;
10573         TALLOC_CTX *_mem_save_delta_enum_array_1;
10574         if (flags & NDR_IN) {
10575                 ZERO_STRUCT(r->out);
10576
10577                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10578                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10579                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10580                         return 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));
10581                 }
10582                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10583                 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));
10584                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10585                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10586                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10587                         return 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));
10588                 }
10589                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10590                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10591                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10592                         NDR_PULL_ALLOC(ndr, r->in.credential);
10593                 }
10594                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10595                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10596                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10597                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10598                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10599                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10600                 }
10601                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10602                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10603                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10604                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10605                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10606                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.restart_state));
10607                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10608                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
10609                 }
10610                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10611                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
10612                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
10613                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10614                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10615                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10616                 *r->out.return_authenticator = *r->in.return_authenticator;
10617                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10618                 *r->out.sync_context = *r->in.sync_context;
10619                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10620                 ZERO_STRUCTP(r->out.delta_enum_array);
10621         }
10622         if (flags & NDR_OUT) {
10623                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10624                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10625                 }
10626                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10627                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10628                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10629                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10630                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10631                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
10632                 }
10633                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10634                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
10635                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
10636                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10637                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10638                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10639                 }
10640                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10641                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10642                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10643                 if (_ptr_delta_enum_array) {
10644                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
10645                 } else {
10646                         *r->out.delta_enum_array = NULL;
10647                 }
10648                 if (*r->out.delta_enum_array) {
10649                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
10650                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
10651                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10652                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
10653                 }
10654                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10655                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10656         }
10657         return NDR_ERR_SUCCESS;
10658 }
10659
10660 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
10661 {
10662         ndr_print_struct(ndr, name, "netr_DatabaseSync2");
10663         ndr->depth++;
10664         if (flags & NDR_SET_VALUES) {
10665                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10666         }
10667         if (flags & NDR_IN) {
10668                 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
10669                 ndr->depth++;
10670                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10671                 ndr_print_string(ndr, "computername", r->in.computername);
10672                 ndr_print_ptr(ndr, "credential", r->in.credential);
10673                 ndr->depth++;
10674                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10675                 ndr->depth--;
10676                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10677                 ndr->depth++;
10678                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10679                 ndr->depth--;
10680                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10681                 ndr_print_uint16(ndr, "restart_state", r->in.restart_state);
10682                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
10683                 ndr->depth++;
10684                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
10685                 ndr->depth--;
10686                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10687                 ndr->depth--;
10688         }
10689         if (flags & NDR_OUT) {
10690                 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
10691                 ndr->depth++;
10692                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10693                 ndr->depth++;
10694                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10695                 ndr->depth--;
10696                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
10697                 ndr->depth++;
10698                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
10699                 ndr->depth--;
10700                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10701                 ndr->depth++;
10702                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10703                 ndr->depth++;
10704                 if (*r->out.delta_enum_array) {
10705                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10706                 }
10707                 ndr->depth--;
10708                 ndr->depth--;
10709                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10710                 ndr->depth--;
10711         }
10712         ndr->depth--;
10713 }
10714
10715 static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
10716 {
10717         if (flags & NDR_IN) {
10718                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10719                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10720                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10721                 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));
10722                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10723                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10724                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10725                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10726                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10727                 if (r->in.return_authenticator == NULL) {
10728                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10729                 }
10730                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10731                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.change_log_entry));
10732                 if (r->in.change_log_entry) {
10733                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10734                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, r->in.change_log_entry_size));
10735                 }
10736                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10737         }
10738         if (flags & NDR_OUT) {
10739                 if (r->out.return_authenticator == NULL) {
10740                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10741                 }
10742                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10743                 if (r->out.delta_enum_array == NULL) {
10744                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10745                 }
10746                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10747                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10748         }
10749         return NDR_ERR_SUCCESS;
10750 }
10751
10752 static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
10753 {
10754         uint32_t _ptr_change_log_entry;
10755         TALLOC_CTX *_mem_save_return_authenticator_0;
10756         TALLOC_CTX *_mem_save_change_log_entry_0;
10757         TALLOC_CTX *_mem_save_delta_enum_array_0;
10758         if (flags & NDR_IN) {
10759                 ZERO_STRUCT(r->out);
10760
10761                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10762                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10763                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10764                         return 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));
10765                 }
10766                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10767                 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));
10768                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10769                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10770                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10771                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername));
10772                 }
10773                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10774                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10775                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10776                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10777                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10778                 }
10779                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10780                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10781                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10782                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10783                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_change_log_entry));
10784                 if (_ptr_change_log_entry) {
10785                         NDR_PULL_ALLOC(ndr, r->in.change_log_entry);
10786                 } else {
10787                         r->in.change_log_entry = NULL;
10788                 }
10789                 if (r->in.change_log_entry) {
10790                         _mem_save_change_log_entry_0 = NDR_PULL_GET_MEM_CTX(ndr);
10791                         NDR_PULL_SET_MEM_CTX(ndr, r->in.change_log_entry, 0);
10792                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.change_log_entry));
10793                         NDR_PULL_ALLOC_N(ndr, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry));
10794                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry)));
10795                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_change_log_entry_0, 0);
10796                 }
10797                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
10798                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10799                 *r->out.return_authenticator = *r->in.return_authenticator;
10800                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10801                 ZERO_STRUCTP(r->out.delta_enum_array);
10802                 if (r->in.change_log_entry) {
10803                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.change_log_entry, r->in.change_log_entry_size));
10804                 }
10805         }
10806         if (flags & NDR_OUT) {
10807                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10808                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10809                 }
10810                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10811                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10812                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10813                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10814                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10815                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10816                 }
10817                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10818                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10819                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10820                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10821                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10822         }
10823         return NDR_ERR_SUCCESS;
10824 }
10825
10826 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
10827 {
10828         ndr_print_struct(ndr, name, "netr_DatabaseRedo");
10829         ndr->depth++;
10830         if (flags & NDR_SET_VALUES) {
10831                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10832         }
10833         if (flags & NDR_IN) {
10834                 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
10835                 ndr->depth++;
10836                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10837                 ndr_print_string(ndr, "computername", r->in.computername);
10838                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10839                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10840                 ndr->depth++;
10841                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10842                 ndr->depth--;
10843                 ndr_print_ptr(ndr, "change_log_entry", r->in.change_log_entry);
10844                 ndr->depth++;
10845                 if (r->in.change_log_entry) {
10846                         ndr_print_array_uint8(ndr, "change_log_entry", r->in.change_log_entry, r->in.change_log_entry_size);
10847                 }
10848                 ndr->depth--;
10849                 ndr_print_uint32(ndr, "change_log_entry_size", r->in.change_log_entry_size);
10850                 ndr->depth--;
10851         }
10852         if (flags & NDR_OUT) {
10853                 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
10854                 ndr->depth++;
10855                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10856                 ndr->depth++;
10857                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10858                 ndr->depth--;
10859                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10860                 ndr->depth++;
10861                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
10862                 ndr->depth--;
10863                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10864                 ndr->depth--;
10865         }
10866         ndr->depth--;
10867 }
10868
10869 static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
10870 {
10871         if (flags & NDR_IN) {
10872                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10873                 if (r->in.logon_server) {
10874                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10875                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10876                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10877                         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));
10878                 }
10879                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
10880                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10881                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
10882                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10883         }
10884         if (flags & NDR_OUT) {
10885                 if (r->out.query == NULL) {
10886                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10887                 }
10888                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10889                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10890                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10891         }
10892         return NDR_ERR_SUCCESS;
10893 }
10894
10895 static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
10896 {
10897         uint32_t _ptr_logon_server;
10898         TALLOC_CTX *_mem_save_logon_server_0;
10899         TALLOC_CTX *_mem_save_query_0;
10900         if (flags & NDR_IN) {
10901                 ZERO_STRUCT(r->out);
10902
10903                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10904                 if (_ptr_logon_server) {
10905                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10906                 } else {
10907                         r->in.logon_server = NULL;
10908                 }
10909                 if (r->in.logon_server) {
10910                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10911                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10912                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10913                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10914                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10915                                 return 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));
10916                         }
10917                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10918                         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));
10919                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10920                 }
10921                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
10922                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10923                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
10924                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10925                 NDR_PULL_ALLOC(ndr, r->out.query);
10926                 ZERO_STRUCTP(r->out.query);
10927         }
10928         if (flags & NDR_OUT) {
10929                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10930                         NDR_PULL_ALLOC(ndr, r->out.query);
10931                 }
10932                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10933                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10934                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10935                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10936                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10937                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10938         }
10939         return NDR_ERR_SUCCESS;
10940 }
10941
10942 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
10943 {
10944         ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
10945         ndr->depth++;
10946         if (flags & NDR_SET_VALUES) {
10947                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10948         }
10949         if (flags & NDR_IN) {
10950                 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
10951                 ndr->depth++;
10952                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10953                 ndr->depth++;
10954                 if (r->in.logon_server) {
10955                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10956                 }
10957                 ndr->depth--;
10958                 ndr_print_uint32(ndr, "function_code", r->in.function_code);
10959                 ndr_print_uint32(ndr, "level", r->in.level);
10960                 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
10961                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
10962                 ndr->depth--;
10963         }
10964         if (flags & NDR_OUT) {
10965                 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
10966                 ndr->depth++;
10967                 ndr_print_ptr(ndr, "query", r->out.query);
10968                 ndr->depth++;
10969                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10970                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10971                 ndr->depth--;
10972                 ndr_print_WERROR(ndr, "result", r->out.result);
10973                 ndr->depth--;
10974         }
10975         ndr->depth--;
10976 }
10977
10978 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
10979 {
10980         if (flags & NDR_IN) {
10981                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10982                 if (r->in.server_name) {
10983                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10984                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10985                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10986                         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));
10987                 }
10988         }
10989         if (flags & NDR_OUT) {
10990                 if (r->out.trusted_domains_blob == NULL) {
10991                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10992                 }
10993                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
10994                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10995         }
10996         return NDR_ERR_SUCCESS;
10997 }
10998
10999 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r)
11000 {
11001         uint32_t _ptr_server_name;
11002         TALLOC_CTX *_mem_save_server_name_0;
11003         TALLOC_CTX *_mem_save_trusted_domains_blob_0;
11004         if (flags & NDR_IN) {
11005                 ZERO_STRUCT(r->out);
11006
11007                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11008                 if (_ptr_server_name) {
11009                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11010                 } else {
11011                         r->in.server_name = NULL;
11012                 }
11013                 if (r->in.server_name) {
11014                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11015                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11016                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11017                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11018                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11019                                 return 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));
11020                         }
11021                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11022                         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));
11023                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11024                 }
11025                 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11026                 ZERO_STRUCTP(r->out.trusted_domains_blob);
11027         }
11028         if (flags & NDR_OUT) {
11029                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11030                         NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11031                 }
11032                 _mem_save_trusted_domains_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
11033                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusted_domains_blob, LIBNDR_FLAG_REF_ALLOC);
11034                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
11035                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_blob_0, LIBNDR_FLAG_REF_ALLOC);
11036                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11037         }
11038         return NDR_ERR_SUCCESS;
11039 }
11040
11041 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
11042 {
11043         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomains");
11044         ndr->depth++;
11045         if (flags & NDR_SET_VALUES) {
11046                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11047         }
11048         if (flags & NDR_IN) {
11049                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomains");
11050                 ndr->depth++;
11051                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11052                 ndr->depth++;
11053                 if (r->in.server_name) {
11054                         ndr_print_string(ndr, "server_name", r->in.server_name);
11055                 }
11056                 ndr->depth--;
11057                 ndr->depth--;
11058         }
11059         if (flags & NDR_OUT) {
11060                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomains");
11061                 ndr->depth++;
11062                 ndr_print_ptr(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11063                 ndr->depth++;
11064                 ndr_print_netr_Blob(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11065                 ndr->depth--;
11066                 ndr_print_WERROR(ndr, "result", r->out.result);
11067                 ndr->depth--;
11068         }
11069         ndr->depth--;
11070 }
11071
11072 static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
11073 {
11074         if (flags & NDR_IN) {
11075                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11076                 if (r->in.server_unc) {
11077                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11078                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11079                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11080                         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));
11081                 }
11082                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11083                 if (r->in.domain_name) {
11084                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11085                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11086                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11087                         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));
11088                 }
11089                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11090                 if (r->in.domain_guid) {
11091                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11092                 }
11093                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
11094                 if (r->in.site_guid) {
11095                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
11096                 }
11097                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11098         }
11099         if (flags & NDR_OUT) {
11100                 if (r->out.info == NULL) {
11101                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11102                 }
11103                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
11104                 if (*r->out.info) {
11105                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11106                 }
11107                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11108         }
11109         return NDR_ERR_SUCCESS;
11110 }
11111
11112 static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
11113 {
11114         uint32_t _ptr_server_unc;
11115         uint32_t _ptr_domain_name;
11116         uint32_t _ptr_domain_guid;
11117         uint32_t _ptr_site_guid;
11118         uint32_t _ptr_info;
11119         TALLOC_CTX *_mem_save_server_unc_0;
11120         TALLOC_CTX *_mem_save_domain_name_0;
11121         TALLOC_CTX *_mem_save_domain_guid_0;
11122         TALLOC_CTX *_mem_save_site_guid_0;
11123         TALLOC_CTX *_mem_save_info_0;
11124         TALLOC_CTX *_mem_save_info_1;
11125         if (flags & NDR_IN) {
11126                 ZERO_STRUCT(r->out);
11127
11128                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11129                 if (_ptr_server_unc) {
11130                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
11131                 } else {
11132                         r->in.server_unc = NULL;
11133                 }
11134                 if (r->in.server_unc) {
11135                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11136                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11137                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11138                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11139                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11140                                 return 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));
11141                         }
11142                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11143                         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));
11144                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11145                 }
11146                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11147                 if (_ptr_domain_name) {
11148                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11149                 } else {
11150                         r->in.domain_name = NULL;
11151                 }
11152                 if (r->in.domain_name) {
11153                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11154                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11155                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11156                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11157                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11158                                 return 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));
11159                         }
11160                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11161                         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));
11162                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11163                 }
11164                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11165                 if (_ptr_domain_guid) {
11166                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11167                 } else {
11168                         r->in.domain_guid = NULL;
11169                 }
11170                 if (r->in.domain_guid) {
11171                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11172                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11173                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11174                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11175                 }
11176                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
11177                 if (_ptr_site_guid) {
11178                         NDR_PULL_ALLOC(ndr, r->in.site_guid);
11179                 } else {
11180                         r->in.site_guid = NULL;
11181                 }
11182                 if (r->in.site_guid) {
11183                         _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11184                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
11185                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
11186                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
11187                 }
11188                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11189                 NDR_PULL_ALLOC(ndr, r->out.info);
11190                 ZERO_STRUCTP(r->out.info);
11191         }
11192         if (flags & NDR_OUT) {
11193                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11194                         NDR_PULL_ALLOC(ndr, r->out.info);
11195                 }
11196                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11197                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11198                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11199                 if (_ptr_info) {
11200                         NDR_PULL_ALLOC(ndr, *r->out.info);
11201                 } else {
11202                         *r->out.info = NULL;
11203                 }
11204                 if (*r->out.info) {
11205                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
11206                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
11207                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11208                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
11209                 }
11210                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11211                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11212         }
11213         return NDR_ERR_SUCCESS;
11214 }
11215
11216 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
11217 {
11218         ndr_print_struct(ndr, name, "netr_DsRGetDCName");
11219         ndr->depth++;
11220         if (flags & NDR_SET_VALUES) {
11221                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11222         }
11223         if (flags & NDR_IN) {
11224                 ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
11225                 ndr->depth++;
11226                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11227                 ndr->depth++;
11228                 if (r->in.server_unc) {
11229                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11230                 }
11231                 ndr->depth--;
11232                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11233                 ndr->depth++;
11234                 if (r->in.domain_name) {
11235                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11236                 }
11237                 ndr->depth--;
11238                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11239                 ndr->depth++;
11240                 if (r->in.domain_guid) {
11241                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11242                 }
11243                 ndr->depth--;
11244                 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
11245                 ndr->depth++;
11246                 if (r->in.site_guid) {
11247                         ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
11248                 }
11249                 ndr->depth--;
11250                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11251                 ndr->depth--;
11252         }
11253         if (flags & NDR_OUT) {
11254                 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
11255                 ndr->depth++;
11256                 ndr_print_ptr(ndr, "info", r->out.info);
11257                 ndr->depth++;
11258                 ndr_print_ptr(ndr, "info", *r->out.info);
11259                 ndr->depth++;
11260                 if (*r->out.info) {
11261                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
11262                 }
11263                 ndr->depth--;
11264                 ndr->depth--;
11265                 ndr_print_WERROR(ndr, "result", r->out.result);
11266                 ndr->depth--;
11267         }
11268         ndr->depth--;
11269 }
11270
11271 static enum ndr_err_code ndr_push_netr_NETRLOGONDUMMYROUTINE1(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11272 {
11273         if (flags & NDR_IN) {
11274         }
11275         if (flags & NDR_OUT) {
11276                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11277         }
11278         return NDR_ERR_SUCCESS;
11279 }
11280
11281 static enum ndr_err_code ndr_pull_netr_NETRLOGONDUMMYROUTINE1(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONDUMMYROUTINE1 *r)
11282 {
11283         if (flags & NDR_IN) {
11284         }
11285         if (flags & NDR_OUT) {
11286                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11287         }
11288         return NDR_ERR_SUCCESS;
11289 }
11290
11291 _PUBLIC_ void ndr_print_netr_NETRLOGONDUMMYROUTINE1(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11292 {
11293         ndr_print_struct(ndr, name, "netr_NETRLOGONDUMMYROUTINE1");
11294         ndr->depth++;
11295         if (flags & NDR_SET_VALUES) {
11296                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11297         }
11298         if (flags & NDR_IN) {
11299                 ndr_print_struct(ndr, "in", "netr_NETRLOGONDUMMYROUTINE1");
11300                 ndr->depth++;
11301                 ndr->depth--;
11302         }
11303         if (flags & NDR_OUT) {
11304                 ndr_print_struct(ndr, "out", "netr_NETRLOGONDUMMYROUTINE1");
11305                 ndr->depth++;
11306                 ndr_print_WERROR(ndr, "result", r->out.result);
11307                 ndr->depth--;
11308         }
11309         ndr->depth--;
11310 }
11311
11312 static enum ndr_err_code ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11313 {
11314         if (flags & NDR_IN) {
11315         }
11316         if (flags & NDR_OUT) {
11317                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11318         }
11319         return NDR_ERR_SUCCESS;
11320 }
11321
11322 static enum ndr_err_code ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
11323 {
11324         if (flags & NDR_IN) {
11325         }
11326         if (flags & NDR_OUT) {
11327                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11328         }
11329         return NDR_ERR_SUCCESS;
11330 }
11331
11332 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11333 {
11334         ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
11335         ndr->depth++;
11336         if (flags & NDR_SET_VALUES) {
11337                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11338         }
11339         if (flags & NDR_IN) {
11340                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
11341                 ndr->depth++;
11342                 ndr->depth--;
11343         }
11344         if (flags & NDR_OUT) {
11345                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
11346                 ndr->depth++;
11347                 ndr_print_WERROR(ndr, "result", r->out.result);
11348                 ndr->depth--;
11349         }
11350         ndr->depth--;
11351 }
11352
11353 static enum ndr_err_code ndr_push_netr_LogonGetTrustRid(struct ndr_push *ndr, int flags, const struct netr_LogonGetTrustRid *r)
11354 {
11355         if (flags & NDR_IN) {
11356                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11357                 if (r->in.server_name) {
11358                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11359                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11360                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11361                         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));
11362                 }
11363                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11364                 if (r->in.domain_name) {
11365                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11366                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11367                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11368                         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));
11369                 }
11370         }
11371         if (flags & NDR_OUT) {
11372                 if (r->out.rid == NULL) {
11373                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11374                 }
11375                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11376                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11377         }
11378         return NDR_ERR_SUCCESS;
11379 }
11380
11381 static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, int flags, struct netr_LogonGetTrustRid *r)
11382 {
11383         uint32_t _ptr_server_name;
11384         uint32_t _ptr_domain_name;
11385         TALLOC_CTX *_mem_save_server_name_0;
11386         TALLOC_CTX *_mem_save_domain_name_0;
11387         TALLOC_CTX *_mem_save_rid_0;
11388         if (flags & NDR_IN) {
11389                 ZERO_STRUCT(r->out);
11390
11391                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11392                 if (_ptr_server_name) {
11393                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11394                 } else {
11395                         r->in.server_name = NULL;
11396                 }
11397                 if (r->in.server_name) {
11398                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11399                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11400                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11401                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11402                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11403                                 return 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));
11404                         }
11405                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11406                         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));
11407                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11408                 }
11409                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11410                 if (_ptr_domain_name) {
11411                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11412                 } else {
11413                         r->in.domain_name = NULL;
11414                 }
11415                 if (r->in.domain_name) {
11416                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11417                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11418                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11419                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11420                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11421                                 return 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));
11422                         }
11423                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11424                         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));
11425                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11426                 }
11427                 NDR_PULL_ALLOC(ndr, r->out.rid);
11428                 ZERO_STRUCTP(r->out.rid);
11429         }
11430         if (flags & NDR_OUT) {
11431                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11432                         NDR_PULL_ALLOC(ndr, r->out.rid);
11433                 }
11434                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11435                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11436                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11437                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11438                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11439         }
11440         return NDR_ERR_SUCCESS;
11441 }
11442
11443 _PUBLIC_ void ndr_print_netr_LogonGetTrustRid(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetTrustRid *r)
11444 {
11445         ndr_print_struct(ndr, name, "netr_LogonGetTrustRid");
11446         ndr->depth++;
11447         if (flags & NDR_SET_VALUES) {
11448                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11449         }
11450         if (flags & NDR_IN) {
11451                 ndr_print_struct(ndr, "in", "netr_LogonGetTrustRid");
11452                 ndr->depth++;
11453                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11454                 ndr->depth++;
11455                 if (r->in.server_name) {
11456                         ndr_print_string(ndr, "server_name", r->in.server_name);
11457                 }
11458                 ndr->depth--;
11459                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11460                 ndr->depth++;
11461                 if (r->in.domain_name) {
11462                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11463                 }
11464                 ndr->depth--;
11465                 ndr->depth--;
11466         }
11467         if (flags & NDR_OUT) {
11468                 ndr_print_struct(ndr, "out", "netr_LogonGetTrustRid");
11469                 ndr->depth++;
11470                 ndr_print_ptr(ndr, "rid", r->out.rid);
11471                 ndr->depth++;
11472                 ndr_print_uint32(ndr, "rid", *r->out.rid);
11473                 ndr->depth--;
11474                 ndr_print_WERROR(ndr, "result", r->out.result);
11475                 ndr->depth--;
11476         }
11477         ndr->depth--;
11478 }
11479
11480 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11481 {
11482         if (flags & NDR_IN) {
11483         }
11484         if (flags & NDR_OUT) {
11485                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11486         }
11487         return NDR_ERR_SUCCESS;
11488 }
11489
11490 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11491 {
11492         if (flags & NDR_IN) {
11493         }
11494         if (flags & NDR_OUT) {
11495                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11496         }
11497         return NDR_ERR_SUCCESS;
11498 }
11499
11500 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11501 {
11502         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
11503         ndr->depth++;
11504         if (flags & NDR_SET_VALUES) {
11505                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11506         }
11507         if (flags & NDR_IN) {
11508                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11509                 ndr->depth++;
11510                 ndr->depth--;
11511         }
11512         if (flags & NDR_OUT) {
11513                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11514                 ndr->depth++;
11515                 ndr_print_WERROR(ndr, "result", r->out.result);
11516                 ndr->depth--;
11517         }
11518         ndr->depth--;
11519 }
11520
11521 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11522 {
11523         if (flags & NDR_IN) {
11524         }
11525         if (flags & NDR_OUT) {
11526                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11527         }
11528         return NDR_ERR_SUCCESS;
11529 }
11530
11531 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11532 {
11533         if (flags & NDR_IN) {
11534         }
11535         if (flags & NDR_OUT) {
11536                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11537         }
11538         return NDR_ERR_SUCCESS;
11539 }
11540
11541 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11542 {
11543         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11544         ndr->depth++;
11545         if (flags & NDR_SET_VALUES) {
11546                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11547         }
11548         if (flags & NDR_IN) {
11549                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11550                 ndr->depth++;
11551                 ndr->depth--;
11552         }
11553         if (flags & NDR_OUT) {
11554                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11555                 ndr->depth++;
11556                 ndr_print_WERROR(ndr, "result", r->out.result);
11557                 ndr->depth--;
11558         }
11559         ndr->depth--;
11560 }
11561
11562 static enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
11563 {
11564         if (flags & NDR_IN) {
11565                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11566                 if (r->in.server_name) {
11567                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11568                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11569                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11570                         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));
11571                 }
11572                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11573                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11574                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11575                 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));
11576                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11577                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11578                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11579                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11580                 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));
11581                 if (r->in.credentials == NULL) {
11582                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11583                 }
11584                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11585                 if (r->in.negotiate_flags == NULL) {
11586                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11587                 }
11588                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.negotiate_flags));
11589         }
11590         if (flags & NDR_OUT) {
11591                 if (r->out.credentials == NULL) {
11592                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11593                 }
11594                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11595                 if (r->out.negotiate_flags == NULL) {
11596                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11597                 }
11598                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.negotiate_flags));
11599                 if (r->out.rid == NULL) {
11600                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11601                 }
11602                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11603                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11604         }
11605         return NDR_ERR_SUCCESS;
11606 }
11607
11608 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
11609 {
11610         uint32_t _ptr_server_name;
11611         TALLOC_CTX *_mem_save_server_name_0;
11612         TALLOC_CTX *_mem_save_credentials_0;
11613         TALLOC_CTX *_mem_save_negotiate_flags_0;
11614         TALLOC_CTX *_mem_save_rid_0;
11615         if (flags & NDR_IN) {
11616                 ZERO_STRUCT(r->out);
11617
11618                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11619                 if (_ptr_server_name) {
11620                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11621                 } else {
11622                         r->in.server_name = NULL;
11623                 }
11624                 if (r->in.server_name) {
11625                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11626                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11627                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11628                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11629                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11630                                 return 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));
11631                         }
11632                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11633                         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));
11634                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11635                 }
11636                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11637                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11638                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11639                         return 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));
11640                 }
11641                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11642                 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));
11643                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11644                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11645                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11646                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11647                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
11648                 }
11649                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11650                 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));
11651                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11652                         NDR_PULL_ALLOC(ndr, r->in.credentials);
11653                 }
11654                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11655                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
11656                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11657                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11658                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11659                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
11660                 }
11661                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11662                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11663                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.negotiate_flags));
11664                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11665                 NDR_PULL_ALLOC(ndr, r->out.credentials);
11666                 *r->out.credentials = *r->in.credentials;
11667                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11668                 *r->out.negotiate_flags = *r->in.negotiate_flags;
11669                 NDR_PULL_ALLOC(ndr, r->out.rid);
11670                 ZERO_STRUCTP(r->out.rid);
11671         }
11672         if (flags & NDR_OUT) {
11673                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11674                         NDR_PULL_ALLOC(ndr, r->out.credentials);
11675                 }
11676                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11677                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
11678                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11679                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11680                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11681                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11682                 }
11683                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11684                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11685                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.negotiate_flags));
11686                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11687                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11688                         NDR_PULL_ALLOC(ndr, r->out.rid);
11689                 }
11690                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11691                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11692                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11693                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11694                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11695         }
11696         return NDR_ERR_SUCCESS;
11697 }
11698
11699 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
11700 {
11701         ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
11702         ndr->depth++;
11703         if (flags & NDR_SET_VALUES) {
11704                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11705         }
11706         if (flags & NDR_IN) {
11707                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
11708                 ndr->depth++;
11709                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11710                 ndr->depth++;
11711                 if (r->in.server_name) {
11712                         ndr_print_string(ndr, "server_name", r->in.server_name);
11713                 }
11714                 ndr->depth--;
11715                 ndr_print_string(ndr, "account_name", r->in.account_name);
11716                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
11717                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11718                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
11719                 ndr->depth++;
11720                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
11721                 ndr->depth--;
11722                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
11723                 ndr->depth++;
11724                 ndr_print_uint32(ndr, "negotiate_flags", *r->in.negotiate_flags);
11725                 ndr->depth--;
11726                 ndr->depth--;
11727         }
11728         if (flags & NDR_OUT) {
11729                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
11730                 ndr->depth++;
11731                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
11732                 ndr->depth++;
11733                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
11734                 ndr->depth--;
11735                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
11736                 ndr->depth++;
11737                 ndr_print_uint32(ndr, "negotiate_flags", *r->out.negotiate_flags);
11738                 ndr->depth--;
11739                 ndr_print_ptr(ndr, "rid", r->out.rid);
11740                 ndr->depth++;
11741                 ndr_print_uint32(ndr, "rid", *r->out.rid);
11742                 ndr->depth--;
11743                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11744                 ndr->depth--;
11745         }
11746         ndr->depth--;
11747 }
11748
11749 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
11750 {
11751         if (flags & NDR_IN) {
11752                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11753                 if (r->in.server_unc) {
11754                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11755                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11756                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11757                         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));
11758                 }
11759                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11760                 if (r->in.domain_name) {
11761                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11762                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11763                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11764                         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));
11765                 }
11766                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11767                 if (r->in.domain_guid) {
11768                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11769                 }
11770                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
11771                 if (r->in.site_name) {
11772                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11773                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11774                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11775                         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));
11776                 }
11777                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11778         }
11779         if (flags & NDR_OUT) {
11780                 if (r->out.info == NULL) {
11781                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11782                 }
11783                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
11784                 if (*r->out.info) {
11785                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11786                 }
11787                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11788         }
11789         return NDR_ERR_SUCCESS;
11790 }
11791
11792 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
11793 {
11794         uint32_t _ptr_server_unc;
11795         uint32_t _ptr_domain_name;
11796         uint32_t _ptr_domain_guid;
11797         uint32_t _ptr_site_name;
11798         uint32_t _ptr_info;
11799         TALLOC_CTX *_mem_save_server_unc_0;
11800         TALLOC_CTX *_mem_save_domain_name_0;
11801         TALLOC_CTX *_mem_save_domain_guid_0;
11802         TALLOC_CTX *_mem_save_site_name_0;
11803         TALLOC_CTX *_mem_save_info_0;
11804         TALLOC_CTX *_mem_save_info_1;
11805         if (flags & NDR_IN) {
11806                 ZERO_STRUCT(r->out);
11807
11808                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11809                 if (_ptr_server_unc) {
11810                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
11811                 } else {
11812                         r->in.server_unc = NULL;
11813                 }
11814                 if (r->in.server_unc) {
11815                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11816                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11817                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11818                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11819                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11820                                 return 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));
11821                         }
11822                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11823                         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));
11824                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11825                 }
11826                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11827                 if (_ptr_domain_name) {
11828                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11829                 } else {
11830                         r->in.domain_name = NULL;
11831                 }
11832                 if (r->in.domain_name) {
11833                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11834                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11835                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11836                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11837                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11838                                 return 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));
11839                         }
11840                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11841                         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));
11842                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11843                 }
11844                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11845                 if (_ptr_domain_guid) {
11846                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11847                 } else {
11848                         r->in.domain_guid = NULL;
11849                 }
11850                 if (r->in.domain_guid) {
11851                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11852                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11853                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11854                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11855                 }
11856                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
11857                 if (_ptr_site_name) {
11858                         NDR_PULL_ALLOC(ndr, r->in.site_name);
11859                 } else {
11860                         r->in.site_name = NULL;
11861                 }
11862                 if (r->in.site_name) {
11863                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11864                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
11865                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
11866                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
11867                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
11868                                 return 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));
11869                         }
11870                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
11871                         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));
11872                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
11873                 }
11874                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11875                 NDR_PULL_ALLOC(ndr, r->out.info);
11876                 ZERO_STRUCTP(r->out.info);
11877         }
11878         if (flags & NDR_OUT) {
11879                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11880                         NDR_PULL_ALLOC(ndr, r->out.info);
11881                 }
11882                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11883                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11884                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11885                 if (_ptr_info) {
11886                         NDR_PULL_ALLOC(ndr, *r->out.info);
11887                 } else {
11888                         *r->out.info = NULL;
11889                 }
11890                 if (*r->out.info) {
11891                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
11892                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
11893                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11894                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
11895                 }
11896                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11897                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11898         }
11899         return NDR_ERR_SUCCESS;
11900 }
11901
11902 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
11903 {
11904         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
11905         ndr->depth++;
11906         if (flags & NDR_SET_VALUES) {
11907                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11908         }
11909         if (flags & NDR_IN) {
11910                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
11911                 ndr->depth++;
11912                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11913                 ndr->depth++;
11914                 if (r->in.server_unc) {
11915                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11916                 }
11917                 ndr->depth--;
11918                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11919                 ndr->depth++;
11920                 if (r->in.domain_name) {
11921                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11922                 }
11923                 ndr->depth--;
11924                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11925                 ndr->depth++;
11926                 if (r->in.domain_guid) {
11927                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11928                 }
11929                 ndr->depth--;
11930                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
11931                 ndr->depth++;
11932                 if (r->in.site_name) {
11933                         ndr_print_string(ndr, "site_name", r->in.site_name);
11934                 }
11935                 ndr->depth--;
11936                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11937                 ndr->depth--;
11938         }
11939         if (flags & NDR_OUT) {
11940                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
11941                 ndr->depth++;
11942                 ndr_print_ptr(ndr, "info", r->out.info);
11943                 ndr->depth++;
11944                 ndr_print_ptr(ndr, "info", *r->out.info);
11945                 ndr->depth++;
11946                 if (*r->out.info) {
11947                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
11948                 }
11949                 ndr->depth--;
11950                 ndr->depth--;
11951                 ndr_print_WERROR(ndr, "result", r->out.result);
11952                 ndr->depth--;
11953         }
11954         ndr->depth--;
11955 }
11956
11957 static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
11958 {
11959         if (flags & NDR_IN) {
11960                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
11961                 if (r->in.computer_name) {
11962                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11963                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11964                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11965                         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));
11966                 }
11967         }
11968         if (flags & NDR_OUT) {
11969                 if (r->out.site == NULL) {
11970                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11971                 }
11972                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.site));
11973                 if (*r->out.site) {
11974                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
11975                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11976                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
11977                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11978                 }
11979                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11980         }
11981         return NDR_ERR_SUCCESS;
11982 }
11983
11984 static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
11985 {
11986         uint32_t _ptr_computer_name;
11987         uint32_t _ptr_site;
11988         TALLOC_CTX *_mem_save_computer_name_0;
11989         TALLOC_CTX *_mem_save_site_0;
11990         TALLOC_CTX *_mem_save_site_1;
11991         if (flags & NDR_IN) {
11992                 ZERO_STRUCT(r->out);
11993
11994                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
11995                 if (_ptr_computer_name) {
11996                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
11997                 } else {
11998                         r->in.computer_name = NULL;
11999                 }
12000                 if (r->in.computer_name) {
12001                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12002                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12003                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12004                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12005                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12006                                 return 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));
12007                         }
12008                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12009                         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));
12010                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12011                 }
12012                 NDR_PULL_ALLOC(ndr, r->out.site);
12013                 ZERO_STRUCTP(r->out.site);
12014         }
12015         if (flags & NDR_OUT) {
12016                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12017                         NDR_PULL_ALLOC(ndr, r->out.site);
12018                 }
12019                 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
12020                 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
12021                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site));
12022                 if (_ptr_site) {
12023                         NDR_PULL_ALLOC(ndr, *r->out.site);
12024                 } else {
12025                         *r->out.site = NULL;
12026                 }
12027                 if (*r->out.site) {
12028                         _mem_save_site_1 = NDR_PULL_GET_MEM_CTX(ndr);
12029                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.site, 0);
12030                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
12031                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
12032                         if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
12033                                 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));
12034                         }
12035                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
12036                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
12037                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_1, 0);
12038                 }
12039                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
12040                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12041         }
12042         return NDR_ERR_SUCCESS;
12043 }
12044
12045 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
12046 {
12047         ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
12048         ndr->depth++;
12049         if (flags & NDR_SET_VALUES) {
12050                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12051         }
12052         if (flags & NDR_IN) {
12053                 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
12054                 ndr->depth++;
12055                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12056                 ndr->depth++;
12057                 if (r->in.computer_name) {
12058                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12059                 }
12060                 ndr->depth--;
12061                 ndr->depth--;
12062         }
12063         if (flags & NDR_OUT) {
12064                 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
12065                 ndr->depth++;
12066                 ndr_print_ptr(ndr, "site", r->out.site);
12067                 ndr->depth++;
12068                 ndr_print_ptr(ndr, "site", *r->out.site);
12069                 ndr->depth++;
12070                 if (*r->out.site) {
12071                         ndr_print_string(ndr, "site", *r->out.site);
12072                 }
12073                 ndr->depth--;
12074                 ndr->depth--;
12075                 ndr_print_WERROR(ndr, "result", r->out.result);
12076                 ndr->depth--;
12077         }
12078         ndr->depth--;
12079 }
12080
12081 static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
12082 {
12083         if (flags & NDR_IN) {
12084                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12085                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12086                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12087                 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));
12088                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12089                 if (r->in.computer_name) {
12090                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12091                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12092                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12093                         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));
12094                 }
12095                 if (r->in.credential == NULL) {
12096                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12097                 }
12098                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12099                 if (r->in.return_authenticator == NULL) {
12100                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12101                 }
12102                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12103                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12104                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level));
12105                 NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
12106         }
12107         if (flags & NDR_OUT) {
12108                 if (r->out.return_authenticator == NULL) {
12109                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12110                 }
12111                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12112                 if (r->out.info == NULL) {
12113                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12114                 }
12115                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
12116                 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12117                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12118         }
12119         return NDR_ERR_SUCCESS;
12120 }
12121
12122 static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
12123 {
12124         uint32_t _ptr_computer_name;
12125         TALLOC_CTX *_mem_save_computer_name_0;
12126         TALLOC_CTX *_mem_save_credential_0;
12127         TALLOC_CTX *_mem_save_return_authenticator_0;
12128         TALLOC_CTX *_mem_save_info_0;
12129         if (flags & NDR_IN) {
12130                 ZERO_STRUCT(r->out);
12131
12132                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12133                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12134                 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12135                         return 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));
12136                 }
12137                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12138                 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));
12139                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12140                 if (_ptr_computer_name) {
12141                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
12142                 } else {
12143                         r->in.computer_name = NULL;
12144                 }
12145                 if (r->in.computer_name) {
12146                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12147                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12148                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12149                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12150                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12151                                 return 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));
12152                         }
12153                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12154                         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));
12155                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12156                 }
12157                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12158                         NDR_PULL_ALLOC(ndr, r->in.credential);
12159                 }
12160                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12161                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12162                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12163                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12164                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12165                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
12166                 }
12167                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12168                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12169                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12170                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12171                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12172                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level));
12173                 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
12174                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12175                 *r->out.return_authenticator = *r->in.return_authenticator;
12176                 NDR_PULL_ALLOC(ndr, r->out.info);
12177                 ZERO_STRUCTP(r->out.info);
12178         }
12179         if (flags & NDR_OUT) {
12180                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12181                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12182                 }
12183                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12184                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12185                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12186                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12187                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12188                         NDR_PULL_ALLOC(ndr, r->out.info);
12189                 }
12190                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12191                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12192                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
12193                 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12194                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12195                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12196         }
12197         return NDR_ERR_SUCCESS;
12198 }
12199
12200 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
12201 {
12202         ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
12203         ndr->depth++;
12204         if (flags & NDR_SET_VALUES) {
12205                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12206         }
12207         if (flags & NDR_IN) {
12208                 ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
12209                 ndr->depth++;
12210                 ndr_print_string(ndr, "server_name", r->in.server_name);
12211                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12212                 ndr->depth++;
12213                 if (r->in.computer_name) {
12214                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12215                 }
12216                 ndr->depth--;
12217                 ndr_print_ptr(ndr, "credential", r->in.credential);
12218                 ndr->depth++;
12219                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12220                 ndr->depth--;
12221                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12222                 ndr->depth++;
12223                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12224                 ndr->depth--;
12225                 ndr_print_uint32(ndr, "level", r->in.level);
12226                 ndr_print_set_switch_value(ndr, &r->in.query, r->in.level);
12227                 ndr_print_netr_DomainQuery(ndr, "query", &r->in.query);
12228                 ndr->depth--;
12229         }
12230         if (flags & NDR_OUT) {
12231                 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
12232                 ndr->depth++;
12233                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12234                 ndr->depth++;
12235                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12236                 ndr->depth--;
12237                 ndr_print_ptr(ndr, "info", r->out.info);
12238                 ndr->depth++;
12239                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
12240                 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
12241                 ndr->depth--;
12242                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12243                 ndr->depth--;
12244         }
12245         ndr->depth--;
12246 }
12247
12248 static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
12249 {
12250         if (flags & NDR_IN) {
12251                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12252                 if (r->in.server_name) {
12253                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12254                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12255                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12256                         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));
12257                 }
12258                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12259                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12260                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12261                 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));
12262                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12263                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12264                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12265                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12266                 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));
12267                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
12268                 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password));
12269         }
12270         if (flags & NDR_OUT) {
12271                 if (r->out.return_authenticator == NULL) {
12272                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12273                 }
12274                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12275                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12276         }
12277         return NDR_ERR_SUCCESS;
12278 }
12279
12280 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
12281 {
12282         uint32_t _ptr_server_name;
12283         TALLOC_CTX *_mem_save_server_name_0;
12284         TALLOC_CTX *_mem_save_return_authenticator_0;
12285         if (flags & NDR_IN) {
12286                 ZERO_STRUCT(r->out);
12287
12288                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12289                 if (_ptr_server_name) {
12290                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12291                 } else {
12292                         r->in.server_name = NULL;
12293                 }
12294                 if (r->in.server_name) {
12295                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12296                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12297                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12298                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12299                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12300                                 return 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));
12301                         }
12302                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12303                         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));
12304                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12305                 }
12306                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12307                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12308                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12309                         return 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));
12310                 }
12311                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12312                 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));
12313                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12314                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12315                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12316                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12317                         return 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));
12318                 }
12319                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12320                 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));
12321                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
12322                 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password));
12323                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12324                 ZERO_STRUCTP(r->out.return_authenticator);
12325         }
12326         if (flags & NDR_OUT) {
12327                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12328                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12329                 }
12330                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12331                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12332                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12333                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12334                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12335         }
12336         return NDR_ERR_SUCCESS;
12337 }
12338
12339 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
12340 {
12341         ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
12342         ndr->depth++;
12343         if (flags & NDR_SET_VALUES) {
12344                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12345         }
12346         if (flags & NDR_IN) {
12347                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
12348                 ndr->depth++;
12349                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12350                 ndr->depth++;
12351                 if (r->in.server_name) {
12352                         ndr_print_string(ndr, "server_name", r->in.server_name);
12353                 }
12354                 ndr->depth--;
12355                 ndr_print_string(ndr, "account_name", r->in.account_name);
12356                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12357                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12358                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
12359                 ndr_print_netr_CryptPassword(ndr, "new_password", &r->in.new_password);
12360                 ndr->depth--;
12361         }
12362         if (flags & NDR_OUT) {
12363                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
12364                 ndr->depth++;
12365                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12366                 ndr->depth++;
12367                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12368                 ndr->depth--;
12369                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12370                 ndr->depth--;
12371         }
12372         ndr->depth--;
12373 }
12374
12375 static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordGet *r)
12376 {
12377         if (flags & NDR_IN) {
12378                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12379                 if (r->in.server_name) {
12380                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12381                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12382                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12383                         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));
12384                 }
12385                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12386                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12387                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12388                 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));
12389                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12390                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12391                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12392                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12393                 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));
12394                 if (r->in.credential == NULL) {
12395                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12396                 }
12397                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12398         }
12399         if (flags & NDR_OUT) {
12400                 if (r->out.return_authenticator == NULL) {
12401                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12402                 }
12403                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12404                 if (r->out.password == NULL) {
12405                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12406                 }
12407                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
12408                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12409         }
12410         return NDR_ERR_SUCCESS;
12411 }
12412
12413 static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r)
12414 {
12415         uint32_t _ptr_server_name;
12416         TALLOC_CTX *_mem_save_server_name_0;
12417         TALLOC_CTX *_mem_save_credential_0;
12418         TALLOC_CTX *_mem_save_return_authenticator_0;
12419         TALLOC_CTX *_mem_save_password_0;
12420         if (flags & NDR_IN) {
12421                 ZERO_STRUCT(r->out);
12422
12423                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12424                 if (_ptr_server_name) {
12425                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12426                 } else {
12427                         r->in.server_name = NULL;
12428                 }
12429                 if (r->in.server_name) {
12430                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12431                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12432                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12433                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12434                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12435                                 return 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));
12436                         }
12437                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12438                         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));
12439                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12440                 }
12441                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12442                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12443                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12444                         return 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));
12445                 }
12446                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12447                 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));
12448                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12449                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12450                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12451                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12452                         return 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));
12453                 }
12454                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12455                 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));
12456                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12457                         NDR_PULL_ALLOC(ndr, r->in.credential);
12458                 }
12459                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12460                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12461                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12462                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12463                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12464                 ZERO_STRUCTP(r->out.return_authenticator);
12465                 NDR_PULL_ALLOC(ndr, r->out.password);
12466                 ZERO_STRUCTP(r->out.password);
12467         }
12468         if (flags & NDR_OUT) {
12469                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12470                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12471                 }
12472                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12473                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12474                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12475                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12476                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12477                         NDR_PULL_ALLOC(ndr, r->out.password);
12478                 }
12479                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
12480                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
12481                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
12482                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
12483                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12484         }
12485         return NDR_ERR_SUCCESS;
12486 }
12487
12488 _PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordGet *r)
12489 {
12490         ndr_print_struct(ndr, name, "netr_ServerPasswordGet");
12491         ndr->depth++;
12492         if (flags & NDR_SET_VALUES) {
12493                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12494         }
12495         if (flags & NDR_IN) {
12496                 ndr_print_struct(ndr, "in", "netr_ServerPasswordGet");
12497                 ndr->depth++;
12498                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12499                 ndr->depth++;
12500                 if (r->in.server_name) {
12501                         ndr_print_string(ndr, "server_name", r->in.server_name);
12502                 }
12503                 ndr->depth--;
12504                 ndr_print_string(ndr, "account_name", r->in.account_name);
12505                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12506                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12507                 ndr_print_ptr(ndr, "credential", r->in.credential);
12508                 ndr->depth++;
12509                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12510                 ndr->depth--;
12511                 ndr->depth--;
12512         }
12513         if (flags & NDR_OUT) {
12514                 ndr_print_struct(ndr, "out", "netr_ServerPasswordGet");
12515                 ndr->depth++;
12516                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12517                 ndr->depth++;
12518                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12519                 ndr->depth--;
12520                 ndr_print_ptr(ndr, "password", r->out.password);
12521                 ndr->depth++;
12522                 ndr_print_samr_Password(ndr, "password", r->out.password);
12523                 ndr->depth--;
12524                 ndr_print_WERROR(ndr, "result", r->out.result);
12525                 ndr->depth--;
12526         }
12527         ndr->depth--;
12528 }
12529
12530 static enum ndr_err_code ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12531 {
12532         if (flags & NDR_IN) {
12533         }
12534         if (flags & NDR_OUT) {
12535                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12536         }
12537         return NDR_ERR_SUCCESS;
12538 }
12539
12540 static enum ndr_err_code ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
12541 {
12542         if (flags & NDR_IN) {
12543         }
12544         if (flags & NDR_OUT) {
12545                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12546         }
12547         return NDR_ERR_SUCCESS;
12548 }
12549
12550 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12551 {
12552         ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
12553         ndr->depth++;
12554         if (flags & NDR_SET_VALUES) {
12555                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12556         }
12557         if (flags & NDR_IN) {
12558                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
12559                 ndr->depth++;
12560                 ndr->depth--;
12561         }
12562         if (flags & NDR_OUT) {
12563                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
12564                 ndr->depth++;
12565                 ndr_print_WERROR(ndr, "result", r->out.result);
12566                 ndr->depth--;
12567         }
12568         ndr->depth--;
12569 }
12570
12571 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesW *r)
12572 {
12573         uint32_t cntr_addresses_1;
12574         if (flags & NDR_IN) {
12575                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12576                 if (r->in.server_name) {
12577                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12578                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12579                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12580                         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));
12581                 }
12582                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12583                 if (r->in.addresses == NULL) {
12584                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12585                 }
12586                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12587                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12588                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12589                 }
12590                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12591                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12592                 }
12593         }
12594         if (flags & NDR_OUT) {
12595                 if (r->out.ctr == NULL) {
12596                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12597                 }
12598                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
12599                 if (*r->out.ctr) {
12600                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12601                 }
12602                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12603         }
12604         return NDR_ERR_SUCCESS;
12605 }
12606
12607 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r)
12608 {
12609         uint32_t _ptr_server_name;
12610         uint32_t cntr_addresses_1;
12611         uint32_t _ptr_ctr;
12612         TALLOC_CTX *_mem_save_server_name_0;
12613         TALLOC_CTX *_mem_save_addresses_1;
12614         TALLOC_CTX *_mem_save_ctr_0;
12615         TALLOC_CTX *_mem_save_ctr_1;
12616         if (flags & NDR_IN) {
12617                 ZERO_STRUCT(r->out);
12618
12619                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12620                 if (_ptr_server_name) {
12621                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12622                 } else {
12623                         r->in.server_name = NULL;
12624                 }
12625                 if (r->in.server_name) {
12626                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12627                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12628                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12629                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12630                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12631                                 return 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));
12632                         }
12633                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12634                         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));
12635                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12636                 }
12637                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
12638                 if (r->in.count < 0 || r->in.count > 32000) {
12639                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
12640                 }
12641                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
12642                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12643                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
12644                 }
12645                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
12646                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
12647                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12648                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12649                 }
12650                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12651                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12652                 }
12653                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
12654                 NDR_PULL_ALLOC(ndr, r->out.ctr);
12655                 ZERO_STRUCTP(r->out.ctr);
12656                 if (r->in.addresses) {
12657                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
12658                 }
12659         }
12660         if (flags & NDR_OUT) {
12661                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12662                         NDR_PULL_ALLOC(ndr, r->out.ctr);
12663                 }
12664                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
12665                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12666                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
12667                 if (_ptr_ctr) {
12668                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
12669                 } else {
12670                         *r->out.ctr = NULL;
12671                 }
12672                 if (*r->out.ctr) {
12673                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
12674                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
12675                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12676                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
12677                 }
12678                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
12679                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12680         }
12681         return NDR_ERR_SUCCESS;
12682 }
12683
12684 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesW *r)
12685 {
12686         uint32_t cntr_addresses_1;
12687         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesW");
12688         ndr->depth++;
12689         if (flags & NDR_SET_VALUES) {
12690                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12691         }
12692         if (flags & NDR_IN) {
12693                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesW");
12694                 ndr->depth++;
12695                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12696                 ndr->depth++;
12697                 if (r->in.server_name) {
12698                         ndr_print_string(ndr, "server_name", r->in.server_name);
12699                 }
12700                 ndr->depth--;
12701                 ndr_print_uint32(ndr, "count", r->in.count);
12702                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
12703                 ndr->depth++;
12704                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", r->in.count);
12705                 ndr->depth++;
12706                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
12707                         char *idx_1=NULL;
12708                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
12709                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
12710                                 free(idx_1);
12711                         }
12712                 }
12713                 ndr->depth--;
12714                 ndr->depth--;
12715                 ndr->depth--;
12716         }
12717         if (flags & NDR_OUT) {
12718                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesW");
12719                 ndr->depth++;
12720                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
12721                 ndr->depth++;
12722                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
12723                 ndr->depth++;
12724                 if (*r->out.ctr) {
12725                         ndr_print_netr_DsRAddressToSitenamesWCtr(ndr, "ctr", *r->out.ctr);
12726                 }
12727                 ndr->depth--;
12728                 ndr->depth--;
12729                 ndr_print_WERROR(ndr, "result", r->out.result);
12730                 ndr->depth--;
12731         }
12732         ndr->depth--;
12733 }
12734
12735 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
12736 {
12737         if (flags & NDR_IN) {
12738                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
12739                 if (r->in.server_unc) {
12740                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12741                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12742                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12743                         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));
12744                 }
12745                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
12746                 if (r->in.client_account) {
12747                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12748                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12749                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12750                         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));
12751                 }
12752                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.mask));
12753                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12754                 if (r->in.domain_name) {
12755                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12756                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12757                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12758                         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));
12759                 }
12760                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
12761                 if (r->in.domain_guid) {
12762                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
12763                 }
12764                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
12765                 if (r->in.site_name) {
12766                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12767                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12768                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12769                         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));
12770                 }
12771                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
12772         }
12773         if (flags & NDR_OUT) {
12774                 if (r->out.info == NULL) {
12775                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12776                 }
12777                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
12778                 if (*r->out.info) {
12779                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12780                 }
12781                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12782         }
12783         return NDR_ERR_SUCCESS;
12784 }
12785
12786 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
12787 {
12788         uint32_t _ptr_server_unc;
12789         uint32_t _ptr_client_account;
12790         uint32_t _ptr_domain_name;
12791         uint32_t _ptr_domain_guid;
12792         uint32_t _ptr_site_name;
12793         uint32_t _ptr_info;
12794         TALLOC_CTX *_mem_save_server_unc_0;
12795         TALLOC_CTX *_mem_save_client_account_0;
12796         TALLOC_CTX *_mem_save_domain_name_0;
12797         TALLOC_CTX *_mem_save_domain_guid_0;
12798         TALLOC_CTX *_mem_save_site_name_0;
12799         TALLOC_CTX *_mem_save_info_0;
12800         TALLOC_CTX *_mem_save_info_1;
12801         if (flags & NDR_IN) {
12802                 ZERO_STRUCT(r->out);
12803
12804                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12805                 if (_ptr_server_unc) {
12806                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
12807                 } else {
12808                         r->in.server_unc = NULL;
12809                 }
12810                 if (r->in.server_unc) {
12811                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12812                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12813                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12814                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12815                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12816                                 return 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));
12817                         }
12818                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12819                         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));
12820                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12821                 }
12822                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
12823                 if (_ptr_client_account) {
12824                         NDR_PULL_ALLOC(ndr, r->in.client_account);
12825                 } else {
12826                         r->in.client_account = NULL;
12827                 }
12828                 if (r->in.client_account) {
12829                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
12830                         NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
12831                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
12832                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
12833                         if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
12834                                 return 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));
12835                         }
12836                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
12837                         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));
12838                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
12839                 }
12840                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask));
12841                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12842                 if (_ptr_domain_name) {
12843                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12844                 } else {
12845                         r->in.domain_name = NULL;
12846                 }
12847                 if (r->in.domain_name) {
12848                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12849                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12850                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12851                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12852                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12853                                 return 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));
12854                         }
12855                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12856                         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));
12857                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12858                 }
12859                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12860                 if (_ptr_domain_guid) {
12861                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12862                 } else {
12863                         r->in.domain_guid = NULL;
12864                 }
12865                 if (r->in.domain_guid) {
12866                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12867                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12868                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
12869                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12870                 }
12871                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
12872                 if (_ptr_site_name) {
12873                         NDR_PULL_ALLOC(ndr, r->in.site_name);
12874                 } else {
12875                         r->in.site_name = NULL;
12876                 }
12877                 if (r->in.site_name) {
12878                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12879                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
12880                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
12881                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
12882                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
12883                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.site_name), ndr_get_array_length(ndr, &r->in.site_name));
12884                         }
12885                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
12886                         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));
12887                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
12888                 }
12889                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12890                 NDR_PULL_ALLOC(ndr, r->out.info);
12891                 ZERO_STRUCTP(r->out.info);
12892         }
12893         if (flags & NDR_OUT) {
12894                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12895                         NDR_PULL_ALLOC(ndr, r->out.info);
12896                 }
12897                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12898                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12899                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12900                 if (_ptr_info) {
12901                         NDR_PULL_ALLOC(ndr, *r->out.info);
12902                 } else {
12903                         *r->out.info = NULL;
12904                 }
12905                 if (*r->out.info) {
12906                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
12907                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
12908                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12909                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
12910                 }
12911                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12912                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12913         }
12914         return NDR_ERR_SUCCESS;
12915 }
12916
12917 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
12918 {
12919         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
12920         ndr->depth++;
12921         if (flags & NDR_SET_VALUES) {
12922                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12923         }
12924         if (flags & NDR_IN) {
12925                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
12926                 ndr->depth++;
12927                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
12928                 ndr->depth++;
12929                 if (r->in.server_unc) {
12930                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
12931                 }
12932                 ndr->depth--;
12933                 ndr_print_ptr(ndr, "client_account", r->in.client_account);
12934                 ndr->depth++;
12935                 if (r->in.client_account) {
12936                         ndr_print_string(ndr, "client_account", r->in.client_account);
12937                 }
12938                 ndr->depth--;
12939                 ndr_print_samr_AcctFlags(ndr, "mask", r->in.mask);
12940                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12941                 ndr->depth++;
12942                 if (r->in.domain_name) {
12943                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12944                 }
12945                 ndr->depth--;
12946                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
12947                 ndr->depth++;
12948                 if (r->in.domain_guid) {
12949                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
12950                 }
12951                 ndr->depth--;
12952                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
12953                 ndr->depth++;
12954                 if (r->in.site_name) {
12955                         ndr_print_string(ndr, "site_name", r->in.site_name);
12956                 }
12957                 ndr->depth--;
12958                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
12959                 ndr->depth--;
12960         }
12961         if (flags & NDR_OUT) {
12962                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
12963                 ndr->depth++;
12964                 ndr_print_ptr(ndr, "info", r->out.info);
12965                 ndr->depth++;
12966                 ndr_print_ptr(ndr, "info", *r->out.info);
12967                 ndr->depth++;
12968                 if (*r->out.info) {
12969                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
12970                 }
12971                 ndr->depth--;
12972                 ndr->depth--;
12973                 ndr_print_WERROR(ndr, "result", r->out.result);
12974                 ndr->depth--;
12975         }
12976         ndr->depth--;
12977 }
12978
12979 static enum ndr_err_code ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
12980 {
12981         if (flags & NDR_IN) {
12982         }
12983         if (flags & NDR_OUT) {
12984                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12985         }
12986         return NDR_ERR_SUCCESS;
12987 }
12988
12989 static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
12990 {
12991         if (flags & NDR_IN) {
12992         }
12993         if (flags & NDR_OUT) {
12994                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12995         }
12996         return NDR_ERR_SUCCESS;
12997 }
12998
12999 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13000 {
13001         ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13002         ndr->depth++;
13003         if (flags & NDR_SET_VALUES) {
13004                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13005         }
13006         if (flags & NDR_IN) {
13007                 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13008                 ndr->depth++;
13009                 ndr->depth--;
13010         }
13011         if (flags & NDR_OUT) {
13012                 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13013                 ndr->depth++;
13014                 ndr_print_WERROR(ndr, "result", r->out.result);
13015                 ndr->depth--;
13016         }
13017         ndr->depth--;
13018 }
13019
13020 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
13021 {
13022         if (flags & NDR_IN) {
13023                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13024                 if (r->in.server_name) {
13025                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13026                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13027                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13028                         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));
13029                 }
13030         }
13031         if (flags & NDR_OUT) {
13032                 if (r->out.dom_trust_list == NULL) {
13033                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13034                 }
13035                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
13036                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13037         }
13038         return NDR_ERR_SUCCESS;
13039 }
13040
13041 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r)
13042 {
13043         uint32_t _ptr_server_name;
13044         TALLOC_CTX *_mem_save_server_name_0;
13045         TALLOC_CTX *_mem_save_dom_trust_list_0;
13046         if (flags & NDR_IN) {
13047                 ZERO_STRUCT(r->out);
13048
13049                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13050                 if (_ptr_server_name) {
13051                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13052                 } else {
13053                         r->in.server_name = NULL;
13054                 }
13055                 if (r->in.server_name) {
13056                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13057                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13058                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13059                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13060                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13061                                 return 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));
13062                         }
13063                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13064                         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));
13065                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13066                 }
13067                 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13068                 ZERO_STRUCTP(r->out.dom_trust_list);
13069         }
13070         if (flags & NDR_OUT) {
13071                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13072                         NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13073                 }
13074                 _mem_save_dom_trust_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
13075                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dom_trust_list, LIBNDR_FLAG_REF_ALLOC);
13076                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
13077                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_trust_list_0, LIBNDR_FLAG_REF_ALLOC);
13078                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13079         }
13080         return NDR_ERR_SUCCESS;
13081 }
13082
13083 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
13084 {
13085         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomainsEx");
13086         ndr->depth++;
13087         if (flags & NDR_SET_VALUES) {
13088                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13089         }
13090         if (flags & NDR_IN) {
13091                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomainsEx");
13092                 ndr->depth++;
13093                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13094                 ndr->depth++;
13095                 if (r->in.server_name) {
13096                         ndr_print_string(ndr, "server_name", r->in.server_name);
13097                 }
13098                 ndr->depth--;
13099                 ndr->depth--;
13100         }
13101         if (flags & NDR_OUT) {
13102                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomainsEx");
13103                 ndr->depth++;
13104                 ndr_print_ptr(ndr, "dom_trust_list", r->out.dom_trust_list);
13105                 ndr->depth++;
13106                 ndr_print_netr_DomainTrustList(ndr, "dom_trust_list", r->out.dom_trust_list);
13107                 ndr->depth--;
13108                 ndr_print_WERROR(ndr, "result", r->out.result);
13109                 ndr->depth--;
13110         }
13111         ndr->depth--;
13112 }
13113
13114 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesExW *r)
13115 {
13116         uint32_t cntr_addresses_1;
13117         if (flags & NDR_IN) {
13118                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13119                 if (r->in.server_name) {
13120                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13121                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13122                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13123                         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));
13124                 }
13125                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13126                 if (r->in.addresses == NULL) {
13127                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13128                 }
13129                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13130                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13131                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13132                 }
13133                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13134                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13135                 }
13136         }
13137         if (flags & NDR_OUT) {
13138                 if (r->out.ctr == NULL) {
13139                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13140                 }
13141                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
13142                 if (*r->out.ctr) {
13143                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13144                 }
13145                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13146         }
13147         return NDR_ERR_SUCCESS;
13148 }
13149
13150 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r)
13151 {
13152         uint32_t _ptr_server_name;
13153         uint32_t cntr_addresses_1;
13154         uint32_t _ptr_ctr;
13155         TALLOC_CTX *_mem_save_server_name_0;
13156         TALLOC_CTX *_mem_save_addresses_1;
13157         TALLOC_CTX *_mem_save_ctr_0;
13158         TALLOC_CTX *_mem_save_ctr_1;
13159         if (flags & NDR_IN) {
13160                 ZERO_STRUCT(r->out);
13161
13162                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13163                 if (_ptr_server_name) {
13164                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13165                 } else {
13166                         r->in.server_name = NULL;
13167                 }
13168                 if (r->in.server_name) {
13169                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13170                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13171                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13172                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13173                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13174                                 return 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));
13175                         }
13176                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13177                         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));
13178                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13179                 }
13180                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
13181                 if (r->in.count < 0 || r->in.count > 32000) {
13182                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13183                 }
13184                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
13185                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13186                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
13187                 }
13188                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
13189                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
13190                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13191                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13192                 }
13193                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13194                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13195                 }
13196                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
13197                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13198                 ZERO_STRUCTP(r->out.ctr);
13199                 if (r->in.addresses) {
13200                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
13201                 }
13202         }
13203         if (flags & NDR_OUT) {
13204                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13205                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13206                 }
13207                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13208                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13209                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
13210                 if (_ptr_ctr) {
13211                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
13212                 } else {
13213                         *r->out.ctr = NULL;
13214                 }
13215                 if (*r->out.ctr) {
13216                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
13217                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
13218                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13219                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
13220                 }
13221                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13222                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13223         }
13224         return NDR_ERR_SUCCESS;
13225 }
13226
13227 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesExW *r)
13228 {
13229         uint32_t cntr_addresses_1;
13230         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExW");
13231         ndr->depth++;
13232         if (flags & NDR_SET_VALUES) {
13233                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13234         }
13235         if (flags & NDR_IN) {
13236                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesExW");
13237                 ndr->depth++;
13238                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13239                 ndr->depth++;
13240                 if (r->in.server_name) {
13241                         ndr_print_string(ndr, "server_name", r->in.server_name);
13242                 }
13243                 ndr->depth--;
13244                 ndr_print_uint32(ndr, "count", r->in.count);
13245                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
13246                 ndr->depth++;
13247                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", r->in.count);
13248                 ndr->depth++;
13249                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
13250                         char *idx_1=NULL;
13251                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
13252                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
13253                                 free(idx_1);
13254                         }
13255                 }
13256                 ndr->depth--;
13257                 ndr->depth--;
13258                 ndr->depth--;
13259         }
13260         if (flags & NDR_OUT) {
13261                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesExW");
13262                 ndr->depth++;
13263                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13264                 ndr->depth++;
13265                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
13266                 ndr->depth++;
13267                 if (*r->out.ctr) {
13268                         ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr, "ctr", *r->out.ctr);
13269                 }
13270                 ndr->depth--;
13271                 ndr->depth--;
13272                 ndr_print_WERROR(ndr, "result", r->out.result);
13273                 ndr->depth--;
13274         }
13275         ndr->depth--;
13276 }
13277
13278 static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *ndr, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13279 {
13280         if (flags & NDR_IN) {
13281                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13282                 if (r->in.server_name) {
13283                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13284                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13285                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13286                         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));
13287                 }
13288         }
13289         if (flags & NDR_OUT) {
13290                 if (r->out.ctr == NULL) {
13291                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13292                 }
13293                 NDR_CHECK(ndr_push_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13294                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13295         }
13296         return NDR_ERR_SUCCESS;
13297 }
13298
13299 static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r)
13300 {
13301         uint32_t _ptr_server_name;
13302         TALLOC_CTX *_mem_save_server_name_0;
13303         TALLOC_CTX *_mem_save_ctr_0;
13304         if (flags & NDR_IN) {
13305                 ZERO_STRUCT(r->out);
13306
13307                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13308                 if (_ptr_server_name) {
13309                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13310                 } else {
13311                         r->in.server_name = NULL;
13312                 }
13313                 if (r->in.server_name) {
13314                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13315                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13316                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13317                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13318                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13319                                 return 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));
13320                         }
13321                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13322                         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));
13323                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13324                 }
13325                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13326                 ZERO_STRUCTP(r->out.ctr);
13327         }
13328         if (flags & NDR_OUT) {
13329                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13330                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13331                 }
13332                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13333                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13334                 NDR_CHECK(ndr_pull_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13335                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13336                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13337         }
13338         return NDR_ERR_SUCCESS;
13339 }
13340
13341 _PUBLIC_ void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13342 {
13343         ndr_print_struct(ndr, name, "netr_DsrGetDcSiteCoverageW");
13344         ndr->depth++;
13345         if (flags & NDR_SET_VALUES) {
13346                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13347         }
13348         if (flags & NDR_IN) {
13349                 ndr_print_struct(ndr, "in", "netr_DsrGetDcSiteCoverageW");
13350                 ndr->depth++;
13351                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13352                 ndr->depth++;
13353                 if (r->in.server_name) {
13354                         ndr_print_string(ndr, "server_name", r->in.server_name);
13355                 }
13356                 ndr->depth--;
13357                 ndr->depth--;
13358         }
13359         if (flags & NDR_OUT) {
13360                 ndr_print_struct(ndr, "out", "netr_DsrGetDcSiteCoverageW");
13361                 ndr->depth++;
13362                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13363                 ndr->depth++;
13364                 ndr_print_DcSitesCtr(ndr, "ctr", r->out.ctr);
13365                 ndr->depth--;
13366                 ndr_print_WERROR(ndr, "result", r->out.result);
13367                 ndr->depth--;
13368         }
13369         ndr->depth--;
13370 }
13371
13372 static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
13373 {
13374         if (flags & NDR_IN) {
13375                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13376                 if (r->in.server_name) {
13377                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13378                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13379                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13380                         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));
13381                 }
13382                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13383                 if (r->in.computer_name) {
13384                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13385                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13386                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13387                         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));
13388                 }
13389                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
13390                 if (r->in.logon == NULL) {
13391                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13392                 }
13393                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
13394                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
13395                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
13396                 if (r->in.flags == NULL) {
13397                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13398                 }
13399                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
13400         }
13401         if (flags & NDR_OUT) {
13402                 if (r->out.validation == NULL) {
13403                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13404                 }
13405                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13406                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13407                 if (r->out.authoritative == NULL) {
13408                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13409                 }
13410                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
13411                 if (r->out.flags == NULL) {
13412                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13413                 }
13414                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
13415                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13416         }
13417         return NDR_ERR_SUCCESS;
13418 }
13419
13420 static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
13421 {
13422         uint32_t _ptr_server_name;
13423         uint32_t _ptr_computer_name;
13424         TALLOC_CTX *_mem_save_server_name_0;
13425         TALLOC_CTX *_mem_save_computer_name_0;
13426         TALLOC_CTX *_mem_save_logon_0;
13427         TALLOC_CTX *_mem_save_validation_0;
13428         TALLOC_CTX *_mem_save_authoritative_0;
13429         TALLOC_CTX *_mem_save_flags_0;
13430         if (flags & NDR_IN) {
13431                 ZERO_STRUCT(r->out);
13432
13433                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13434                 if (_ptr_server_name) {
13435                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13436                 } else {
13437                         r->in.server_name = NULL;
13438                 }
13439                 if (r->in.server_name) {
13440                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13441                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13442                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13443                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13444                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13445                                 return 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));
13446                         }
13447                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13448                         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));
13449                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13450                 }
13451                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13452                 if (_ptr_computer_name) {
13453                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13454                 } else {
13455                         r->in.computer_name = NULL;
13456                 }
13457                 if (r->in.computer_name) {
13458                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13459                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13460                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13461                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13462                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13463                                 return 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));
13464                         }
13465                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13466                         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));
13467                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13468                 }
13469                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
13470                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13471                         NDR_PULL_ALLOC(ndr, r->in.logon);
13472                 }
13473                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
13474                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
13475                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
13476                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
13477                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
13478                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
13479                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13480                         NDR_PULL_ALLOC(ndr, r->in.flags);
13481                 }
13482                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13483                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
13484                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
13485                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13486                 NDR_PULL_ALLOC(ndr, r->out.validation);
13487                 ZERO_STRUCTP(r->out.validation);
13488                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
13489                 ZERO_STRUCTP(r->out.authoritative);
13490                 NDR_PULL_ALLOC(ndr, r->out.flags);
13491                 *r->out.flags = *r->in.flags;
13492         }
13493         if (flags & NDR_OUT) {
13494                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13495                         NDR_PULL_ALLOC(ndr, r->out.validation);
13496                 }
13497                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
13498                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
13499                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13500                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13501                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
13502                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13503                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
13504                 }
13505                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
13506                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
13507                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
13508                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
13509                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13510                         NDR_PULL_ALLOC(ndr, r->out.flags);
13511                 }
13512                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13513                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
13514                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
13515                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13516                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13517         }
13518         return NDR_ERR_SUCCESS;
13519 }
13520
13521 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
13522 {
13523         ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
13524         ndr->depth++;
13525         if (flags & NDR_SET_VALUES) {
13526                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13527         }
13528         if (flags & NDR_IN) {
13529                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
13530                 ndr->depth++;
13531                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13532                 ndr->depth++;
13533                 if (r->in.server_name) {
13534                         ndr_print_string(ndr, "server_name", r->in.server_name);
13535                 }
13536                 ndr->depth--;
13537                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13538                 ndr->depth++;
13539                 if (r->in.computer_name) {
13540                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
13541                 }
13542                 ndr->depth--;
13543                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
13544                 ndr_print_ptr(ndr, "logon", r->in.logon);
13545                 ndr->depth++;
13546                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
13547                 ndr_print_netr_LogonInfo(ndr, "logon", r->in.logon);
13548                 ndr->depth--;
13549                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
13550                 ndr_print_ptr(ndr, "flags", r->in.flags);
13551                 ndr->depth++;
13552                 ndr_print_uint32(ndr, "flags", *r->in.flags);
13553                 ndr->depth--;
13554                 ndr->depth--;
13555         }
13556         if (flags & NDR_OUT) {
13557                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
13558                 ndr->depth++;
13559                 ndr_print_ptr(ndr, "validation", r->out.validation);
13560                 ndr->depth++;
13561                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
13562                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
13563                 ndr->depth--;
13564                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
13565                 ndr->depth++;
13566                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
13567                 ndr->depth--;
13568                 ndr_print_ptr(ndr, "flags", r->out.flags);
13569                 ndr->depth++;
13570                 ndr_print_uint32(ndr, "flags", *r->out.flags);
13571                 ndr->depth--;
13572                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13573                 ndr->depth--;
13574         }
13575         ndr->depth--;
13576 }
13577
13578 static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13579 {
13580         if (flags & NDR_IN) {
13581                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13582                 if (r->in.server_name) {
13583                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13584                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13585                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13586                         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));
13587                 }
13588                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
13589         }
13590         if (flags & NDR_OUT) {
13591                 if (r->out.trusts == NULL) {
13592                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13593                 }
13594                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13595                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13596         }
13597         return NDR_ERR_SUCCESS;
13598 }
13599
13600 static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
13601 {
13602         uint32_t _ptr_server_name;
13603         TALLOC_CTX *_mem_save_server_name_0;
13604         TALLOC_CTX *_mem_save_trusts_0;
13605         if (flags & NDR_IN) {
13606                 ZERO_STRUCT(r->out);
13607
13608                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13609                 if (_ptr_server_name) {
13610                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13611                 } else {
13612                         r->in.server_name = NULL;
13613                 }
13614                 if (r->in.server_name) {
13615                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13616                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13617                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13618                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13619                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13620                                 return 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));
13621                         }
13622                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13623                         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));
13624                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13625                 }
13626                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
13627                 NDR_PULL_ALLOC(ndr, r->out.trusts);
13628                 ZERO_STRUCTP(r->out.trusts);
13629         }
13630         if (flags & NDR_OUT) {
13631                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13632                         NDR_PULL_ALLOC(ndr, r->out.trusts);
13633                 }
13634                 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
13635                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
13636                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13637                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, LIBNDR_FLAG_REF_ALLOC);
13638                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13639         }
13640         return NDR_ERR_SUCCESS;
13641 }
13642
13643 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13644 {
13645         ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
13646         ndr->depth++;
13647         if (flags & NDR_SET_VALUES) {
13648                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13649         }
13650         if (flags & NDR_IN) {
13651                 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
13652                 ndr->depth++;
13653                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13654                 ndr->depth++;
13655                 if (r->in.server_name) {
13656                         ndr_print_string(ndr, "server_name", r->in.server_name);
13657                 }
13658                 ndr->depth--;
13659                 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
13660                 ndr->depth--;
13661         }
13662         if (flags & NDR_OUT) {
13663                 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
13664                 ndr->depth++;
13665                 ndr_print_ptr(ndr, "trusts", r->out.trusts);
13666                 ndr->depth++;
13667                 ndr_print_netr_DomainTrustList(ndr, "trusts", r->out.trusts);
13668                 ndr->depth--;
13669                 ndr_print_WERROR(ndr, "result", r->out.result);
13670                 ndr->depth--;
13671         }
13672         ndr->depth--;
13673 }
13674
13675 static enum ndr_err_code ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push *ndr, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
13676 {
13677         if (flags & NDR_IN) {
13678                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13679                 if (r->in.server_name) {
13680                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13681                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13682                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13683                         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));
13684                 }
13685                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain));
13686                 if (r->in.domain) {
13687                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
13688                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13689                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
13690                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13691                 }
13692                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
13693                 if (r->in.domain_guid) {
13694                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
13695                 }
13696                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dsa_guid));
13697                 if (r->in.dsa_guid) {
13698                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.dsa_guid));
13699                 }
13700                 if (r->in.dns_host == NULL) {
13701                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13702                 }
13703                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
13704                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13705                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
13706                 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));
13707         }
13708         if (flags & NDR_OUT) {
13709                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13710         }
13711         return NDR_ERR_SUCCESS;
13712 }
13713
13714 static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull *ndr, int flags, struct netr_DsrDeregisterDNSHostRecords *r)
13715 {
13716         uint32_t _ptr_server_name;
13717         uint32_t _ptr_domain;
13718         uint32_t _ptr_domain_guid;
13719         uint32_t _ptr_dsa_guid;
13720         TALLOC_CTX *_mem_save_server_name_0;
13721         TALLOC_CTX *_mem_save_domain_0;
13722         TALLOC_CTX *_mem_save_domain_guid_0;
13723         TALLOC_CTX *_mem_save_dsa_guid_0;
13724         if (flags & NDR_IN) {
13725                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13726                 if (_ptr_server_name) {
13727                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13728                 } else {
13729                         r->in.server_name = NULL;
13730                 }
13731                 if (r->in.server_name) {
13732                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13733                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13734                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13735                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13736                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13737                                 return 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));
13738                         }
13739                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13740                         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));
13741                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13742                 }
13743                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
13744                 if (_ptr_domain) {
13745                         NDR_PULL_ALLOC(ndr, r->in.domain);
13746                 } else {
13747                         r->in.domain = NULL;
13748                 }
13749                 if (r->in.domain) {
13750                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
13751                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain, 0);
13752                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
13753                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
13754                         if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
13755                                 return 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));
13756                         }
13757                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t)));
13758                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t), CH_UTF16));
13759                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
13760                 }
13761                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
13762                 if (_ptr_domain_guid) {
13763                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
13764                 } else {
13765                         r->in.domain_guid = NULL;
13766                 }
13767                 if (r->in.domain_guid) {
13768                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13769                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
13770                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
13771                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
13772                 }
13773                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_guid));
13774                 if (_ptr_dsa_guid) {
13775                         NDR_PULL_ALLOC(ndr, r->in.dsa_guid);
13776                 } else {
13777                         r->in.dsa_guid = NULL;
13778                 }
13779                 if (r->in.dsa_guid) {
13780                         _mem_save_dsa_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13781                         NDR_PULL_SET_MEM_CTX(ndr, r->in.dsa_guid, 0);
13782                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.dsa_guid));
13783                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_guid_0, 0);
13784                 }
13785                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_host));
13786                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_host));
13787                 if (ndr_get_array_length(ndr, &r->in.dns_host) > ndr_get_array_size(ndr, &r->in.dns_host)) {
13788                         return 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));
13789                 }
13790                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t)));
13791                 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));
13792         }
13793         if (flags & NDR_OUT) {
13794                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13795         }
13796         return NDR_ERR_SUCCESS;
13797 }
13798
13799 _PUBLIC_ void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
13800 {
13801         ndr_print_struct(ndr, name, "netr_DsrDeregisterDNSHostRecords");
13802         ndr->depth++;
13803         if (flags & NDR_SET_VALUES) {
13804                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13805         }
13806         if (flags & NDR_IN) {
13807                 ndr_print_struct(ndr, "in", "netr_DsrDeregisterDNSHostRecords");
13808                 ndr->depth++;
13809                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13810                 ndr->depth++;
13811                 if (r->in.server_name) {
13812                         ndr_print_string(ndr, "server_name", r->in.server_name);
13813                 }
13814                 ndr->depth--;
13815                 ndr_print_ptr(ndr, "domain", r->in.domain);
13816                 ndr->depth++;
13817                 if (r->in.domain) {
13818                         ndr_print_string(ndr, "domain", r->in.domain);
13819                 }
13820                 ndr->depth--;
13821                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
13822                 ndr->depth++;
13823                 if (r->in.domain_guid) {
13824                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
13825                 }
13826                 ndr->depth--;
13827                 ndr_print_ptr(ndr, "dsa_guid", r->in.dsa_guid);
13828                 ndr->depth++;
13829                 if (r->in.dsa_guid) {
13830                         ndr_print_GUID(ndr, "dsa_guid", r->in.dsa_guid);
13831                 }
13832                 ndr->depth--;
13833                 ndr_print_ptr(ndr, "dns_host", r->in.dns_host);
13834                 ndr->depth++;
13835                 ndr_print_string(ndr, "dns_host", r->in.dns_host);
13836                 ndr->depth--;
13837                 ndr->depth--;
13838         }
13839         if (flags & NDR_OUT) {
13840                 ndr_print_struct(ndr, "out", "netr_DsrDeregisterDNSHostRecords");
13841                 ndr->depth++;
13842                 ndr_print_WERROR(ndr, "result", r->out.result);
13843                 ndr->depth--;
13844         }
13845         ndr->depth--;
13846 }
13847
13848 static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push *ndr, int flags, const struct netr_ServerTrustPasswordsGet *r)
13849 {
13850         if (flags & NDR_IN) {
13851                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13852                 if (r->in.server_name) {
13853                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13854                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13855                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13856                         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));
13857                 }
13858                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13859                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13860                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13861                 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));
13862                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13863                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13864                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13865                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13866                 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));
13867                 if (r->in.credential == NULL) {
13868                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13869                 }
13870                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13871         }
13872         if (flags & NDR_OUT) {
13873                 if (r->out.return_authenticator == NULL) {
13874                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13875                 }
13876                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13877                 if (r->out.password == NULL) {
13878                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13879                 }
13880                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
13881                 if (r->out.password2 == NULL) {
13882                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13883                 }
13884                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password2));
13885                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13886         }
13887         return NDR_ERR_SUCCESS;
13888 }
13889
13890 static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r)
13891 {
13892         uint32_t _ptr_server_name;
13893         TALLOC_CTX *_mem_save_server_name_0;
13894         TALLOC_CTX *_mem_save_credential_0;
13895         TALLOC_CTX *_mem_save_return_authenticator_0;
13896         TALLOC_CTX *_mem_save_password_0;
13897         TALLOC_CTX *_mem_save_password2_0;
13898         if (flags & NDR_IN) {
13899                 ZERO_STRUCT(r->out);
13900
13901                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13902                 if (_ptr_server_name) {
13903                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13904                 } else {
13905                         r->in.server_name = NULL;
13906                 }
13907                 if (r->in.server_name) {
13908                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13909                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13910                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13911                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13912                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13913                                 return 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));
13914                         }
13915                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13916                         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));
13917                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13918                 }
13919                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13920                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13921                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13922                         return 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));
13923                 }
13924                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13925                 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));
13926                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13927                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13928                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13929                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13930                         return 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));
13931                 }
13932                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13933                 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));
13934                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13935                         NDR_PULL_ALLOC(ndr, r->in.credential);
13936                 }
13937                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13938                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13939                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13940                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13941                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13942                 ZERO_STRUCTP(r->out.return_authenticator);
13943                 NDR_PULL_ALLOC(ndr, r->out.password);
13944                 ZERO_STRUCTP(r->out.password);
13945                 NDR_PULL_ALLOC(ndr, r->out.password2);
13946                 ZERO_STRUCTP(r->out.password2);
13947         }
13948         if (flags & NDR_OUT) {
13949                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13950                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13951                 }
13952                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13953                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13954                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13955                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13956                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13957                         NDR_PULL_ALLOC(ndr, r->out.password);
13958                 }
13959                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
13960                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
13961                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
13962                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
13963                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13964                         NDR_PULL_ALLOC(ndr, r->out.password2);
13965                 }
13966                 _mem_save_password2_0 = NDR_PULL_GET_MEM_CTX(ndr);
13967                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password2, LIBNDR_FLAG_REF_ALLOC);
13968                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password2));
13969                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password2_0, LIBNDR_FLAG_REF_ALLOC);
13970                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13971         }
13972         return NDR_ERR_SUCCESS;
13973 }
13974
13975 _PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerTrustPasswordsGet *r)
13976 {
13977         ndr_print_struct(ndr, name, "netr_ServerTrustPasswordsGet");
13978         ndr->depth++;
13979         if (flags & NDR_SET_VALUES) {
13980                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13981         }
13982         if (flags & NDR_IN) {
13983                 ndr_print_struct(ndr, "in", "netr_ServerTrustPasswordsGet");
13984                 ndr->depth++;
13985                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13986                 ndr->depth++;
13987                 if (r->in.server_name) {
13988                         ndr_print_string(ndr, "server_name", r->in.server_name);
13989                 }
13990                 ndr->depth--;
13991                 ndr_print_string(ndr, "account_name", r->in.account_name);
13992                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
13993                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13994                 ndr_print_ptr(ndr, "credential", r->in.credential);
13995                 ndr->depth++;
13996                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13997                 ndr->depth--;
13998                 ndr->depth--;
13999         }
14000         if (flags & NDR_OUT) {
14001                 ndr_print_struct(ndr, "out", "netr_ServerTrustPasswordsGet");
14002                 ndr->depth++;
14003                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14004                 ndr->depth++;
14005                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14006                 ndr->depth--;
14007                 ndr_print_ptr(ndr, "password", r->out.password);
14008                 ndr->depth++;
14009                 ndr_print_samr_Password(ndr, "password", r->out.password);
14010                 ndr->depth--;
14011                 ndr_print_ptr(ndr, "password2", r->out.password2);
14012                 ndr->depth++;
14013                 ndr_print_samr_Password(ndr, "password2", r->out.password2);
14014                 ndr->depth--;
14015                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14016                 ndr->depth--;
14017         }
14018         ndr->depth--;
14019 }
14020
14021 static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_DsRGetForestTrustInformation *r)
14022 {
14023         if (flags & NDR_IN) {
14024                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14025                 if (r->in.server_name) {
14026                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14027                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14028                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14029                         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));
14030                 }
14031                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.trusted_domain_name));
14032                 if (r->in.trusted_domain_name) {
14033                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14034                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14035                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14036                         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));
14037                 }
14038                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14039         }
14040         if (flags & NDR_OUT) {
14041                 if (r->out.forest_trust_info == NULL) {
14042                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14043                 }
14044                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
14045                 if (*r->out.forest_trust_info) {
14046                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14047                 }
14048                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14049         }
14050         return NDR_ERR_SUCCESS;
14051 }
14052
14053 static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r)
14054 {
14055         uint32_t _ptr_server_name;
14056         uint32_t _ptr_trusted_domain_name;
14057         uint32_t _ptr_forest_trust_info;
14058         TALLOC_CTX *_mem_save_server_name_0;
14059         TALLOC_CTX *_mem_save_trusted_domain_name_0;
14060         TALLOC_CTX *_mem_save_forest_trust_info_0;
14061         TALLOC_CTX *_mem_save_forest_trust_info_1;
14062         if (flags & NDR_IN) {
14063                 ZERO_STRUCT(r->out);
14064
14065                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14066                 if (_ptr_server_name) {
14067                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14068                 } else {
14069                         r->in.server_name = NULL;
14070                 }
14071                 if (r->in.server_name) {
14072                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14073                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14074                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14075                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14076                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14077                                 return 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));
14078                         }
14079                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14080                         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));
14081                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14082                 }
14083                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
14084                 if (_ptr_trusted_domain_name) {
14085                         NDR_PULL_ALLOC(ndr, r->in.trusted_domain_name);
14086                 } else {
14087                         r->in.trusted_domain_name = NULL;
14088                 }
14089                 if (r->in.trusted_domain_name) {
14090                         _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14091                         NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0);
14092                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
14093                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
14094                         if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
14095                                 return 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));
14096                         }
14097                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
14098                         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));
14099                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
14100                 }
14101                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
14102                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14103                 ZERO_STRUCTP(r->out.forest_trust_info);
14104         }
14105         if (flags & NDR_OUT) {
14106                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14107                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14108                 }
14109                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14110                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
14111                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
14112                 if (_ptr_forest_trust_info) {
14113                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
14114                 } else {
14115                         *r->out.forest_trust_info = NULL;
14116                 }
14117                 if (*r->out.forest_trust_info) {
14118                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14119                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
14120                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14121                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
14122                 }
14123                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
14124                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14125         }
14126         return NDR_ERR_SUCCESS;
14127 }
14128
14129 _PUBLIC_ void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r)
14130 {
14131         ndr_print_struct(ndr, name, "netr_DsRGetForestTrustInformation");
14132         ndr->depth++;
14133         if (flags & NDR_SET_VALUES) {
14134                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14135         }
14136         if (flags & NDR_IN) {
14137                 ndr_print_struct(ndr, "in", "netr_DsRGetForestTrustInformation");
14138                 ndr->depth++;
14139                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14140                 ndr->depth++;
14141                 if (r->in.server_name) {
14142                         ndr_print_string(ndr, "server_name", r->in.server_name);
14143                 }
14144                 ndr->depth--;
14145                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14146                 ndr->depth++;
14147                 if (r->in.trusted_domain_name) {
14148                         ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14149                 }
14150                 ndr->depth--;
14151                 ndr_print_uint32(ndr, "flags", r->in.flags);
14152                 ndr->depth--;
14153         }
14154         if (flags & NDR_OUT) {
14155                 ndr_print_struct(ndr, "out", "netr_DsRGetForestTrustInformation");
14156                 ndr->depth++;
14157                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
14158                 ndr->depth++;
14159                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
14160                 ndr->depth++;
14161                 if (*r->out.forest_trust_info) {
14162                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
14163                 }
14164                 ndr->depth--;
14165                 ndr->depth--;
14166                 ndr_print_WERROR(ndr, "result", r->out.result);
14167                 ndr->depth--;
14168         }
14169         ndr->depth--;
14170 }
14171
14172 static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_GetForestTrustInformation *r)
14173 {
14174         if (flags & NDR_IN) {
14175                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14176                 if (r->in.server_name) {
14177                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14178                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14179                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14180                         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));
14181                 }
14182                 if (r->in.trusted_domain_name == NULL) {
14183                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14184                 }
14185                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14186                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14187                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14188                 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));
14189                 if (r->in.credential == NULL) {
14190                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14191                 }
14192                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14193                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14194         }
14195         if (flags & NDR_OUT) {
14196                 if (r->out.return_authenticator == NULL) {
14197                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14198                 }
14199                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14200                 if (r->out.forest_trust_info == NULL) {
14201                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14202                 }
14203                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
14204                 if (*r->out.forest_trust_info) {
14205                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14206                 }
14207                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14208         }
14209         return NDR_ERR_SUCCESS;
14210 }
14211
14212 static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r)
14213 {
14214         uint32_t _ptr_server_name;
14215         uint32_t _ptr_forest_trust_info;
14216         TALLOC_CTX *_mem_save_server_name_0;
14217         TALLOC_CTX *_mem_save_credential_0;
14218         TALLOC_CTX *_mem_save_return_authenticator_0;
14219         TALLOC_CTX *_mem_save_forest_trust_info_0;
14220         TALLOC_CTX *_mem_save_forest_trust_info_1;
14221         if (flags & NDR_IN) {
14222                 ZERO_STRUCT(r->out);
14223
14224                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14225                 if (_ptr_server_name) {
14226                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14227                 } else {
14228                         r->in.server_name = NULL;
14229                 }
14230                 if (r->in.server_name) {
14231                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14232                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14233                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14234                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14235                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14236                                 return 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));
14237                         }
14238                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14239                         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));
14240                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14241                 }
14242                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
14243                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
14244                 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
14245                         return 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));
14246                 }
14247                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
14248                 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));
14249                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14250                         NDR_PULL_ALLOC(ndr, r->in.credential);
14251                 }
14252                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14253                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
14254                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14255                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
14256                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
14257                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14258                 ZERO_STRUCTP(r->out.return_authenticator);
14259                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14260                 ZERO_STRUCTP(r->out.forest_trust_info);
14261         }
14262         if (flags & NDR_OUT) {
14263                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14264                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14265                 }
14266                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14267                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14268                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14269                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14270                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14271                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14272                 }
14273                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14274                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
14275                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
14276                 if (_ptr_forest_trust_info) {
14277                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
14278                 } else {
14279                         *r->out.forest_trust_info = NULL;
14280                 }
14281                 if (*r->out.forest_trust_info) {
14282                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14283                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
14284                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14285                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
14286                 }
14287                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
14288                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14289         }
14290         return NDR_ERR_SUCCESS;
14291 }
14292
14293 _PUBLIC_ void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r)
14294 {
14295         ndr_print_struct(ndr, name, "netr_GetForestTrustInformation");
14296         ndr->depth++;
14297         if (flags & NDR_SET_VALUES) {
14298                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14299         }
14300         if (flags & NDR_IN) {
14301                 ndr_print_struct(ndr, "in", "netr_GetForestTrustInformation");
14302                 ndr->depth++;
14303                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14304                 ndr->depth++;
14305                 if (r->in.server_name) {
14306                         ndr_print_string(ndr, "server_name", r->in.server_name);
14307                 }
14308                 ndr->depth--;
14309                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14310                 ndr->depth++;
14311                 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14312                 ndr->depth--;
14313                 ndr_print_ptr(ndr, "credential", r->in.credential);
14314                 ndr->depth++;
14315                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14316                 ndr->depth--;
14317                 ndr_print_uint32(ndr, "flags", r->in.flags);
14318                 ndr->depth--;
14319         }
14320         if (flags & NDR_OUT) {
14321                 ndr_print_struct(ndr, "out", "netr_GetForestTrustInformation");
14322                 ndr->depth++;
14323                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14324                 ndr->depth++;
14325                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14326                 ndr->depth--;
14327                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
14328                 ndr->depth++;
14329                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
14330                 ndr->depth++;
14331                 if (*r->out.forest_trust_info) {
14332                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
14333                 }
14334                 ndr->depth--;
14335                 ndr->depth--;
14336                 ndr_print_WERROR(ndr, "result", r->out.result);
14337                 ndr->depth--;
14338         }
14339         ndr->depth--;
14340 }
14341
14342 static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
14343 {
14344         if (flags & NDR_IN) {
14345                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14346                 if (r->in.server_name) {
14347                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14348                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14349                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14350                         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));
14351                 }
14352                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
14353                 if (r->in.computer_name) {
14354                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14355                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14356                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14357                         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));
14358                 }
14359                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
14360                 if (r->in.credential) {
14361                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14362                 }
14363                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
14364                 if (r->in.return_authenticator) {
14365                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14366                 }
14367                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS, r->in.logon_level));
14368                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14369                 NDR_CHECK(ndr_push_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14370                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
14371                 if (r->in.flags == NULL) {
14372                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14373                 }
14374                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
14375         }
14376         if (flags & NDR_OUT) {
14377                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
14378                 if (r->out.return_authenticator) {
14379                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14380                 }
14381                 if (r->out.validation == NULL) {
14382                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14383                 }
14384                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14385                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14386                 if (r->out.authoritative == NULL) {
14387                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14388                 }
14389                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
14390                 if (r->out.flags == NULL) {
14391                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14392                 }
14393                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
14394                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
14395         }
14396         return NDR_ERR_SUCCESS;
14397 }
14398
14399 static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
14400 {
14401         uint32_t _ptr_server_name;
14402         uint32_t _ptr_computer_name;
14403         uint32_t _ptr_credential;
14404         uint32_t _ptr_return_authenticator;
14405         TALLOC_CTX *_mem_save_server_name_0;
14406         TALLOC_CTX *_mem_save_computer_name_0;
14407         TALLOC_CTX *_mem_save_credential_0;
14408         TALLOC_CTX *_mem_save_return_authenticator_0;
14409         TALLOC_CTX *_mem_save_validation_0;
14410         TALLOC_CTX *_mem_save_authoritative_0;
14411         TALLOC_CTX *_mem_save_flags_0;
14412         if (flags & NDR_IN) {
14413                 ZERO_STRUCT(r->out);
14414
14415                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14416                 if (_ptr_server_name) {
14417                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14418                 } else {
14419                         r->in.server_name = NULL;
14420                 }
14421                 if (r->in.server_name) {
14422                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14423                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14424                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14425                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14426                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14427                                 return 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));
14428                         }
14429                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14430                         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));
14431                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14432                 }
14433                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
14434                 if (_ptr_computer_name) {
14435                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
14436                 } else {
14437                         r->in.computer_name = NULL;
14438                 }
14439                 if (r->in.computer_name) {
14440                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14441                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
14442                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14443                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14444                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14445                                 return 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));
14446                         }
14447                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14448                         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));
14449                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
14450                 }
14451                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
14452                 if (_ptr_credential) {
14453                         NDR_PULL_ALLOC(ndr, r->in.credential);
14454                 } else {
14455                         r->in.credential = NULL;
14456                 }
14457                 if (r->in.credential) {
14458                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14459                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
14460                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14461                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
14462                 }
14463                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14464                 if (_ptr_return_authenticator) {
14465                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
14466                 } else {
14467                         r->in.return_authenticator = NULL;
14468                 }
14469                 if (r->in.return_authenticator) {
14470                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14471                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
14472                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14473                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14474                 }
14475                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS, &r->in.logon_level));
14476                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14477                 NDR_CHECK(ndr_pull_netr_LogonInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14478                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
14479                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14480                         NDR_PULL_ALLOC(ndr, r->in.flags);
14481                 }
14482                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14483                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
14484                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
14485                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14486                 NDR_PULL_ALLOC(ndr, r->out.validation);
14487                 ZERO_STRUCTP(r->out.validation);
14488                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
14489                 ZERO_STRUCTP(r->out.authoritative);
14490                 NDR_PULL_ALLOC(ndr, r->out.flags);
14491                 *r->out.flags = *r->in.flags;
14492         }
14493         if (flags & NDR_OUT) {
14494                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14495                 if (_ptr_return_authenticator) {
14496                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14497                 } else {
14498                         r->out.return_authenticator = NULL;
14499                 }
14500                 if (r->out.return_authenticator) {
14501                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14502                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
14503                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14504                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14505                 }
14506                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14507                         NDR_PULL_ALLOC(ndr, r->out.validation);
14508                 }
14509                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
14510                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
14511                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14512                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14513                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
14514                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14515                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
14516                 }
14517                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
14518                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
14519                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
14520                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
14521                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14522                         NDR_PULL_ALLOC(ndr, r->out.flags);
14523                 }
14524                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14525                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
14526                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
14527                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14528                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14529         }
14530         return NDR_ERR_SUCCESS;
14531 }
14532
14533 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
14534 {
14535         ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
14536         ndr->depth++;
14537         if (flags & NDR_SET_VALUES) {
14538                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14539         }
14540         if (flags & NDR_IN) {
14541                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
14542                 ndr->depth++;
14543                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14544                 ndr->depth++;
14545                 if (r->in.server_name) {
14546                         ndr_print_string(ndr, "server_name", r->in.server_name);
14547                 }
14548                 ndr->depth--;
14549                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14550                 ndr->depth++;
14551                 if (r->in.computer_name) {
14552                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
14553                 }
14554                 ndr->depth--;
14555                 ndr_print_ptr(ndr, "credential", r->in.credential);
14556                 ndr->depth++;
14557                 if (r->in.credential) {
14558                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14559                 }
14560                 ndr->depth--;
14561                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
14562                 ndr->depth++;
14563                 if (r->in.return_authenticator) {
14564                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
14565                 }
14566                 ndr->depth--;
14567                 ndr_print_netr_LogonLevel(ndr, "logon_level", r->in.logon_level);
14568                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
14569                 ndr_print_netr_LogonInfo(ndr, "logon", &r->in.logon);
14570                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
14571                 ndr_print_ptr(ndr, "flags", r->in.flags);
14572                 ndr->depth++;
14573                 ndr_print_uint32(ndr, "flags", *r->in.flags);
14574                 ndr->depth--;
14575                 ndr->depth--;
14576         }
14577         if (flags & NDR_OUT) {
14578                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
14579                 ndr->depth++;
14580                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14581                 ndr->depth++;
14582                 if (r->out.return_authenticator) {
14583                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14584                 }
14585                 ndr->depth--;
14586                 ndr_print_ptr(ndr, "validation", r->out.validation);
14587                 ndr->depth++;
14588                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
14589                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
14590                 ndr->depth--;
14591                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
14592                 ndr->depth++;
14593                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
14594                 ndr->depth--;
14595                 ndr_print_ptr(ndr, "flags", r->out.flags);
14596                 ndr->depth++;
14597                 ndr_print_uint32(ndr, "flags", *r->out.flags);
14598                 ndr->depth--;
14599                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14600                 ndr->depth--;
14601         }
14602         ndr->depth--;
14603 }
14604
14605 static enum ndr_err_code ndr_push_netr_NETRSERVERGETTRUSTINFO(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14606 {
14607         if (flags & NDR_IN) {
14608         }
14609         if (flags & NDR_OUT) {
14610                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14611         }
14612         return NDR_ERR_SUCCESS;
14613 }
14614
14615 static enum ndr_err_code ndr_pull_netr_NETRSERVERGETTRUSTINFO(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERGETTRUSTINFO *r)
14616 {
14617         if (flags & NDR_IN) {
14618         }
14619         if (flags & NDR_OUT) {
14620                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14621         }
14622         return NDR_ERR_SUCCESS;
14623 }
14624
14625 _PUBLIC_ void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14626 {
14627         ndr_print_struct(ndr, name, "netr_NETRSERVERGETTRUSTINFO");
14628         ndr->depth++;
14629         if (flags & NDR_SET_VALUES) {
14630                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14631         }
14632         if (flags & NDR_IN) {
14633                 ndr_print_struct(ndr, "in", "netr_NETRSERVERGETTRUSTINFO");
14634                 ndr->depth++;
14635                 ndr->depth--;
14636         }
14637         if (flags & NDR_OUT) {
14638                 ndr_print_struct(ndr, "out", "netr_NETRSERVERGETTRUSTINFO");
14639                 ndr->depth++;
14640                 ndr_print_WERROR(ndr, "result", r->out.result);
14641                 ndr->depth--;
14642         }
14643         ndr->depth--;
14644 }
14645
14646 static const struct ndr_interface_call netlogon_calls[] = {
14647         {
14648                 "netr_LogonUasLogon",
14649                 sizeof(struct netr_LogonUasLogon),
14650                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
14651                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
14652                 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
14653                 false,
14654         },
14655         {
14656                 "netr_LogonUasLogoff",
14657                 sizeof(struct netr_LogonUasLogoff),
14658                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
14659                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
14660                 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
14661                 false,
14662         },
14663         {
14664                 "netr_LogonSamLogon",
14665                 sizeof(struct netr_LogonSamLogon),
14666                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
14667                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
14668                 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
14669                 false,
14670         },
14671         {
14672                 "netr_LogonSamLogoff",
14673                 sizeof(struct netr_LogonSamLogoff),
14674                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
14675                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
14676                 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
14677                 false,
14678         },
14679         {
14680                 "netr_ServerReqChallenge",
14681                 sizeof(struct netr_ServerReqChallenge),
14682                 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
14683                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
14684                 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
14685                 false,
14686         },
14687         {
14688                 "netr_ServerAuthenticate",
14689                 sizeof(struct netr_ServerAuthenticate),
14690                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
14691                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
14692                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
14693                 false,
14694         },
14695         {
14696                 "netr_ServerPasswordSet",
14697                 sizeof(struct netr_ServerPasswordSet),
14698                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
14699                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
14700                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
14701                 false,
14702         },
14703         {
14704                 "netr_DatabaseDeltas",
14705                 sizeof(struct netr_DatabaseDeltas),
14706                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
14707                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
14708                 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
14709                 false,
14710         },
14711         {
14712                 "netr_DatabaseSync",
14713                 sizeof(struct netr_DatabaseSync),
14714                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
14715                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
14716                 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
14717                 false,
14718         },
14719         {
14720                 "netr_AccountDeltas",
14721                 sizeof(struct netr_AccountDeltas),
14722                 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
14723                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
14724                 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
14725                 false,
14726         },
14727         {
14728                 "netr_AccountSync",
14729                 sizeof(struct netr_AccountSync),
14730                 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
14731                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
14732                 (ndr_print_function_t) ndr_print_netr_AccountSync,
14733                 false,
14734         },
14735         {
14736                 "netr_GetDcName",
14737                 sizeof(struct netr_GetDcName),
14738                 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
14739                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
14740                 (ndr_print_function_t) ndr_print_netr_GetDcName,
14741                 false,
14742         },
14743         {
14744                 "netr_LogonControl",
14745                 sizeof(struct netr_LogonControl),
14746                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
14747                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
14748                 (ndr_print_function_t) ndr_print_netr_LogonControl,
14749                 false,
14750         },
14751         {
14752                 "netr_GetAnyDCName",
14753                 sizeof(struct netr_GetAnyDCName),
14754                 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
14755                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
14756                 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
14757                 false,
14758         },
14759         {
14760                 "netr_LogonControl2",
14761                 sizeof(struct netr_LogonControl2),
14762                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
14763                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
14764                 (ndr_print_function_t) ndr_print_netr_LogonControl2,
14765                 false,
14766         },
14767         {
14768                 "netr_ServerAuthenticate2",
14769                 sizeof(struct netr_ServerAuthenticate2),
14770                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
14771                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
14772                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
14773                 false,
14774         },
14775         {
14776                 "netr_DatabaseSync2",
14777                 sizeof(struct netr_DatabaseSync2),
14778                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
14779                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
14780                 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
14781                 false,
14782         },
14783         {
14784                 "netr_DatabaseRedo",
14785                 sizeof(struct netr_DatabaseRedo),
14786                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
14787                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
14788                 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
14789                 false,
14790         },
14791         {
14792                 "netr_LogonControl2Ex",
14793                 sizeof(struct netr_LogonControl2Ex),
14794                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
14795                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
14796                 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
14797                 false,
14798         },
14799         {
14800                 "netr_NetrEnumerateTrustedDomains",
14801                 sizeof(struct netr_NetrEnumerateTrustedDomains),
14802                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomains,
14803                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomains,
14804                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomains,
14805                 false,
14806         },
14807         {
14808                 "netr_DsRGetDCName",
14809                 sizeof(struct netr_DsRGetDCName),
14810                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
14811                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
14812                 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
14813                 false,
14814         },
14815         {
14816                 "netr_NETRLOGONDUMMYROUTINE1",
14817                 sizeof(struct netr_NETRLOGONDUMMYROUTINE1),
14818                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONDUMMYROUTINE1,
14819                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONDUMMYROUTINE1,
14820                 (ndr_print_function_t) ndr_print_netr_NETRLOGONDUMMYROUTINE1,
14821                 false,
14822         },
14823         {
14824                 "netr_NETRLOGONSETSERVICEBITS",
14825                 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
14826                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
14827                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
14828                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
14829                 false,
14830         },
14831         {
14832                 "netr_LogonGetTrustRid",
14833                 sizeof(struct netr_LogonGetTrustRid),
14834                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetTrustRid,
14835                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetTrustRid,
14836                 (ndr_print_function_t) ndr_print_netr_LogonGetTrustRid,
14837                 false,
14838         },
14839         {
14840                 "netr_NETRLOGONCOMPUTESERVERDIGEST",
14841                 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
14842                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
14843                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
14844                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
14845                 false,
14846         },
14847         {
14848                 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
14849                 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
14850                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14851                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14852                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14853                 false,
14854         },
14855         {
14856                 "netr_ServerAuthenticate3",
14857                 sizeof(struct netr_ServerAuthenticate3),
14858                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
14859                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
14860                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
14861                 false,
14862         },
14863         {
14864                 "netr_DsRGetDCNameEx",
14865                 sizeof(struct netr_DsRGetDCNameEx),
14866                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
14867                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
14868                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
14869                 false,
14870         },
14871         {
14872                 "netr_DsRGetSiteName",
14873                 sizeof(struct netr_DsRGetSiteName),
14874                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
14875                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
14876                 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
14877                 false,
14878         },
14879         {
14880                 "netr_LogonGetDomainInfo",
14881                 sizeof(struct netr_LogonGetDomainInfo),
14882                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
14883                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
14884                 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
14885                 false,
14886         },
14887         {
14888                 "netr_ServerPasswordSet2",
14889                 sizeof(struct netr_ServerPasswordSet2),
14890                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
14891                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
14892                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
14893                 false,
14894         },
14895         {
14896                 "netr_ServerPasswordGet",
14897                 sizeof(struct netr_ServerPasswordGet),
14898                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordGet,
14899                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordGet,
14900                 (ndr_print_function_t) ndr_print_netr_ServerPasswordGet,
14901                 false,
14902         },
14903         {
14904                 "netr_NETRLOGONSENDTOSAM",
14905                 sizeof(struct netr_NETRLOGONSENDTOSAM),
14906                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
14907                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
14908                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
14909                 false,
14910         },
14911         {
14912                 "netr_DsRAddressToSitenamesW",
14913                 sizeof(struct netr_DsRAddressToSitenamesW),
14914                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesW,
14915                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesW,
14916                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesW,
14917                 false,
14918         },
14919         {
14920                 "netr_DsRGetDCNameEx2",
14921                 sizeof(struct netr_DsRGetDCNameEx2),
14922                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
14923                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
14924                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
14925                 false,
14926         },
14927         {
14928                 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
14929                 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
14930                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14931                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14932                 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14933                 false,
14934         },
14935         {
14936                 "netr_NetrEnumerateTrustedDomainsEx",
14937                 sizeof(struct netr_NetrEnumerateTrustedDomainsEx),
14938                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomainsEx,
14939                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomainsEx,
14940                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomainsEx,
14941                 false,
14942         },
14943         {
14944                 "netr_DsRAddressToSitenamesExW",
14945                 sizeof(struct netr_DsRAddressToSitenamesExW),
14946                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesExW,
14947                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesExW,
14948                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesExW,
14949                 false,
14950         },
14951         {
14952                 "netr_DsrGetDcSiteCoverageW",
14953                 sizeof(struct netr_DsrGetDcSiteCoverageW),
14954                 (ndr_push_flags_fn_t) ndr_push_netr_DsrGetDcSiteCoverageW,
14955                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrGetDcSiteCoverageW,
14956                 (ndr_print_function_t) ndr_print_netr_DsrGetDcSiteCoverageW,
14957                 false,
14958         },
14959         {
14960                 "netr_LogonSamLogonEx",
14961                 sizeof(struct netr_LogonSamLogonEx),
14962                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
14963                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
14964                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
14965                 false,
14966         },
14967         {
14968                 "netr_DsrEnumerateDomainTrusts",
14969                 sizeof(struct netr_DsrEnumerateDomainTrusts),
14970                 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
14971                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
14972                 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
14973                 false,
14974         },
14975         {
14976                 "netr_DsrDeregisterDNSHostRecords",
14977                 sizeof(struct netr_DsrDeregisterDNSHostRecords),
14978                 (ndr_push_flags_fn_t) ndr_push_netr_DsrDeregisterDNSHostRecords,
14979                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrDeregisterDNSHostRecords,
14980                 (ndr_print_function_t) ndr_print_netr_DsrDeregisterDNSHostRecords,
14981                 false,
14982         },
14983         {
14984                 "netr_ServerTrustPasswordsGet",
14985                 sizeof(struct netr_ServerTrustPasswordsGet),
14986                 (ndr_push_flags_fn_t) ndr_push_netr_ServerTrustPasswordsGet,
14987                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerTrustPasswordsGet,
14988                 (ndr_print_function_t) ndr_print_netr_ServerTrustPasswordsGet,
14989                 false,
14990         },
14991         {
14992                 "netr_DsRGetForestTrustInformation",
14993                 sizeof(struct netr_DsRGetForestTrustInformation),
14994                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetForestTrustInformation,
14995                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetForestTrustInformation,
14996                 (ndr_print_function_t) ndr_print_netr_DsRGetForestTrustInformation,
14997                 false,
14998         },
14999         {
15000                 "netr_GetForestTrustInformation",
15001                 sizeof(struct netr_GetForestTrustInformation),
15002                 (ndr_push_flags_fn_t) ndr_push_netr_GetForestTrustInformation,
15003                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetForestTrustInformation,
15004                 (ndr_print_function_t) ndr_print_netr_GetForestTrustInformation,
15005                 false,
15006         },
15007         {
15008                 "netr_LogonSamLogonWithFlags",
15009                 sizeof(struct netr_LogonSamLogonWithFlags),
15010                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
15011                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
15012                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
15013                 false,
15014         },
15015         {
15016                 "netr_NETRSERVERGETTRUSTINFO",
15017                 sizeof(struct netr_NETRSERVERGETTRUSTINFO),
15018                 (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERGETTRUSTINFO,
15019                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERGETTRUSTINFO,
15020                 (ndr_print_function_t) ndr_print_netr_NETRSERVERGETTRUSTINFO,
15021                 false,
15022         },
15023         { NULL, 0, NULL, NULL, NULL, false }
15024 };
15025
15026 static const char * const netlogon_endpoint_strings[] = {
15027         "ncacn_np:[\\pipe\\netlogon]", 
15028         "ncacn_ip_tcp:", 
15029         "ncalrpc:", 
15030 };
15031
15032 static const struct ndr_interface_string_array netlogon_endpoints = {
15033         .count  = 3,
15034         .names  = netlogon_endpoint_strings
15035 };
15036
15037 static const char * const netlogon_authservice_strings[] = {
15038         "host", 
15039 };
15040
15041 static const struct ndr_interface_string_array netlogon_authservices = {
15042         .count  = 3,
15043         .names  = netlogon_authservice_strings
15044 };
15045
15046
15047 const struct ndr_interface_table ndr_table_netlogon = {
15048         .name           = "netlogon",
15049         .syntax_id      = {
15050                 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
15051                 NDR_NETLOGON_VERSION
15052         },
15053         .helpstring     = NDR_NETLOGON_HELPSTRING,
15054         .num_calls      = 47,
15055         .calls          = netlogon_calls,
15056         .endpoints      = &netlogon_endpoints,
15057         .authservices   = &netlogon_authservices
15058 };
15059