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 static enum ndr_err_code ndr_push_netr_AcctLockStr(struct ndr_push *ndr, int ndr_flags, const struct netr_AcctLockStr *r)
238 {
239         uint32_t cntr_bindata_1;
240         if (ndr_flags & NDR_SCALARS) {
241                 NDR_CHECK(ndr_push_align(ndr, 4));
242                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
243                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
244                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->bindata));
245         }
246         if (ndr_flags & NDR_BUFFERS) {
247                 if (r->bindata) {
248                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
249                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
250                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
251                         for (cntr_bindata_1 = 0; cntr_bindata_1 < r->length / 2; cntr_bindata_1++) {
252                                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bindata[cntr_bindata_1]));
253                         }
254                 }
255         }
256         return NDR_ERR_SUCCESS;
257 }
258
259 static enum ndr_err_code ndr_pull_netr_AcctLockStr(struct ndr_pull *ndr, int ndr_flags, struct netr_AcctLockStr *r)
260 {
261         uint32_t _ptr_bindata;
262         uint32_t cntr_bindata_1;
263         TALLOC_CTX *_mem_save_bindata_0;
264         TALLOC_CTX *_mem_save_bindata_1;
265         if (ndr_flags & NDR_SCALARS) {
266                 NDR_CHECK(ndr_pull_align(ndr, 4));
267                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
268                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
269                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bindata));
270                 if (_ptr_bindata) {
271                         NDR_PULL_ALLOC(ndr, r->bindata);
272                 } else {
273                         r->bindata = NULL;
274                 }
275         }
276         if (ndr_flags & NDR_BUFFERS) {
277                 if (r->bindata) {
278                         _mem_save_bindata_0 = NDR_PULL_GET_MEM_CTX(ndr);
279                         NDR_PULL_SET_MEM_CTX(ndr, r->bindata, 0);
280                         NDR_CHECK(ndr_pull_array_size(ndr, &r->bindata));
281                         NDR_CHECK(ndr_pull_array_length(ndr, &r->bindata));
282                         if (ndr_get_array_length(ndr, &r->bindata) > ndr_get_array_size(ndr, &r->bindata)) {
283                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->bindata), ndr_get_array_length(ndr, &r->bindata));
284                         }
285                         NDR_PULL_ALLOC_N(ndr, r->bindata, ndr_get_array_size(ndr, &r->bindata));
286                         _mem_save_bindata_1 = NDR_PULL_GET_MEM_CTX(ndr);
287                         NDR_PULL_SET_MEM_CTX(ndr, r->bindata, 0);
288                         for (cntr_bindata_1 = 0; cntr_bindata_1 < r->length / 2; cntr_bindata_1++) {
289                                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bindata[cntr_bindata_1]));
290                         }
291                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bindata_1, 0);
292                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bindata_0, 0);
293                 }
294                 if (r->bindata) {
295                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->bindata, r->size / 2));
296                 }
297                 if (r->bindata) {
298                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->bindata, r->length / 2));
299                 }
300         }
301         return NDR_ERR_SUCCESS;
302 }
303
304 _PUBLIC_ void ndr_print_netr_AcctLockStr(struct ndr_print *ndr, const char *name, const struct netr_AcctLockStr *r)
305 {
306         uint32_t cntr_bindata_1;
307         ndr_print_struct(ndr, name, "netr_AcctLockStr");
308         ndr->depth++;
309         ndr_print_uint16(ndr, "size", r->size);
310         ndr_print_uint16(ndr, "length", r->length);
311         ndr_print_ptr(ndr, "bindata", r->bindata);
312         ndr->depth++;
313         if (r->bindata) {
314                 ndr->print(ndr, "%s: ARRAY(%d)", "bindata", r->length / 2);
315                 ndr->depth++;
316                 for (cntr_bindata_1=0;cntr_bindata_1<r->length / 2;cntr_bindata_1++) {
317                         char *idx_1=NULL;
318                         asprintf(&idx_1, "[%d]", cntr_bindata_1);
319                         if (idx_1) {
320                                 ndr_print_uint16(ndr, "bindata", r->bindata[cntr_bindata_1]);
321                                 free(idx_1);
322                         }
323                 }
324                 ndr->depth--;
325         }
326         ndr->depth--;
327         ndr->depth--;
328 }
329
330 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonParameterControl(struct ndr_push *ndr, int ndr_flags, uint32_t r)
331 {
332         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
333         return NDR_ERR_SUCCESS;
334 }
335
336 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonParameterControl(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
337 {
338         uint32_t v;
339         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
340         *r = v;
341         return NDR_ERR_SUCCESS;
342 }
343
344 _PUBLIC_ void ndr_print_netr_LogonParameterControl(struct ndr_print *ndr, const char *name, uint32_t r)
345 {
346         ndr_print_uint32(ndr, name, r);
347         ndr->depth++;
348         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED, r);
349         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS, r);
350         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS, r);
351         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT, r);
352         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH, r);
353         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT, r);
354         ndr->depth--;
355 }
356
357 static enum ndr_err_code ndr_push_netr_IdentityInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_IdentityInfo *r)
358 {
359         if (ndr_flags & NDR_SCALARS) {
360                 NDR_CHECK(ndr_push_align(ndr, 4));
361                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
362                 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr, NDR_SCALARS, r->parameter_control));
363                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_low));
364                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_high));
365                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
366                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstation));
367         }
368         if (ndr_flags & NDR_BUFFERS) {
369                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
370                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
371                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
372         }
373         return NDR_ERR_SUCCESS;
374 }
375
376 static enum ndr_err_code ndr_pull_netr_IdentityInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_IdentityInfo *r)
377 {
378         if (ndr_flags & NDR_SCALARS) {
379                 NDR_CHECK(ndr_pull_align(ndr, 4));
380                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
381                 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr, NDR_SCALARS, &r->parameter_control));
382                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_low));
383                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_high));
384                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
385                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstation));
386         }
387         if (ndr_flags & NDR_BUFFERS) {
388                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
389                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
390                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
391         }
392         return NDR_ERR_SUCCESS;
393 }
394
395 _PUBLIC_ void ndr_print_netr_IdentityInfo(struct ndr_print *ndr, const char *name, const struct netr_IdentityInfo *r)
396 {
397         ndr_print_struct(ndr, name, "netr_IdentityInfo");
398         ndr->depth++;
399         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
400         ndr_print_netr_LogonParameterControl(ndr, "parameter_control", r->parameter_control);
401         ndr_print_uint32(ndr, "logon_id_low", r->logon_id_low);
402         ndr_print_uint32(ndr, "logon_id_high", r->logon_id_high);
403         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
404         ndr_print_lsa_String(ndr, "workstation", &r->workstation);
405         ndr->depth--;
406 }
407
408 static enum ndr_err_code ndr_push_netr_PasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordInfo *r)
409 {
410         if (ndr_flags & NDR_SCALARS) {
411                 NDR_CHECK(ndr_push_align(ndr, 4));
412                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
413                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
414                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
415         }
416         if (ndr_flags & NDR_BUFFERS) {
417                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
418                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
419                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
420         }
421         return NDR_ERR_SUCCESS;
422 }
423
424 static enum ndr_err_code ndr_pull_netr_PasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordInfo *r)
425 {
426         if (ndr_flags & NDR_SCALARS) {
427                 NDR_CHECK(ndr_pull_align(ndr, 4));
428                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
429                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
430                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
431         }
432         if (ndr_flags & NDR_BUFFERS) {
433                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
434                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
435                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
436         }
437         return NDR_ERR_SUCCESS;
438 }
439
440 _PUBLIC_ void ndr_print_netr_PasswordInfo(struct ndr_print *ndr, const char *name, const struct netr_PasswordInfo *r)
441 {
442         ndr_print_struct(ndr, name, "netr_PasswordInfo");
443         ndr->depth++;
444         ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
445         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
446         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
447         ndr->depth--;
448 }
449
450 static enum ndr_err_code ndr_push_netr_ChallengeResponse(struct ndr_push *ndr, int ndr_flags, const struct netr_ChallengeResponse *r)
451 {
452         {
453                 uint32_t _flags_save_STRUCT = ndr->flags;
454                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
455                 if (ndr_flags & NDR_SCALARS) {
456                         NDR_CHECK(ndr_push_align(ndr, 4));
457                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
458                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
459                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
460                 }
461                 if (ndr_flags & NDR_BUFFERS) {
462                         if (r->data) {
463                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
464                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
465                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
466                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
467                         }
468                 }
469                 ndr->flags = _flags_save_STRUCT;
470         }
471         return NDR_ERR_SUCCESS;
472 }
473
474 static enum ndr_err_code ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, int ndr_flags, struct netr_ChallengeResponse *r)
475 {
476         uint32_t _ptr_data;
477         TALLOC_CTX *_mem_save_data_0;
478         {
479                 uint32_t _flags_save_STRUCT = ndr->flags;
480                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
481                 if (ndr_flags & NDR_SCALARS) {
482                         NDR_CHECK(ndr_pull_align(ndr, 4));
483                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
484                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
485                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
486                         if (_ptr_data) {
487                                 NDR_PULL_ALLOC(ndr, r->data);
488                         } else {
489                                 r->data = NULL;
490                         }
491                 }
492                 if (ndr_flags & NDR_BUFFERS) {
493                         if (r->data) {
494                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
495                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
496                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
497                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
498                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
499                                         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));
500                                 }
501                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
502                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
503                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
504                         }
505                         if (r->data) {
506                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
507                         }
508                         if (r->data) {
509                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length));
510                         }
511                 }
512                 ndr->flags = _flags_save_STRUCT;
513         }
514         return NDR_ERR_SUCCESS;
515 }
516
517 _PUBLIC_ void ndr_print_netr_ChallengeResponse(struct ndr_print *ndr, const char *name, const struct netr_ChallengeResponse *r)
518 {
519         ndr_print_struct(ndr, name, "netr_ChallengeResponse");
520         {
521                 uint32_t _flags_save_STRUCT = ndr->flags;
522                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
523                 ndr->depth++;
524                 ndr_print_uint16(ndr, "length", r->length);
525                 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
526                 ndr_print_ptr(ndr, "data", r->data);
527                 ndr->depth++;
528                 if (r->data) {
529                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
530                 }
531                 ndr->depth--;
532                 ndr->depth--;
533                 ndr->flags = _flags_save_STRUCT;
534         }
535 }
536
537 static enum ndr_err_code ndr_push_netr_NetworkInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_NetworkInfo *r)
538 {
539         {
540                 uint32_t _flags_save_STRUCT = ndr->flags;
541                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
542                 if (ndr_flags & NDR_SCALARS) {
543                         NDR_CHECK(ndr_push_align(ndr, 4));
544                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
545                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
546                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
547                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
548                 }
549                 if (ndr_flags & NDR_BUFFERS) {
550                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
551                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
552                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
553                 }
554                 ndr->flags = _flags_save_STRUCT;
555         }
556         return NDR_ERR_SUCCESS;
557 }
558
559 static enum ndr_err_code ndr_pull_netr_NetworkInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_NetworkInfo *r)
560 {
561         {
562                 uint32_t _flags_save_STRUCT = ndr->flags;
563                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
564                 if (ndr_flags & NDR_SCALARS) {
565                         NDR_CHECK(ndr_pull_align(ndr, 4));
566                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
567                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
568                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
569                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
570                 }
571                 if (ndr_flags & NDR_BUFFERS) {
572                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
573                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
574                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
575                 }
576                 ndr->flags = _flags_save_STRUCT;
577         }
578         return NDR_ERR_SUCCESS;
579 }
580
581 _PUBLIC_ void ndr_print_netr_NetworkInfo(struct ndr_print *ndr, const char *name, const struct netr_NetworkInfo *r)
582 {
583         ndr_print_struct(ndr, name, "netr_NetworkInfo");
584         {
585                 uint32_t _flags_save_STRUCT = ndr->flags;
586                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
587                 ndr->depth++;
588                 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
589                 ndr_print_array_uint8(ndr, "challenge", r->challenge, 8);
590                 ndr_print_netr_ChallengeResponse(ndr, "nt", &r->nt);
591                 ndr_print_netr_ChallengeResponse(ndr, "lm", &r->lm);
592                 ndr->depth--;
593                 ndr->flags = _flags_save_STRUCT;
594         }
595 }
596
597 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonLevel(struct ndr_push *ndr, int ndr_flags, const union netr_LogonLevel *r)
598 {
599         if (ndr_flags & NDR_SCALARS) {
600                 int level = ndr_push_get_switch_value(ndr, r);
601                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
602                 switch (level) {
603                         case 1:
604                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
605                         break;
606
607                         case 2:
608                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
609                         break;
610
611                         case 3:
612                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
613                         break;
614
615                         case 5:
616                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
617                         break;
618
619                         case 6:
620                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
621                         break;
622
623                         default:
624                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
625                 }
626         }
627         if (ndr_flags & NDR_BUFFERS) {
628                 int level = ndr_push_get_switch_value(ndr, r);
629                 switch (level) {
630                         case 1:
631                                 if (r->password) {
632                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
633                                 }
634                         break;
635
636                         case 2:
637                                 if (r->network) {
638                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
639                                 }
640                         break;
641
642                         case 3:
643                                 if (r->password) {
644                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
645                                 }
646                         break;
647
648                         case 5:
649                                 if (r->password) {
650                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
651                                 }
652                         break;
653
654                         case 6:
655                                 if (r->network) {
656                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
657                                 }
658                         break;
659
660                         default:
661                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
662                 }
663         }
664         return NDR_ERR_SUCCESS;
665 }
666
667 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonLevel(struct ndr_pull *ndr, int ndr_flags, union netr_LogonLevel *r)
668 {
669         int level;
670         uint16_t _level;
671         TALLOC_CTX *_mem_save_password_0;
672         TALLOC_CTX *_mem_save_network_0;
673         level = ndr_pull_get_switch_value(ndr, r);
674         if (ndr_flags & NDR_SCALARS) {
675                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
676                 if (_level != level) {
677                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
678                 }
679                 switch (level) {
680                         case 1: {
681                                 uint32_t _ptr_password;
682                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
683                                 if (_ptr_password) {
684                                         NDR_PULL_ALLOC(ndr, r->password);
685                                 } else {
686                                         r->password = NULL;
687                                 }
688                         break; }
689
690                         case 2: {
691                                 uint32_t _ptr_network;
692                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
693                                 if (_ptr_network) {
694                                         NDR_PULL_ALLOC(ndr, r->network);
695                                 } else {
696                                         r->network = NULL;
697                                 }
698                         break; }
699
700                         case 3: {
701                                 uint32_t _ptr_password;
702                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
703                                 if (_ptr_password) {
704                                         NDR_PULL_ALLOC(ndr, r->password);
705                                 } else {
706                                         r->password = NULL;
707                                 }
708                         break; }
709
710                         case 5: {
711                                 uint32_t _ptr_password;
712                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
713                                 if (_ptr_password) {
714                                         NDR_PULL_ALLOC(ndr, r->password);
715                                 } else {
716                                         r->password = NULL;
717                                 }
718                         break; }
719
720                         case 6: {
721                                 uint32_t _ptr_network;
722                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
723                                 if (_ptr_network) {
724                                         NDR_PULL_ALLOC(ndr, r->network);
725                                 } else {
726                                         r->network = NULL;
727                                 }
728                         break; }
729
730                         default:
731                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
732                 }
733         }
734         if (ndr_flags & NDR_BUFFERS) {
735                 switch (level) {
736                         case 1:
737                                 if (r->password) {
738                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
739                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
740                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
741                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
742                                 }
743                         break;
744
745                         case 2:
746                                 if (r->network) {
747                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
748                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
749                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
750                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
751                                 }
752                         break;
753
754                         case 3:
755                                 if (r->password) {
756                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
757                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
758                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
759                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
760                                 }
761                         break;
762
763                         case 5:
764                                 if (r->password) {
765                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
766                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
767                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
768                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
769                                 }
770                         break;
771
772                         case 6:
773                                 if (r->network) {
774                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
775                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
776                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
777                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
778                                 }
779                         break;
780
781                         default:
782                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
783                 }
784         }
785         return NDR_ERR_SUCCESS;
786 }
787
788 _PUBLIC_ void ndr_print_netr_LogonLevel(struct ndr_print *ndr, const char *name, const union netr_LogonLevel *r)
789 {
790         int level;
791         level = ndr_print_get_switch_value(ndr, r);
792         ndr_print_union(ndr, name, level, "netr_LogonLevel");
793         switch (level) {
794                 case 1:
795                         ndr_print_ptr(ndr, "password", r->password);
796                         ndr->depth++;
797                         if (r->password) {
798                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
799                         }
800                         ndr->depth--;
801                 break;
802
803                 case 2:
804                         ndr_print_ptr(ndr, "network", r->network);
805                         ndr->depth++;
806                         if (r->network) {
807                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
808                         }
809                         ndr->depth--;
810                 break;
811
812                 case 3:
813                         ndr_print_ptr(ndr, "password", r->password);
814                         ndr->depth++;
815                         if (r->password) {
816                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
817                         }
818                         ndr->depth--;
819                 break;
820
821                 case 5:
822                         ndr_print_ptr(ndr, "password", r->password);
823                         ndr->depth++;
824                         if (r->password) {
825                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
826                         }
827                         ndr->depth--;
828                 break;
829
830                 case 6:
831                         ndr_print_ptr(ndr, "network", r->network);
832                         ndr->depth++;
833                         if (r->network) {
834                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
835                         }
836                         ndr->depth--;
837                 break;
838
839                 default:
840                         ndr_print_bad_level(ndr, name, level);
841         }
842 }
843
844 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_UserSessionKey *r)
845 {
846         {
847                 uint32_t _flags_save_STRUCT = ndr->flags;
848                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
849                 if (ndr_flags & NDR_SCALARS) {
850                         NDR_CHECK(ndr_push_align(ndr, 1));
851                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 16));
852                 }
853                 if (ndr_flags & NDR_BUFFERS) {
854                 }
855                 ndr->flags = _flags_save_STRUCT;
856         }
857         return NDR_ERR_SUCCESS;
858 }
859
860 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r)
861 {
862         {
863                 uint32_t _flags_save_STRUCT = ndr->flags;
864                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
865                 if (ndr_flags & NDR_SCALARS) {
866                         NDR_CHECK(ndr_pull_align(ndr, 1));
867                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16));
868                 }
869                 if (ndr_flags & NDR_BUFFERS) {
870                 }
871                 ndr->flags = _flags_save_STRUCT;
872         }
873         return NDR_ERR_SUCCESS;
874 }
875
876 _PUBLIC_ void ndr_print_netr_UserSessionKey(struct ndr_print *ndr, const char *name, const struct netr_UserSessionKey *r)
877 {
878         ndr_print_struct(ndr, name, "netr_UserSessionKey");
879         {
880                 uint32_t _flags_save_STRUCT = ndr->flags;
881                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
882                 ndr->depth++;
883                 ndr_print_array_uint8(ndr, "key", r->key, 16);
884                 ndr->depth--;
885                 ndr->flags = _flags_save_STRUCT;
886         }
887 }
888
889 _PUBLIC_ enum ndr_err_code ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_LMSessionKey *r)
890 {
891         {
892                 uint32_t _flags_save_STRUCT = ndr->flags;
893                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
894                 if (ndr_flags & NDR_SCALARS) {
895                         NDR_CHECK(ndr_push_align(ndr, 1));
896                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 8));
897                 }
898                 if (ndr_flags & NDR_BUFFERS) {
899                 }
900                 ndr->flags = _flags_save_STRUCT;
901         }
902         return NDR_ERR_SUCCESS;
903 }
904
905 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r)
906 {
907         {
908                 uint32_t _flags_save_STRUCT = ndr->flags;
909                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
910                 if (ndr_flags & NDR_SCALARS) {
911                         NDR_CHECK(ndr_pull_align(ndr, 1));
912                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8));
913                 }
914                 if (ndr_flags & NDR_BUFFERS) {
915                 }
916                 ndr->flags = _flags_save_STRUCT;
917         }
918         return NDR_ERR_SUCCESS;
919 }
920
921 _PUBLIC_ void ndr_print_netr_LMSessionKey(struct ndr_print *ndr, const char *name, const struct netr_LMSessionKey *r)
922 {
923         ndr_print_struct(ndr, name, "netr_LMSessionKey");
924         {
925                 uint32_t _flags_save_STRUCT = ndr->flags;
926                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
927                 ndr->depth++;
928                 ndr_print_array_uint8(ndr, "key", r->key, 8);
929                 ndr->depth--;
930                 ndr->flags = _flags_save_STRUCT;
931         }
932 }
933
934 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
935 {
936         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
937         return NDR_ERR_SUCCESS;
938 }
939
940 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
941 {
942         uint32_t v;
943         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
944         *r = v;
945         return NDR_ERR_SUCCESS;
946 }
947
948 _PUBLIC_ void ndr_print_netr_UserFlags(struct ndr_print *ndr, const char *name, uint32_t r)
949 {
950         ndr_print_uint32(ndr, name, r);
951         ndr->depth++;
952         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST, r);
953         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION, r);
954         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT, r);
955         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD, r);
956         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS, r);
957         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY, r);
958         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT, r);
959         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED, r);
960         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS, r);
961         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED, r);
962         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON, r);
963         ndr->depth--;
964 }
965
966 static enum ndr_err_code ndr_push_netr_SamBaseInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_SamBaseInfo *r)
967 {
968         uint32_t cntr_unknown_0;
969         if (ndr_flags & NDR_SCALARS) {
970                 NDR_CHECK(ndr_push_align(ndr, 4));
971                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
972                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
973                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
974                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
975                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
976                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
977                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
978                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
979                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
980                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
981                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
982                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
983                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
984                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
985                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
986                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
987                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
988                 NDR_CHECK(ndr_push_netr_UserFlags(ndr, NDR_SCALARS, r->user_flags));
989                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
990                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
991                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
992                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
993                 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
994                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
995                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
996                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
997                 }
998         }
999         if (ndr_flags & NDR_BUFFERS) {
1000                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1001                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1002                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1003                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1004                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1005                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1006                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1007                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1008                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1009                 if (r->domain_sid) {
1010                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1011                 }
1012         }
1013         return NDR_ERR_SUCCESS;
1014 }
1015
1016 static enum ndr_err_code ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_SamBaseInfo *r)
1017 {
1018         uint32_t _ptr_domain_sid;
1019         TALLOC_CTX *_mem_save_domain_sid_0;
1020         uint32_t cntr_unknown_0;
1021         if (ndr_flags & NDR_SCALARS) {
1022                 NDR_CHECK(ndr_pull_align(ndr, 4));
1023                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
1024                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
1025                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
1026                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
1027                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
1028                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
1029                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1030                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1031                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
1032                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
1033                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
1034                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
1035                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
1036                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
1037                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
1038                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
1039                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1040                 NDR_CHECK(ndr_pull_netr_UserFlags(ndr, NDR_SCALARS, &r->user_flags));
1041                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
1042                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
1043                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
1044                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
1045                 if (_ptr_domain_sid) {
1046                         NDR_PULL_ALLOC(ndr, r->domain_sid);
1047                 } else {
1048                         r->domain_sid = NULL;
1049                 }
1050                 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
1051                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
1052                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1053                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
1054                 }
1055         }
1056         if (ndr_flags & NDR_BUFFERS) {
1057                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1058                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1059                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1060                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1061                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1062                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1063                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1064                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1065                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1066                 if (r->domain_sid) {
1067                         _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1068                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1069                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1070                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1071                 }
1072         }
1073         return NDR_ERR_SUCCESS;
1074 }
1075
1076 _PUBLIC_ void ndr_print_netr_SamBaseInfo(struct ndr_print *ndr, const char *name, const struct netr_SamBaseInfo *r)
1077 {
1078         uint32_t cntr_unknown_0;
1079         ndr_print_struct(ndr, name, "netr_SamBaseInfo");
1080         ndr->depth++;
1081         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
1082         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
1083         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
1084         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
1085         ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
1086         ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
1087         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
1088         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
1089         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
1090         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
1091         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
1092         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
1093         ndr_print_uint16(ndr, "logon_count", r->logon_count);
1094         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
1095         ndr_print_uint32(ndr, "rid", r->rid);
1096         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
1097         ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
1098         ndr_print_netr_UserFlags(ndr, "user_flags", r->user_flags);
1099         ndr_print_netr_UserSessionKey(ndr, "key", &r->key);
1100         ndr_print_lsa_StringLarge(ndr, "logon_server", &r->logon_server);
1101         ndr_print_lsa_StringLarge(ndr, "domain", &r->domain);
1102         ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
1103         ndr->depth++;
1104         if (r->domain_sid) {
1105                 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
1106         }
1107         ndr->depth--;
1108         ndr_print_netr_LMSessionKey(ndr, "LMSessKey", &r->LMSessKey);
1109         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
1110         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 7);
1111         ndr->depth++;
1112         for (cntr_unknown_0=0;cntr_unknown_0<7;cntr_unknown_0++) {
1113                 char *idx_0=NULL;
1114                 asprintf(&idx_0, "[%d]", cntr_unknown_0);
1115                 if (idx_0) {
1116                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
1117                         free(idx_0);
1118                 }
1119         }
1120         ndr->depth--;
1121         ndr->depth--;
1122 }
1123
1124 static enum ndr_err_code ndr_push_netr_SamInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo2 *r)
1125 {
1126         if (ndr_flags & NDR_SCALARS) {
1127                 NDR_CHECK(ndr_push_align(ndr, 4));
1128                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1129         }
1130         if (ndr_flags & NDR_BUFFERS) {
1131                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1132         }
1133         return NDR_ERR_SUCCESS;
1134 }
1135
1136 static enum ndr_err_code ndr_pull_netr_SamInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo2 *r)
1137 {
1138         if (ndr_flags & NDR_SCALARS) {
1139                 NDR_CHECK(ndr_pull_align(ndr, 4));
1140                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1141         }
1142         if (ndr_flags & NDR_BUFFERS) {
1143                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1144         }
1145         return NDR_ERR_SUCCESS;
1146 }
1147
1148 _PUBLIC_ void ndr_print_netr_SamInfo2(struct ndr_print *ndr, const char *name, const struct netr_SamInfo2 *r)
1149 {
1150         ndr_print_struct(ndr, name, "netr_SamInfo2");
1151         ndr->depth++;
1152         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1153         ndr->depth--;
1154 }
1155
1156 static enum ndr_err_code ndr_push_netr_SidAttr(struct ndr_push *ndr, int ndr_flags, const struct netr_SidAttr *r)
1157 {
1158         if (ndr_flags & NDR_SCALARS) {
1159                 NDR_CHECK(ndr_push_align(ndr, 4));
1160                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
1161                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
1162         }
1163         if (ndr_flags & NDR_BUFFERS) {
1164                 if (r->sid) {
1165                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1166                 }
1167         }
1168         return NDR_ERR_SUCCESS;
1169 }
1170
1171 static enum ndr_err_code ndr_pull_netr_SidAttr(struct ndr_pull *ndr, int ndr_flags, struct netr_SidAttr *r)
1172 {
1173         uint32_t _ptr_sid;
1174         TALLOC_CTX *_mem_save_sid_0;
1175         if (ndr_flags & NDR_SCALARS) {
1176                 NDR_CHECK(ndr_pull_align(ndr, 4));
1177                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
1178                 if (_ptr_sid) {
1179                         NDR_PULL_ALLOC(ndr, r->sid);
1180                 } else {
1181                         r->sid = NULL;
1182                 }
1183                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
1184         }
1185         if (ndr_flags & NDR_BUFFERS) {
1186                 if (r->sid) {
1187                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1188                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
1189                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1190                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
1191                 }
1192         }
1193         return NDR_ERR_SUCCESS;
1194 }
1195
1196 _PUBLIC_ void ndr_print_netr_SidAttr(struct ndr_print *ndr, const char *name, const struct netr_SidAttr *r)
1197 {
1198         ndr_print_struct(ndr, name, "netr_SidAttr");
1199         ndr->depth++;
1200         ndr_print_ptr(ndr, "sid", r->sid);
1201         ndr->depth++;
1202         if (r->sid) {
1203                 ndr_print_dom_sid2(ndr, "sid", r->sid);
1204         }
1205         ndr->depth--;
1206         ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
1207         ndr->depth--;
1208 }
1209
1210 _PUBLIC_ enum ndr_err_code ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo3 *r)
1211 {
1212         uint32_t cntr_sids_1;
1213         if (ndr_flags & NDR_SCALARS) {
1214                 NDR_CHECK(ndr_push_align(ndr, 4));
1215                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1216                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1217                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1218         }
1219         if (ndr_flags & NDR_BUFFERS) {
1220                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1221                 if (r->sids) {
1222                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1223                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1224                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1225                         }
1226                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1227                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1228                         }
1229                 }
1230         }
1231         return NDR_ERR_SUCCESS;
1232 }
1233
1234 _PUBLIC_ enum ndr_err_code ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r)
1235 {
1236         uint32_t _ptr_sids;
1237         uint32_t cntr_sids_1;
1238         TALLOC_CTX *_mem_save_sids_0;
1239         TALLOC_CTX *_mem_save_sids_1;
1240         if (ndr_flags & NDR_SCALARS) {
1241                 NDR_CHECK(ndr_pull_align(ndr, 4));
1242                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1243                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1244                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1245                 if (_ptr_sids) {
1246                         NDR_PULL_ALLOC(ndr, r->sids);
1247                 } else {
1248                         r->sids = NULL;
1249                 }
1250         }
1251         if (ndr_flags & NDR_BUFFERS) {
1252                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1253                 if (r->sids) {
1254                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1255                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1256                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1257                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1258                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1259                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1260                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1261                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1262                         }
1263                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1264                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1265                         }
1266                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1267                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1268                 }
1269                 if (r->sids) {
1270                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1271                 }
1272         }
1273         return NDR_ERR_SUCCESS;
1274 }
1275
1276 _PUBLIC_ void ndr_print_netr_SamInfo3(struct ndr_print *ndr, const char *name, const struct netr_SamInfo3 *r)
1277 {
1278         uint32_t cntr_sids_1;
1279         ndr_print_struct(ndr, name, "netr_SamInfo3");
1280         ndr->depth++;
1281         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1282         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1283         ndr_print_ptr(ndr, "sids", r->sids);
1284         ndr->depth++;
1285         if (r->sids) {
1286                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", r->sidcount);
1287                 ndr->depth++;
1288                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1289                         char *idx_1=NULL;
1290                         asprintf(&idx_1, "[%d]", cntr_sids_1);
1291                         if (idx_1) {
1292                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1293                                 free(idx_1);
1294                         }
1295                 }
1296                 ndr->depth--;
1297         }
1298         ndr->depth--;
1299         ndr->depth--;
1300 }
1301
1302 static enum ndr_err_code ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo6 *r)
1303 {
1304         uint32_t cntr_sids_1;
1305         uint32_t cntr_unknown4_0;
1306         if (ndr_flags & NDR_SCALARS) {
1307                 NDR_CHECK(ndr_push_align(ndr, 4));
1308                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1309                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1310                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1311                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
1312                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principle));
1313                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1314                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4[cntr_unknown4_0]));
1315                 }
1316         }
1317         if (ndr_flags & NDR_BUFFERS) {
1318                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1319                 if (r->sids) {
1320                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1321                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1322                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1323                         }
1324                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1325                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1326                         }
1327                 }
1328                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1329                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1330         }
1331         return NDR_ERR_SUCCESS;
1332 }
1333
1334 static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r)
1335 {
1336         uint32_t _ptr_sids;
1337         uint32_t cntr_sids_1;
1338         TALLOC_CTX *_mem_save_sids_0;
1339         TALLOC_CTX *_mem_save_sids_1;
1340         uint32_t cntr_unknown4_0;
1341         if (ndr_flags & NDR_SCALARS) {
1342                 NDR_CHECK(ndr_pull_align(ndr, 4));
1343                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1344                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1345                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1346                 if (_ptr_sids) {
1347                         NDR_PULL_ALLOC(ndr, r->sids);
1348                 } else {
1349                         r->sids = NULL;
1350                 }
1351                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
1352                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle));
1353                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1354                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0]));
1355                 }
1356         }
1357         if (ndr_flags & NDR_BUFFERS) {
1358                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1359                 if (r->sids) {
1360                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1361                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1362                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1363                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1364                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1365                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1366                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1367                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1368                         }
1369                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1370                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1371                         }
1372                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1373                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1374                 }
1375                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1376                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1377                 if (r->sids) {
1378                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1379                 }
1380         }
1381         return NDR_ERR_SUCCESS;
1382 }
1383
1384 _PUBLIC_ void ndr_print_netr_SamInfo6(struct ndr_print *ndr, const char *name, const struct netr_SamInfo6 *r)
1385 {
1386         uint32_t cntr_sids_1;
1387         uint32_t cntr_unknown4_0;
1388         ndr_print_struct(ndr, name, "netr_SamInfo6");
1389         ndr->depth++;
1390         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1391         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1392         ndr_print_ptr(ndr, "sids", r->sids);
1393         ndr->depth++;
1394         if (r->sids) {
1395                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", r->sidcount);
1396                 ndr->depth++;
1397                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1398                         char *idx_1=NULL;
1399                         asprintf(&idx_1, "[%d]", cntr_sids_1);
1400                         if (idx_1) {
1401                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1402                                 free(idx_1);
1403                         }
1404                 }
1405                 ndr->depth--;
1406         }
1407         ndr->depth--;
1408         ndr_print_lsa_String(ndr, "forest", &r->forest);
1409         ndr_print_lsa_String(ndr, "principle", &r->principle);
1410         ndr->print(ndr, "%s: ARRAY(%d)", "unknown4", 20);
1411         ndr->depth++;
1412         for (cntr_unknown4_0=0;cntr_unknown4_0<20;cntr_unknown4_0++) {
1413                 char *idx_0=NULL;
1414                 asprintf(&idx_0, "[%d]", cntr_unknown4_0);
1415                 if (idx_0) {
1416                         ndr_print_uint32(ndr, "unknown4", r->unknown4[cntr_unknown4_0]);
1417                         free(idx_0);
1418                 }
1419         }
1420         ndr->depth--;
1421         ndr->depth--;
1422 }
1423
1424 static enum ndr_err_code ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PacInfo *r)
1425 {
1426         uint32_t cntr_expansionroom_0;
1427         if (ndr_flags & NDR_SCALARS) {
1428                 NDR_CHECK(ndr_push_align(ndr, 4));
1429                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1430                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1431                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1432                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1433                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1434                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1435                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth));
1436                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1437                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1438                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->expansionroom[cntr_expansionroom_0]));
1439                 }
1440                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1441                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1442                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1443                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1444         }
1445         if (ndr_flags & NDR_BUFFERS) {
1446                 if (r->pac) {
1447                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1448                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pac, r->pac_size));
1449                 }
1450                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1451                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1452                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1453                 if (r->auth) {
1454                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1455                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->auth, r->auth_size));
1456                 }
1457                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1458                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1459                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1460                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1461         }
1462         return NDR_ERR_SUCCESS;
1463 }
1464
1465 static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r)
1466 {
1467         uint32_t _ptr_pac;
1468         TALLOC_CTX *_mem_save_pac_0;
1469         uint32_t _ptr_auth;
1470         TALLOC_CTX *_mem_save_auth_0;
1471         uint32_t cntr_expansionroom_0;
1472         if (ndr_flags & NDR_SCALARS) {
1473                 NDR_CHECK(ndr_pull_align(ndr, 4));
1474                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pac_size));
1475                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1476                 if (_ptr_pac) {
1477                         NDR_PULL_ALLOC(ndr, r->pac);
1478                 } else {
1479                         r->pac = NULL;
1480                 }
1481                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1482                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1483                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1484                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_size));
1485                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_auth));
1486                 if (_ptr_auth) {
1487                         NDR_PULL_ALLOC(ndr, r->auth);
1488                 } else {
1489                         r->auth = NULL;
1490                 }
1491                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1492                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1493                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0]));
1494                 }
1495                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1496                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1497                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1498                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1499         }
1500         if (ndr_flags & NDR_BUFFERS) {
1501                 if (r->pac) {
1502                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1503                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1504                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pac));
1505                         NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac));
1506                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac)));
1507                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1508                 }
1509                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1510                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1511                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1512                 if (r->auth) {
1513                         _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr);
1514                         NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0);
1515                         NDR_CHECK(ndr_pull_array_size(ndr, &r->auth));
1516                         NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth));
1517                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth)));
1518                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0);
1519                 }
1520                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1521                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1522                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1523                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1524                 if (r->pac) {
1525                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pac, r->pac_size));
1526                 }
1527                 if (r->auth) {
1528                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->auth, r->auth_size));
1529                 }
1530         }
1531         return NDR_ERR_SUCCESS;
1532 }
1533
1534 _PUBLIC_ void ndr_print_netr_PacInfo(struct ndr_print *ndr, const char *name, const struct netr_PacInfo *r)
1535 {
1536         uint32_t cntr_expansionroom_0;
1537         ndr_print_struct(ndr, name, "netr_PacInfo");
1538         ndr->depth++;
1539         ndr_print_uint32(ndr, "pac_size", r->pac_size);
1540         ndr_print_ptr(ndr, "pac", r->pac);
1541         ndr->depth++;
1542         if (r->pac) {
1543                 ndr_print_array_uint8(ndr, "pac", r->pac, r->pac_size);
1544         }
1545         ndr->depth--;
1546         ndr_print_lsa_String(ndr, "logon_domain", &r->logon_domain);
1547         ndr_print_lsa_String(ndr, "logon_server", &r->logon_server);
1548         ndr_print_lsa_String(ndr, "principal_name", &r->principal_name);
1549         ndr_print_uint32(ndr, "auth_size", r->auth_size);
1550         ndr_print_ptr(ndr, "auth", r->auth);
1551         ndr->depth++;
1552         if (r->auth) {
1553                 ndr_print_array_uint8(ndr, "auth", r->auth, r->auth_size);
1554         }
1555         ndr->depth--;
1556         ndr_print_netr_UserSessionKey(ndr, "user_session_key", &r->user_session_key);
1557         ndr->print(ndr, "%s: ARRAY(%d)", "expansionroom", 10);
1558         ndr->depth++;
1559         for (cntr_expansionroom_0=0;cntr_expansionroom_0<10;cntr_expansionroom_0++) {
1560                 char *idx_0=NULL;
1561                 asprintf(&idx_0, "[%d]", cntr_expansionroom_0);
1562                 if (idx_0) {
1563                         ndr_print_uint32(ndr, "expansionroom", r->expansionroom[cntr_expansionroom_0]);
1564                         free(idx_0);
1565                 }
1566         }
1567         ndr->depth--;
1568         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1569         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1570         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1571         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1572         ndr->depth--;
1573 }
1574
1575 _PUBLIC_ enum ndr_err_code ndr_push_netr_Validation(struct ndr_push *ndr, int ndr_flags, const union netr_Validation *r)
1576 {
1577         if (ndr_flags & NDR_SCALARS) {
1578                 int level = ndr_push_get_switch_value(ndr, r);
1579                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
1580                 switch (level) {
1581                         case 2:
1582                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam2));
1583                         break;
1584
1585                         case 3:
1586                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam3));
1587                         break;
1588
1589                         case 4:
1590                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1591                         break;
1592
1593                         case 5:
1594                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1595                         break;
1596
1597                         case 6:
1598                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam6));
1599                         break;
1600
1601                         default:
1602                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1603                 }
1604         }
1605         if (ndr_flags & NDR_BUFFERS) {
1606                 int level = ndr_push_get_switch_value(ndr, r);
1607                 switch (level) {
1608                         case 2:
1609                                 if (r->sam2) {
1610                                         NDR_CHECK(ndr_push_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1611                                 }
1612                         break;
1613
1614                         case 3:
1615                                 if (r->sam3) {
1616                                         NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1617                                 }
1618                         break;
1619
1620                         case 4:
1621                                 if (r->pac) {
1622                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1623                                 }
1624                         break;
1625
1626                         case 5:
1627                                 if (r->pac) {
1628                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1629                                 }
1630                         break;
1631
1632                         case 6:
1633                                 if (r->sam6) {
1634                                         NDR_CHECK(ndr_push_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1635                                 }
1636                         break;
1637
1638                         default:
1639                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1640                 }
1641         }
1642         return NDR_ERR_SUCCESS;
1643 }
1644
1645 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int ndr_flags, union netr_Validation *r)
1646 {
1647         int level;
1648         uint16_t _level;
1649         TALLOC_CTX *_mem_save_sam2_0;
1650         TALLOC_CTX *_mem_save_sam3_0;
1651         TALLOC_CTX *_mem_save_pac_0;
1652         TALLOC_CTX *_mem_save_sam6_0;
1653         level = ndr_pull_get_switch_value(ndr, r);
1654         if (ndr_flags & NDR_SCALARS) {
1655                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1656                 if (_level != level) {
1657                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1658                 }
1659                 switch (level) {
1660                         case 2: {
1661                                 uint32_t _ptr_sam2;
1662                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2));
1663                                 if (_ptr_sam2) {
1664                                         NDR_PULL_ALLOC(ndr, r->sam2);
1665                                 } else {
1666                                         r->sam2 = NULL;
1667                                 }
1668                         break; }
1669
1670                         case 3: {
1671                                 uint32_t _ptr_sam3;
1672                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3));
1673                                 if (_ptr_sam3) {
1674                                         NDR_PULL_ALLOC(ndr, r->sam3);
1675                                 } else {
1676                                         r->sam3 = NULL;
1677                                 }
1678                         break; }
1679
1680                         case 4: {
1681                                 uint32_t _ptr_pac;
1682                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1683                                 if (_ptr_pac) {
1684                                         NDR_PULL_ALLOC(ndr, r->pac);
1685                                 } else {
1686                                         r->pac = NULL;
1687                                 }
1688                         break; }
1689
1690                         case 5: {
1691                                 uint32_t _ptr_pac;
1692                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1693                                 if (_ptr_pac) {
1694                                         NDR_PULL_ALLOC(ndr, r->pac);
1695                                 } else {
1696                                         r->pac = NULL;
1697                                 }
1698                         break; }
1699
1700                         case 6: {
1701                                 uint32_t _ptr_sam6;
1702                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6));
1703                                 if (_ptr_sam6) {
1704                                         NDR_PULL_ALLOC(ndr, r->sam6);
1705                                 } else {
1706                                         r->sam6 = NULL;
1707                                 }
1708                         break; }
1709
1710                         default:
1711                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1712                 }
1713         }
1714         if (ndr_flags & NDR_BUFFERS) {
1715                 switch (level) {
1716                         case 2:
1717                                 if (r->sam2) {
1718                                         _mem_save_sam2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1719                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam2, 0);
1720                                         NDR_CHECK(ndr_pull_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1721                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam2_0, 0);
1722                                 }
1723                         break;
1724
1725                         case 3:
1726                                 if (r->sam3) {
1727                                         _mem_save_sam3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1728                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam3, 0);
1729                                         NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1730                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam3_0, 0);
1731                                 }
1732                         break;
1733
1734                         case 4:
1735                                 if (r->pac) {
1736                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1737                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1738                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1739                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1740                                 }
1741                         break;
1742
1743                         case 5:
1744                                 if (r->pac) {
1745                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1746                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1747                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1748                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1749                                 }
1750                         break;
1751
1752                         case 6:
1753                                 if (r->sam6) {
1754                                         _mem_save_sam6_0 = NDR_PULL_GET_MEM_CTX(ndr);
1755                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam6, 0);
1756                                         NDR_CHECK(ndr_pull_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1757                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam6_0, 0);
1758                                 }
1759                         break;
1760
1761                         default:
1762                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1763                 }
1764         }
1765         return NDR_ERR_SUCCESS;
1766 }
1767
1768 _PUBLIC_ void ndr_print_netr_Validation(struct ndr_print *ndr, const char *name, const union netr_Validation *r)
1769 {
1770         int level;
1771         level = ndr_print_get_switch_value(ndr, r);
1772         ndr_print_union(ndr, name, level, "netr_Validation");
1773         switch (level) {
1774                 case 2:
1775                         ndr_print_ptr(ndr, "sam2", r->sam2);
1776                         ndr->depth++;
1777                         if (r->sam2) {
1778                                 ndr_print_netr_SamInfo2(ndr, "sam2", r->sam2);
1779                         }
1780                         ndr->depth--;
1781                 break;
1782
1783                 case 3:
1784                         ndr_print_ptr(ndr, "sam3", r->sam3);
1785                         ndr->depth++;
1786                         if (r->sam3) {
1787                                 ndr_print_netr_SamInfo3(ndr, "sam3", r->sam3);
1788                         }
1789                         ndr->depth--;
1790                 break;
1791
1792                 case 4:
1793                         ndr_print_ptr(ndr, "pac", r->pac);
1794                         ndr->depth++;
1795                         if (r->pac) {
1796                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1797                         }
1798                         ndr->depth--;
1799                 break;
1800
1801                 case 5:
1802                         ndr_print_ptr(ndr, "pac", r->pac);
1803                         ndr->depth++;
1804                         if (r->pac) {
1805                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1806                         }
1807                         ndr->depth--;
1808                 break;
1809
1810                 case 6:
1811                         ndr_print_ptr(ndr, "sam6", r->sam6);
1812                         ndr->depth++;
1813                         if (r->sam6) {
1814                                 ndr_print_netr_SamInfo6(ndr, "sam6", r->sam6);
1815                         }
1816                         ndr->depth--;
1817                 break;
1818
1819                 default:
1820                         ndr_print_bad_level(ndr, name, level);
1821         }
1822 }
1823
1824 _PUBLIC_ enum ndr_err_code ndr_push_netr_Credential(struct ndr_push *ndr, int ndr_flags, const struct netr_Credential *r)
1825 {
1826         {
1827                 uint32_t _flags_save_STRUCT = ndr->flags;
1828                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1829                 if (ndr_flags & NDR_SCALARS) {
1830                         NDR_CHECK(ndr_push_align(ndr, 1));
1831                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1832                 }
1833                 if (ndr_flags & NDR_BUFFERS) {
1834                 }
1835                 ndr->flags = _flags_save_STRUCT;
1836         }
1837         return NDR_ERR_SUCCESS;
1838 }
1839
1840 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r)
1841 {
1842         {
1843                 uint32_t _flags_save_STRUCT = ndr->flags;
1844                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1845                 if (ndr_flags & NDR_SCALARS) {
1846                         NDR_CHECK(ndr_pull_align(ndr, 1));
1847                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1848                 }
1849                 if (ndr_flags & NDR_BUFFERS) {
1850                 }
1851                 ndr->flags = _flags_save_STRUCT;
1852         }
1853         return NDR_ERR_SUCCESS;
1854 }
1855
1856 _PUBLIC_ void ndr_print_netr_Credential(struct ndr_print *ndr, const char *name, const struct netr_Credential *r)
1857 {
1858         ndr_print_struct(ndr, name, "netr_Credential");
1859         {
1860                 uint32_t _flags_save_STRUCT = ndr->flags;
1861                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1862                 ndr->depth++;
1863                 ndr_print_array_uint8(ndr, "data", r->data, 8);
1864                 ndr->depth--;
1865                 ndr->flags = _flags_save_STRUCT;
1866         }
1867 }
1868
1869 _PUBLIC_ enum ndr_err_code ndr_push_netr_Authenticator(struct ndr_push *ndr, int ndr_flags, const struct netr_Authenticator *r)
1870 {
1871         if (ndr_flags & NDR_SCALARS) {
1872                 NDR_CHECK(ndr_push_align(ndr, 4));
1873                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1874                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
1875         }
1876         if (ndr_flags & NDR_BUFFERS) {
1877         }
1878         return NDR_ERR_SUCCESS;
1879 }
1880
1881 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Authenticator(struct ndr_pull *ndr, int ndr_flags, struct netr_Authenticator *r)
1882 {
1883         if (ndr_flags & NDR_SCALARS) {
1884                 NDR_CHECK(ndr_pull_align(ndr, 4));
1885                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1886                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
1887         }
1888         if (ndr_flags & NDR_BUFFERS) {
1889         }
1890         return NDR_ERR_SUCCESS;
1891 }
1892
1893 _PUBLIC_ void ndr_print_netr_Authenticator(struct ndr_print *ndr, const char *name, const struct netr_Authenticator *r)
1894 {
1895         ndr_print_struct(ndr, name, "netr_Authenticator");
1896         ndr->depth++;
1897         ndr_print_netr_Credential(ndr, "cred", &r->cred);
1898         ndr_print_time_t(ndr, "timestamp", r->timestamp);
1899         ndr->depth--;
1900 }
1901
1902 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)
1903 {
1904         if (ndr_flags & NDR_SCALARS) {
1905                 NDR_CHECK(ndr_push_align(ndr, 4));
1906                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
1907                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1908                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1909                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1910                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1911                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
1912                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
1913                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
1914                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
1915         }
1916         if (ndr_flags & NDR_BUFFERS) {
1917                 if (r->account_name) {
1918                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1919                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1920                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1921                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
1922                 }
1923                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1924                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1925                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1926                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1927         }
1928         return NDR_ERR_SUCCESS;
1929 }
1930
1931 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r)
1932 {
1933         uint32_t _ptr_account_name;
1934         TALLOC_CTX *_mem_save_account_name_0;
1935         if (ndr_flags & NDR_SCALARS) {
1936                 NDR_CHECK(ndr_pull_align(ndr, 4));
1937                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
1938                 if (_ptr_account_name) {
1939                         NDR_PULL_ALLOC(ndr, r->account_name);
1940                 } else {
1941                         r->account_name = NULL;
1942                 }
1943                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1944                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1945                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1946                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1947                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
1948                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
1949                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
1950                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
1951         }
1952         if (ndr_flags & NDR_BUFFERS) {
1953                 if (r->account_name) {
1954                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1955                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
1956                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
1957                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
1958                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
1959                                 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));
1960                         }
1961                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
1962                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
1963                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
1964                 }
1965                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1966                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1967                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1968                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1969         }
1970         return NDR_ERR_SUCCESS;
1971 }
1972
1973 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_USER *r)
1974 {
1975         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_USER");
1976         ndr->depth++;
1977         ndr_print_ptr(ndr, "account_name", r->account_name);
1978         ndr->depth++;
1979         if (r->account_name) {
1980                 ndr_print_string(ndr, "account_name", r->account_name);
1981         }
1982         ndr->depth--;
1983         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1984         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1985         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1986         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1987         ndr_print_uint32(ndr, "unknown5", r->unknown5);
1988         ndr_print_uint32(ndr, "unknown6", r->unknown6);
1989         ndr_print_uint32(ndr, "unknown7", r->unknown7);
1990         ndr_print_uint32(ndr, "unknown8", r->unknown8);
1991         ndr->depth--;
1992 }
1993
1994 static enum ndr_err_code ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY16 *r)
1995 {
1996         if (ndr_flags & NDR_SCALARS) {
1997                 NDR_CHECK(ndr_push_align(ndr, 4));
1998                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1999                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
2000                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
2001                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2002         }
2003         if (ndr_flags & NDR_BUFFERS) {
2004                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
2005         }
2006         return NDR_ERR_SUCCESS;
2007 }
2008
2009 static enum ndr_err_code ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY16 *r)
2010 {
2011         if (ndr_flags & NDR_SCALARS) {
2012                 NDR_CHECK(ndr_pull_align(ndr, 4));
2013                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
2014                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
2015                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
2016                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2017         }
2018         if (ndr_flags & NDR_BUFFERS) {
2019                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
2020         }
2021         return NDR_ERR_SUCCESS;
2022 }
2023
2024 _PUBLIC_ void ndr_print_netr_USER_KEY16(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY16 *r)
2025 {
2026         ndr_print_struct(ndr, name, "netr_USER_KEY16");
2027         ndr->depth++;
2028         ndr_print_uint16(ndr, "length", r->length);
2029         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
2030         ndr_print_uint32(ndr, "flags", r->flags);
2031         ndr_print_samr_Password(ndr, "pwd", &r->pwd);
2032         ndr->depth--;
2033 }
2034
2035 static enum ndr_err_code ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordHistory *r)
2036 {
2037         if (ndr_flags & NDR_SCALARS) {
2038                 NDR_CHECK(ndr_push_align(ndr, 4));
2039                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2040                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2041                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_flags));
2042                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2043                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2044                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lm_flags));
2045                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2046                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2047         }
2048         if (ndr_flags & NDR_BUFFERS) {
2049         }
2050         return NDR_ERR_SUCCESS;
2051 }
2052
2053 static enum ndr_err_code ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *r)
2054 {
2055         if (ndr_flags & NDR_SCALARS) {
2056                 NDR_CHECK(ndr_pull_align(ndr, 4));
2057                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_length));
2058                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_size));
2059                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_flags));
2060                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length));
2061                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size));
2062                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags));
2063                 NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length);
2064                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2065                 NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length);
2066                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2067         }
2068         if (ndr_flags & NDR_BUFFERS) {
2069         }
2070         return NDR_ERR_SUCCESS;
2071 }
2072
2073 _PUBLIC_ void ndr_print_netr_PasswordHistory(struct ndr_print *ndr, const char *name, const struct netr_PasswordHistory *r)
2074 {
2075         ndr_print_struct(ndr, name, "netr_PasswordHistory");
2076         ndr->depth++;
2077         ndr_print_uint16(ndr, "nt_length", r->nt_length);
2078         ndr_print_uint16(ndr, "nt_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->nt_length:r->nt_size);
2079         ndr_print_uint32(ndr, "nt_flags", r->nt_flags);
2080         ndr_print_uint16(ndr, "lm_length", r->lm_length);
2081         ndr_print_uint16(ndr, "lm_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->lm_length:r->lm_size);
2082         ndr_print_uint32(ndr, "lm_flags", r->lm_flags);
2083         ndr_print_array_uint8(ndr, "nt_history", r->nt_history, r->nt_length);
2084         ndr_print_array_uint8(ndr, "lm_history", r->lm_history, r->lm_length);
2085         ndr->depth--;
2086 }
2087
2088 static enum ndr_err_code ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS2 *r)
2089 {
2090         if (ndr_flags & NDR_SCALARS) {
2091                 NDR_CHECK(ndr_push_align(ndr, 4));
2092                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2093                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2094                 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2095         }
2096         if (ndr_flags & NDR_BUFFERS) {
2097                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
2098                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
2099         }
2100         return NDR_ERR_SUCCESS;
2101 }
2102
2103 static enum ndr_err_code ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS2 *r)
2104 {
2105         if (ndr_flags & NDR_SCALARS) {
2106                 NDR_CHECK(ndr_pull_align(ndr, 4));
2107                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2108                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2109                 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2110         }
2111         if (ndr_flags & NDR_BUFFERS) {
2112                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
2113                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
2114         }
2115         return NDR_ERR_SUCCESS;
2116 }
2117
2118 _PUBLIC_ void ndr_print_netr_USER_KEYS2(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS2 *r)
2119 {
2120         ndr_print_struct(ndr, name, "netr_USER_KEYS2");
2121         ndr->depth++;
2122         ndr_print_netr_USER_KEY16(ndr, "lmpassword", &r->lmpassword);
2123         ndr_print_netr_USER_KEY16(ndr, "ntpassword", &r->ntpassword);
2124         ndr_print_netr_PasswordHistory(ndr, "history", &r->history);
2125         ndr->depth--;
2126 }
2127
2128 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)
2129 {
2130         if (ndr_flags & NDR_SCALARS) {
2131                 NDR_CHECK(ndr_push_align(ndr, 4));
2132                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2133         }
2134         if (ndr_flags & NDR_BUFFERS) {
2135                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
2136         }
2137         return NDR_ERR_SUCCESS;
2138 }
2139
2140 static enum ndr_err_code ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY_UNION *r)
2141 {
2142         if (ndr_flags & NDR_SCALARS) {
2143                 NDR_CHECK(ndr_pull_align(ndr, 4));
2144                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2145         }
2146         if (ndr_flags & NDR_BUFFERS) {
2147                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
2148         }
2149         return NDR_ERR_SUCCESS;
2150 }
2151
2152 _PUBLIC_ void ndr_print_netr_USER_KEY_UNION(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY_UNION *r)
2153 {
2154         ndr_print_struct(ndr, name, "netr_USER_KEY_UNION");
2155         ndr->depth++;
2156         ndr_print_netr_USER_KEYS2(ndr, "keys2", &r->keys2);
2157         ndr->depth--;
2158 }
2159
2160 _PUBLIC_ enum ndr_err_code ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS *r)
2161 {
2162         if (ndr_flags & NDR_SCALARS) {
2163                 NDR_CHECK(ndr_push_align(ndr, 4));
2164                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2165                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2166         }
2167         if (ndr_flags & NDR_BUFFERS) {
2168                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
2169         }
2170         return NDR_ERR_SUCCESS;
2171 }
2172
2173 _PUBLIC_ enum ndr_err_code ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS *r)
2174 {
2175         if (ndr_flags & NDR_SCALARS) {
2176                 NDR_CHECK(ndr_pull_align(ndr, 4));
2177                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2178                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2179         }
2180         if (ndr_flags & NDR_BUFFERS) {
2181                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
2182         }
2183         return NDR_ERR_SUCCESS;
2184 }
2185
2186 _PUBLIC_ void ndr_print_netr_USER_KEYS(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS *r)
2187 {
2188         ndr_print_struct(ndr, name, "netr_USER_KEYS");
2189         ndr->depth++;
2190         ndr_print_uint32(ndr, "version", r->version);
2191         ndr_print_netr_USER_KEY_UNION(ndr, "keys", &r->keys);
2192         ndr->depth--;
2193 }
2194
2195 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)
2196 {
2197         if (ndr_flags & NDR_SCALARS) {
2198                 NDR_CHECK(ndr_push_align(ndr, 4));
2199                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->SensitiveDataFlag));
2200                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2201                 {
2202                         uint32_t _flags_save_uint8 = ndr->flags;
2203                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2204                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->SensitiveData));
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                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2214                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, r->DataLength));
2215                         }
2216                         ndr->flags = _flags_save_uint8;
2217                 }
2218         }
2219         return NDR_ERR_SUCCESS;
2220 }
2221
2222 static enum ndr_err_code ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r)
2223 {
2224         uint32_t _ptr_SensitiveData;
2225         TALLOC_CTX *_mem_save_SensitiveData_0;
2226         if (ndr_flags & NDR_SCALARS) {
2227                 NDR_CHECK(ndr_pull_align(ndr, 4));
2228                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->SensitiveDataFlag));
2229                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataLength));
2230                 {
2231                         uint32_t _flags_save_uint8 = ndr->flags;
2232                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2233                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_SensitiveData));
2234                         if (_ptr_SensitiveData) {
2235                                 NDR_PULL_ALLOC(ndr, r->SensitiveData);
2236                         } else {
2237                                 r->SensitiveData = NULL;
2238                         }
2239                         ndr->flags = _flags_save_uint8;
2240                 }
2241         }
2242         if (ndr_flags & NDR_BUFFERS) {
2243                 {
2244                         uint32_t _flags_save_uint8 = ndr->flags;
2245                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2246                         if (r->SensitiveData) {
2247                                 _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr);
2248                                 NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0);
2249                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData));
2250                                 NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData));
2251                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)));
2252                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0);
2253                         }
2254                         ndr->flags = _flags_save_uint8;
2255                 }
2256                 if (r->SensitiveData) {
2257                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->SensitiveData, r->DataLength));
2258                 }
2259         }
2260         return NDR_ERR_SUCCESS;
2261 }
2262
2263 _PUBLIC_ void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print *ndr, const char *name, const struct netr_USER_PRIVATE_INFO *r)
2264 {
2265         ndr_print_struct(ndr, name, "netr_USER_PRIVATE_INFO");
2266         ndr->depth++;
2267         ndr_print_uint8(ndr, "SensitiveDataFlag", r->SensitiveDataFlag);
2268         ndr_print_uint32(ndr, "DataLength", r->DataLength);
2269         ndr_print_ptr(ndr, "SensitiveData", r->SensitiveData);
2270         ndr->depth++;
2271         if (r->SensitiveData) {
2272                 ndr_print_array_uint8(ndr, "SensitiveData", r->SensitiveData, r->DataLength);
2273         }
2274         ndr->depth--;
2275         ndr->depth--;
2276 }
2277
2278 static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_USER *r)
2279 {
2280         if (ndr_flags & NDR_SCALARS) {
2281                 NDR_CHECK(ndr_push_align(ndr, 4));
2282                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2283                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2284                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2285                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2286                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2287                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2288                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2289                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2290                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2291                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2292                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2293                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2294                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2295                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2296                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2297                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2298                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2299                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2300                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2301                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_present));
2302                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present));
2303                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2304                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2305                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2306                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2307                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2308                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2309                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2310                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2311                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2312                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2313                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2314                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2315                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2316                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2317                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2318                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2319         }
2320         if (ndr_flags & NDR_BUFFERS) {
2321                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2322                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2323                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2324                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2325                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2326                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2327                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2328                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2329                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
2330                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
2331                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2332                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2333                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2334                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2335                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2336                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2337                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2338                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2339         }
2340         return NDR_ERR_SUCCESS;
2341 }
2342
2343 static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_USER *r)
2344 {
2345         if (ndr_flags & NDR_SCALARS) {
2346                 NDR_CHECK(ndr_pull_align(ndr, 4));
2347                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2348                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2349                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2350                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2351                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2352                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2353                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2354                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2355                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2356                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2357                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2358                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2359                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2360                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2361                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2362                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2363                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2364                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2365                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2366                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_present));
2367                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present));
2368                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
2369                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2370                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2371                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
2372                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
2373                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2374                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2375                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2376                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2377                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2378                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2379                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2380                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2381                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2382                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2383                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2384         }
2385         if (ndr_flags & NDR_BUFFERS) {
2386                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2387                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2388                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2389                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2390                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2391                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2392                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2393                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2394                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
2395                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
2396                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2397                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2398                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2399                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2400                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2401                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2402                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2403                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2404         }
2405         return NDR_ERR_SUCCESS;
2406 }
2407
2408 _PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_USER *r)
2409 {
2410         ndr_print_struct(ndr, name, "netr_DELTA_USER");
2411         ndr->depth++;
2412         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2413         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2414         ndr_print_uint32(ndr, "rid", r->rid);
2415         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2416         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2417         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2418         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2419         ndr_print_lsa_String(ndr, "description", &r->description);
2420         ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2421         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2422         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2423         ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2424         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2425         ndr_print_uint16(ndr, "logon_count", r->logon_count);
2426         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2427         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2428         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2429         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
2430         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
2431         ndr_print_uint8(ndr, "nt_password_present", r->nt_password_present);
2432         ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present);
2433         ndr_print_uint8(ndr, "password_expired", r->password_expired);
2434         ndr_print_lsa_String(ndr, "comment", &r->comment);
2435         ndr_print_lsa_String(ndr, "parameters", &r->parameters);
2436         ndr_print_uint16(ndr, "country_code", r->country_code);
2437         ndr_print_uint16(ndr, "code_page", r->code_page);
2438         ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info);
2439         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2440         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2441         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2442         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2443         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2444         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2445         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2446         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2447         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2448         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2449         ndr->depth--;
2450 }
2451
2452 static enum ndr_err_code ndr_push_netr_DELTA_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DOMAIN *r)
2453 {
2454         if (ndr_flags & NDR_SCALARS) {
2455                 NDR_CHECK(ndr_push_align(ndr, 4));
2456                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2457                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2458                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->force_logoff_time));
2459                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
2460                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
2461                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
2462                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
2463                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2464                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
2465                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2466                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2467                 NDR_CHECK(ndr_push_netr_AcctLockStr(ndr, NDR_SCALARS, &r->account_lockout));
2468                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2469                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2470                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2471                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_to_chgpass));
2472                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2473                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2474                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2475         }
2476         if (ndr_flags & NDR_BUFFERS) {
2477                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2478                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2479                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2480                 NDR_CHECK(ndr_push_netr_AcctLockStr(ndr, NDR_BUFFERS, &r->account_lockout));
2481                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2482                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2483                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2484         }
2485         return NDR_ERR_SUCCESS;
2486 }
2487
2488 static enum ndr_err_code ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DOMAIN *r)
2489 {
2490         if (ndr_flags & NDR_SCALARS) {
2491                 NDR_CHECK(ndr_pull_align(ndr, 4));
2492                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2493                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2494                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->force_logoff_time));
2495                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
2496                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
2497                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
2498                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
2499                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
2500                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
2501                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2502                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2503                 NDR_CHECK(ndr_pull_netr_AcctLockStr(ndr, NDR_SCALARS, &r->account_lockout));
2504                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2505                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2506                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2507                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_to_chgpass));
2508                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2509                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2510                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2511         }
2512         if (ndr_flags & NDR_BUFFERS) {
2513                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2514                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2515                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2516                 NDR_CHECK(ndr_pull_netr_AcctLockStr(ndr, NDR_BUFFERS, &r->account_lockout));
2517                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2518                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2519                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2520         }
2521         return NDR_ERR_SUCCESS;
2522 }
2523
2524 _PUBLIC_ void ndr_print_netr_DELTA_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DOMAIN *r)
2525 {
2526         ndr_print_struct(ndr, name, "netr_DELTA_DOMAIN");
2527         ndr->depth++;
2528         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
2529         ndr_print_lsa_String(ndr, "comment", &r->comment);
2530         ndr_print_dlong(ndr, "force_logoff_time", r->force_logoff_time);
2531         ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
2532         ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
2533         ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
2534         ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
2535         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
2536         ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
2537         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2538         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2539         ndr_print_netr_AcctLockStr(ndr, "account_lockout", &r->account_lockout);
2540         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2541         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2542         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2543         ndr_print_uint32(ndr, "logon_to_chgpass", r->logon_to_chgpass);
2544         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2545         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2546         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2547         ndr->depth--;
2548 }
2549
2550 static enum ndr_err_code ndr_push_netr_DELTA_GROUP(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP *r)
2551 {
2552         if (ndr_flags & NDR_SCALARS) {
2553                 NDR_CHECK(ndr_push_align(ndr, 4));
2554                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2555                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2556                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
2557                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2558                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2559                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2560                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2561                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2562                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2563                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2564                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2565                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2566                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2567                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2568         }
2569         if (ndr_flags & NDR_BUFFERS) {
2570                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2571                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2572                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2573                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2574                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2575                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2576                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2577         }
2578         return NDR_ERR_SUCCESS;
2579 }
2580
2581 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP *r)
2582 {
2583         if (ndr_flags & NDR_SCALARS) {
2584                 NDR_CHECK(ndr_pull_align(ndr, 4));
2585                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2586                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2587                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
2588                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2589                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2590                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2591                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2592                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2593                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2594                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2595                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2596                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2597                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2598                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2599         }
2600         if (ndr_flags & NDR_BUFFERS) {
2601                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2602                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2603                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2604                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2605                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2606                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2607                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2608         }
2609         return NDR_ERR_SUCCESS;
2610 }
2611
2612 _PUBLIC_ void ndr_print_netr_DELTA_GROUP(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP *r)
2613 {
2614         ndr_print_struct(ndr, name, "netr_DELTA_GROUP");
2615         ndr->depth++;
2616         ndr_print_lsa_String(ndr, "group_name", &r->group_name);
2617         ndr_print_uint32(ndr, "rid", r->rid);
2618         ndr_print_uint32(ndr, "attributes", r->attributes);
2619         ndr_print_lsa_String(ndr, "description", &r->description);
2620         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2621         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2622         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2623         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2624         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2625         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2626         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2627         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2628         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2629         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2630         ndr->depth--;
2631 }
2632
2633 static enum ndr_err_code ndr_push_netr_DELTA_RENAME(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_RENAME *r)
2634 {
2635         if (ndr_flags & NDR_SCALARS) {
2636                 NDR_CHECK(ndr_push_align(ndr, 4));
2637                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2638                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2639                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2640                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2641                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2642                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2643                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2644                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2645                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2646                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2647         }
2648         if (ndr_flags & NDR_BUFFERS) {
2649                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2650                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2651                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2652                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2653                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2654                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2655         }
2656         return NDR_ERR_SUCCESS;
2657 }
2658
2659 static enum ndr_err_code ndr_pull_netr_DELTA_RENAME(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_RENAME *r)
2660 {
2661         if (ndr_flags & NDR_SCALARS) {
2662                 NDR_CHECK(ndr_pull_align(ndr, 4));
2663                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2664                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2665                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2666                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2667                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2668                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2669                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2670                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2671                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2672                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2673         }
2674         if (ndr_flags & NDR_BUFFERS) {
2675                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2676                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2677                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2678                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2679                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2680                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2681         }
2682         return NDR_ERR_SUCCESS;
2683 }
2684
2685 _PUBLIC_ void ndr_print_netr_DELTA_RENAME(struct ndr_print *ndr, const char *name, const struct netr_DELTA_RENAME *r)
2686 {
2687         ndr_print_struct(ndr, name, "netr_DELTA_RENAME");
2688         ndr->depth++;
2689         ndr_print_lsa_String(ndr, "OldName", &r->OldName);
2690         ndr_print_lsa_String(ndr, "NewName", &r->NewName);
2691         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2692         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2693         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2694         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2695         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2696         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2697         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2698         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2699         ndr->depth--;
2700 }
2701
2702 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)
2703 {
2704         uint32_t cntr_rids_1;
2705         uint32_t cntr_attribs_1;
2706         if (ndr_flags & NDR_SCALARS) {
2707                 NDR_CHECK(ndr_push_align(ndr, 4));
2708                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
2709                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribs));
2710                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2711                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2712                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2713                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2714                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2715         }
2716         if (ndr_flags & NDR_BUFFERS) {
2717                 if (r->rids) {
2718                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2719                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2720                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
2721                         }
2722                 }
2723                 if (r->attribs) {
2724                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2725                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2726                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribs[cntr_attribs_1]));
2727                         }
2728                 }
2729         }
2730         return NDR_ERR_SUCCESS;
2731 }
2732
2733 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r)
2734 {
2735         uint32_t _ptr_rids;
2736         uint32_t cntr_rids_1;
2737         TALLOC_CTX *_mem_save_rids_0;
2738         TALLOC_CTX *_mem_save_rids_1;
2739         uint32_t _ptr_attribs;
2740         uint32_t cntr_attribs_1;
2741         TALLOC_CTX *_mem_save_attribs_0;
2742         TALLOC_CTX *_mem_save_attribs_1;
2743         if (ndr_flags & NDR_SCALARS) {
2744                 NDR_CHECK(ndr_pull_align(ndr, 4));
2745                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
2746                 if (_ptr_rids) {
2747                         NDR_PULL_ALLOC(ndr, r->rids);
2748                 } else {
2749                         r->rids = NULL;
2750                 }
2751                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribs));
2752                 if (_ptr_attribs) {
2753                         NDR_PULL_ALLOC(ndr, r->attribs);
2754                 } else {
2755                         r->attribs = NULL;
2756                 }
2757                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
2758                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2759                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2760                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2761                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2762         }
2763         if (ndr_flags & NDR_BUFFERS) {
2764                 if (r->rids) {
2765                         _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
2766                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2767                         NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
2768                         NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
2769                         _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
2770                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2771                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2772                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
2773                         }
2774                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
2775                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
2776                 }
2777                 if (r->attribs) {
2778                         _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr);
2779                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2780                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs));
2781                         NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs));
2782                         _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr);
2783                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2784                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2785                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1]));
2786                         }
2787                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0);
2788                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_0, 0);
2789                 }
2790                 if (r->rids) {
2791                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
2792                 }
2793                 if (r->attribs) {
2794                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attribs, r->num_rids));
2795                 }
2796         }
2797         return NDR_ERR_SUCCESS;
2798 }
2799
2800 _PUBLIC_ void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP_MEMBER *r)
2801 {
2802         uint32_t cntr_rids_1;
2803         uint32_t cntr_attribs_1;
2804         ndr_print_struct(ndr, name, "netr_DELTA_GROUP_MEMBER");
2805         ndr->depth++;
2806         ndr_print_ptr(ndr, "rids", r->rids);
2807         ndr->depth++;
2808         if (r->rids) {
2809                 ndr->print(ndr, "%s: ARRAY(%d)", "rids", r->num_rids);
2810                 ndr->depth++;
2811                 for (cntr_rids_1=0;cntr_rids_1<r->num_rids;cntr_rids_1++) {
2812                         char *idx_1=NULL;
2813                         asprintf(&idx_1, "[%d]", cntr_rids_1);
2814                         if (idx_1) {
2815                                 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
2816                                 free(idx_1);
2817                         }
2818                 }
2819                 ndr->depth--;
2820         }
2821         ndr->depth--;
2822         ndr_print_ptr(ndr, "attribs", r->attribs);
2823         ndr->depth++;
2824         if (r->attribs) {
2825                 ndr->print(ndr, "%s: ARRAY(%d)", "attribs", r->num_rids);
2826                 ndr->depth++;
2827                 for (cntr_attribs_1=0;cntr_attribs_1<r->num_rids;cntr_attribs_1++) {
2828                         char *idx_1=NULL;
2829                         asprintf(&idx_1, "[%d]", cntr_attribs_1);
2830                         if (idx_1) {
2831                                 ndr_print_uint32(ndr, "attribs", r->attribs[cntr_attribs_1]);
2832                                 free(idx_1);
2833                         }
2834                 }
2835                 ndr->depth--;
2836         }
2837         ndr->depth--;
2838         ndr_print_uint32(ndr, "num_rids", r->num_rids);
2839         ndr_print_uint32(ndr, "unknown1", r->unknown1);
2840         ndr_print_uint32(ndr, "unknown2", r->unknown2);
2841         ndr_print_uint32(ndr, "unknown3", r->unknown3);
2842         ndr_print_uint32(ndr, "unknown4", r->unknown4);
2843         ndr->depth--;
2844 }
2845
2846 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS *r)
2847 {
2848         if (ndr_flags & NDR_SCALARS) {
2849                 NDR_CHECK(ndr_push_align(ndr, 4));
2850                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2851                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2852                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2853                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2854                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2855                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2856                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2857                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2858                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2859                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2860                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2861                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2862         }
2863         if (ndr_flags & NDR_BUFFERS) {
2864                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2865                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2866                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2867                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2868                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2869                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2870         }
2871         return NDR_ERR_SUCCESS;
2872 }
2873
2874 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS *r)
2875 {
2876         if (ndr_flags & NDR_SCALARS) {
2877                 NDR_CHECK(ndr_pull_align(ndr, 4));
2878                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2879                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2880                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2881                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2882                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2883                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2884                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2885                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2886                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2887                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2888                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2889                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2890         }
2891         if (ndr_flags & NDR_BUFFERS) {
2892                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2893                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2894                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2895                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2896                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2897                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2898         }
2899         return NDR_ERR_SUCCESS;
2900 }
2901
2902 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS *r)
2903 {
2904         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS");
2905         ndr->depth++;
2906         ndr_print_lsa_String(ndr, "alias_name", &r->alias_name);
2907         ndr_print_uint32(ndr, "rid", r->rid);
2908         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2909         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2910         ndr_print_lsa_String(ndr, "description", &r->description);
2911         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2912         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2913         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2914         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2915         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2916         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2917         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2918         ndr->depth--;
2919 }
2920
2921 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)
2922 {
2923         if (ndr_flags & NDR_SCALARS) {
2924                 NDR_CHECK(ndr_push_align(ndr, 4));
2925                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2926                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2927                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2928                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2929                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2930         }
2931         if (ndr_flags & NDR_BUFFERS) {
2932                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2933         }
2934         return NDR_ERR_SUCCESS;
2935 }
2936
2937 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS_MEMBER *r)
2938 {
2939         if (ndr_flags & NDR_SCALARS) {
2940                 NDR_CHECK(ndr_pull_align(ndr, 4));
2941                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2942                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2943                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2944                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2945                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2946         }
2947         if (ndr_flags & NDR_BUFFERS) {
2948                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2949         }
2950         return NDR_ERR_SUCCESS;
2951 }
2952
2953 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS_MEMBER *r)
2954 {
2955         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS_MEMBER");
2956         ndr->depth++;
2957         ndr_print_lsa_SidArray(ndr, "sids", &r->sids);
2958         ndr_print_uint32(ndr, "unknown1", r->unknown1);
2959         ndr_print_uint32(ndr, "unknown2", r->unknown2);
2960         ndr_print_uint32(ndr, "unknown3", r->unknown3);
2961         ndr_print_uint32(ndr, "unknown4", r->unknown4);
2962         ndr->depth--;
2963 }
2964
2965 static enum ndr_err_code ndr_push_netr_QUOTA_LIMITS(struct ndr_push *ndr, int ndr_flags, const struct netr_QUOTA_LIMITS *r)
2966 {
2967         if (ndr_flags & NDR_SCALARS) {
2968                 NDR_CHECK(ndr_push_align(ndr, 4));
2969                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagedpoollimit));
2970                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonpagedpoollimit));
2971                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minimumworkingsetsize));
2972                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maximumworkingsetsize));
2973                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagefilelimit));
2974                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timelimit));
2975         }
2976         if (ndr_flags & NDR_BUFFERS) {
2977         }
2978         return NDR_ERR_SUCCESS;
2979 }
2980
2981 static enum ndr_err_code ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull *ndr, int ndr_flags, struct netr_QUOTA_LIMITS *r)
2982 {
2983         if (ndr_flags & NDR_SCALARS) {
2984                 NDR_CHECK(ndr_pull_align(ndr, 4));
2985                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagedpoollimit));
2986                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonpagedpoollimit));
2987                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minimumworkingsetsize));
2988                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maximumworkingsetsize));
2989                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagefilelimit));
2990                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timelimit));
2991         }
2992         if (ndr_flags & NDR_BUFFERS) {
2993         }
2994         return NDR_ERR_SUCCESS;
2995 }
2996
2997 _PUBLIC_ void ndr_print_netr_QUOTA_LIMITS(struct ndr_print *ndr, const char *name, const struct netr_QUOTA_LIMITS *r)
2998 {
2999         ndr_print_struct(ndr, name, "netr_QUOTA_LIMITS");
3000         ndr->depth++;
3001         ndr_print_uint32(ndr, "pagedpoollimit", r->pagedpoollimit);
3002         ndr_print_uint32(ndr, "nonpagedpoollimit", r->nonpagedpoollimit);
3003         ndr_print_uint32(ndr, "minimumworkingsetsize", r->minimumworkingsetsize);
3004         ndr_print_uint32(ndr, "maximumworkingsetsize", r->maximumworkingsetsize);
3005         ndr_print_uint32(ndr, "pagefilelimit", r->pagefilelimit);
3006         ndr_print_NTTIME(ndr, "timelimit", r->timelimit);
3007         ndr->depth--;
3008 }
3009
3010 static enum ndr_err_code ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_POLICY *r)
3011 {
3012         uint32_t cntr_eventauditoptions_1;
3013         if (ndr_flags & NDR_SCALARS) {
3014                 NDR_CHECK(ndr_push_align(ndr, 4));
3015                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlogsize));
3016                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->auditretentionperiod));
3017                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auditingmode));
3018                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount));
3019                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->eventauditoptions));
3020                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3021                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
3022                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3023                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
3024                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time));
3025                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3026                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3027                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3028                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3029                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3030                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3031                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3032                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3033                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3034                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3035         }
3036         if (ndr_flags & NDR_BUFFERS) {
3037                 if (r->eventauditoptions) {
3038                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount + 1));
3039                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3040                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventauditoptions[cntr_eventauditoptions_1]));
3041                         }
3042                 }
3043                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3044                 if (r->sid) {
3045                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3046                 }
3047                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3048                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3049                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3050                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3051                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3052         }
3053         return NDR_ERR_SUCCESS;
3054 }
3055
3056 static enum ndr_err_code ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r)
3057 {
3058         uint32_t _ptr_eventauditoptions;
3059         uint32_t cntr_eventauditoptions_1;
3060         TALLOC_CTX *_mem_save_eventauditoptions_0;
3061         TALLOC_CTX *_mem_save_eventauditoptions_1;
3062         uint32_t _ptr_sid;
3063         TALLOC_CTX *_mem_save_sid_0;
3064         if (ndr_flags & NDR_SCALARS) {
3065                 NDR_CHECK(ndr_pull_align(ndr, 4));
3066                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlogsize));
3067                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->auditretentionperiod));
3068                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auditingmode));
3069                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxauditeventcount));
3070                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eventauditoptions));
3071                 if (_ptr_eventauditoptions) {
3072                         NDR_PULL_ALLOC(ndr, r->eventauditoptions);
3073                 } else {
3074                         r->eventauditoptions = NULL;
3075                 }
3076                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3077                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
3078                 if (_ptr_sid) {
3079                         NDR_PULL_ALLOC(ndr, r->sid);
3080                 } else {
3081                         r->sid = NULL;
3082                 }
3083                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3084                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
3085                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time));
3086                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3087                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3088                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3089                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3090                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3091                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3092                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3093                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3094                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3095                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3096         }
3097         if (ndr_flags & NDR_BUFFERS) {
3098                 if (r->eventauditoptions) {
3099                         _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr);
3100                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3101                         NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions));
3102                         NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions));
3103                         _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr);
3104                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3105                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3106                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1]));
3107                         }
3108                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0);
3109                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_0, 0);
3110                 }
3111                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3112                 if (r->sid) {
3113                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
3114                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
3115                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3116                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
3117                 }
3118                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3119                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3120                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3121                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3122                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3123                 if (r->eventauditoptions) {
3124                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eventauditoptions, r->maxauditeventcount + 1));
3125                 }
3126         }
3127         return NDR_ERR_SUCCESS;
3128 }
3129
3130 _PUBLIC_ void ndr_print_netr_DELTA_POLICY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_POLICY *r)
3131 {
3132         uint32_t cntr_eventauditoptions_1;
3133         ndr_print_struct(ndr, name, "netr_DELTA_POLICY");
3134         ndr->depth++;
3135         ndr_print_uint32(ndr, "maxlogsize", r->maxlogsize);
3136         ndr_print_NTTIME(ndr, "auditretentionperiod", r->auditretentionperiod);
3137         ndr_print_uint8(ndr, "auditingmode", r->auditingmode);
3138         ndr_print_uint32(ndr, "maxauditeventcount", r->maxauditeventcount);
3139         ndr_print_ptr(ndr, "eventauditoptions", r->eventauditoptions);
3140         ndr->depth++;
3141         if (r->eventauditoptions) {
3142                 ndr->print(ndr, "%s: ARRAY(%d)", "eventauditoptions", r->maxauditeventcount + 1);
3143                 ndr->depth++;
3144                 for (cntr_eventauditoptions_1=0;cntr_eventauditoptions_1<r->maxauditeventcount + 1;cntr_eventauditoptions_1++) {
3145                         char *idx_1=NULL;
3146                         asprintf(&idx_1, "[%d]", cntr_eventauditoptions_1);
3147                         if (idx_1) {
3148                                 ndr_print_uint32(ndr, "eventauditoptions", r->eventauditoptions[cntr_eventauditoptions_1]);
3149                                 free(idx_1);
3150                         }
3151                 }
3152                 ndr->depth--;
3153         }
3154         ndr->depth--;
3155         ndr_print_lsa_String(ndr, "primary_domain_name", &r->primary_domain_name);
3156         ndr_print_ptr(ndr, "sid", r->sid);
3157         ndr->depth++;
3158         if (r->sid) {
3159                 ndr_print_dom_sid2(ndr, "sid", r->sid);
3160         }
3161         ndr->depth--;
3162         ndr_print_netr_QUOTA_LIMITS(ndr, "quota_limits", &r->quota_limits);
3163         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
3164         ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
3165         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3166         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3167         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3168         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3169         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3170         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3171         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3172         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3173         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3174         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3175         ndr->depth--;
3176 }
3177
3178 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)
3179 {
3180         uint32_t cntr_controller_names_1;
3181         if (ndr_flags & NDR_SCALARS) {
3182                 NDR_CHECK(ndr_push_align(ndr, 4));
3183                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3184                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3185                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->controller_names));
3186                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3187                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3188                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3189                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3190                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3191                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3192                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_offset));
3193                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3194                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3195                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3196         }
3197         if (ndr_flags & NDR_BUFFERS) {
3198                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3199                 if (r->controller_names) {
3200                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3201                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3202                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3203                         }
3204                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3205                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3206                         }
3207                 }
3208                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3209                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3210                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3211                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3212                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3213         }
3214         return NDR_ERR_SUCCESS;
3215 }
3216
3217 static enum ndr_err_code ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r)
3218 {
3219         uint32_t _ptr_controller_names;
3220         uint32_t cntr_controller_names_1;
3221         TALLOC_CTX *_mem_save_controller_names_0;
3222         TALLOC_CTX *_mem_save_controller_names_1;
3223         if (ndr_flags & NDR_SCALARS) {
3224                 NDR_CHECK(ndr_pull_align(ndr, 4));
3225                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3226                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_controllers));
3227                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_controller_names));
3228                 if (_ptr_controller_names) {
3229                         NDR_PULL_ALLOC(ndr, r->controller_names);
3230                 } else {
3231                         r->controller_names = NULL;
3232                 }
3233                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3234                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3235                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3236                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3237                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3238                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3239                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_offset));
3240                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3241                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3242                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3243         }
3244         if (ndr_flags & NDR_BUFFERS) {
3245                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3246                 if (r->controller_names) {
3247                         _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
3248                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3249                         NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names));
3250                         NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names));
3251                         _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
3252                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3253                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3254                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3255                         }
3256                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3257                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3258                         }
3259                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0);
3260                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_0, 0);
3261                 }
3262                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3263                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3264                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3265                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3266                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3267                 if (r->controller_names) {
3268                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->controller_names, r->num_controllers));
3269                 }
3270         }
3271         return NDR_ERR_SUCCESS;
3272 }
3273
3274 _PUBLIC_ void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3275 {
3276         uint32_t cntr_controller_names_1;
3277         ndr_print_struct(ndr, name, "netr_DELTA_TRUSTED_DOMAIN");
3278         ndr->depth++;
3279         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
3280         ndr_print_uint32(ndr, "num_controllers", r->num_controllers);
3281         ndr_print_ptr(ndr, "controller_names", r->controller_names);
3282         ndr->depth++;
3283         if (r->controller_names) {
3284                 ndr->print(ndr, "%s: ARRAY(%d)", "controller_names", r->num_controllers);
3285                 ndr->depth++;
3286                 for (cntr_controller_names_1=0;cntr_controller_names_1<r->num_controllers;cntr_controller_names_1++) {
3287                         char *idx_1=NULL;
3288                         asprintf(&idx_1, "[%d]", cntr_controller_names_1);
3289                         if (idx_1) {
3290                                 ndr_print_lsa_String(ndr, "controller_names", &r->controller_names[cntr_controller_names_1]);
3291                                 free(idx_1);
3292                         }
3293                 }
3294                 ndr->depth--;
3295         }
3296         ndr->depth--;
3297         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3298         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3299         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3300         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3301         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3302         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3303         ndr_print_uint32(ndr, "posix_offset", r->posix_offset);
3304         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3305         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3306         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3307         ndr->depth--;
3308 }
3309
3310 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)
3311 {
3312         if (ndr_flags & NDR_SCALARS) {
3313                 NDR_CHECK(ndr_push_align(ndr, 2));
3314                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3315         }
3316         if (ndr_flags & NDR_BUFFERS) {
3317         }
3318         return NDR_ERR_SUCCESS;
3319 }
3320
3321 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_TRUST *r)
3322 {
3323         if (ndr_flags & NDR_SCALARS) {
3324                 NDR_CHECK(ndr_pull_align(ndr, 2));
3325                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3326         }
3327         if (ndr_flags & NDR_BUFFERS) {
3328         }
3329         return NDR_ERR_SUCCESS;
3330 }
3331
3332 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_TRUST *r)
3333 {
3334         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_TRUST");
3335         ndr->depth++;
3336         ndr_print_uint16(ndr, "unknown", r->unknown);
3337         ndr->depth--;
3338 }
3339
3340 static enum ndr_err_code ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ACCOUNT *r)
3341 {
3342         uint32_t cntr_privilege_attrib_1;
3343         uint32_t cntr_privilege_name_1;
3344         if (ndr_flags & NDR_SCALARS) {
3345                 NDR_CHECK(ndr_push_align(ndr, 4));
3346                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3347                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_control));
3348                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_attrib));
3349                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_name));
3350                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3351                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->system_flags));
3352                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3353                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3354                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3355                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3356                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3357                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3358                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3359                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3360                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3361                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3362         }
3363         if (ndr_flags & NDR_BUFFERS) {
3364                 if (r->privilege_attrib) {
3365                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3366                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3367                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_attrib[cntr_privilege_attrib_1]));
3368                         }
3369                 }
3370                 if (r->privilege_name) {
3371                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3372                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3373                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3374                         }
3375                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3376                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3377                         }
3378                 }
3379                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3380                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3381                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3382                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3383                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3384         }
3385         return NDR_ERR_SUCCESS;
3386 }
3387
3388 static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r)
3389 {
3390         uint32_t _ptr_privilege_attrib;
3391         uint32_t cntr_privilege_attrib_1;
3392         TALLOC_CTX *_mem_save_privilege_attrib_0;
3393         TALLOC_CTX *_mem_save_privilege_attrib_1;
3394         uint32_t _ptr_privilege_name;
3395         uint32_t cntr_privilege_name_1;
3396         TALLOC_CTX *_mem_save_privilege_name_0;
3397         TALLOC_CTX *_mem_save_privilege_name_1;
3398         if (ndr_flags & NDR_SCALARS) {
3399                 NDR_CHECK(ndr_pull_align(ndr, 4));
3400                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_entries));
3401                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_control));
3402                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_attrib));
3403                 if (_ptr_privilege_attrib) {
3404                         NDR_PULL_ALLOC(ndr, r->privilege_attrib);
3405                 } else {
3406                         r->privilege_attrib = NULL;
3407                 }
3408                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_name));
3409                 if (_ptr_privilege_name) {
3410                         NDR_PULL_ALLOC(ndr, r->privilege_name);
3411                 } else {
3412                         r->privilege_name = NULL;
3413                 }
3414                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3415                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->system_flags));
3416                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3417                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3418                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3419                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3420                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3421                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3422                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3423                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3424                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3425                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3426         }
3427         if (ndr_flags & NDR_BUFFERS) {
3428                 if (r->privilege_attrib) {
3429                         _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
3430                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3431                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib));
3432                         NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib));
3433                         _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr);
3434                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3435                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3436                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1]));
3437                         }
3438                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0);
3439                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_0, 0);
3440                 }
3441                 if (r->privilege_name) {
3442                         _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3443                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3444                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name));
3445                         NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name));
3446                         _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
3447                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3448                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3449                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3450                         }
3451                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3452                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3453                         }
3454                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0);
3455                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_0, 0);
3456                 }
3457                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3458                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3459                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3460                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3461                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3462                 if (r->privilege_attrib) {
3463                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_attrib, r->privilege_entries));
3464                 }
3465                 if (r->privilege_name) {
3466                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_name, r->privilege_entries));
3467                 }
3468         }
3469         return NDR_ERR_SUCCESS;
3470 }
3471
3472 _PUBLIC_ void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ACCOUNT *r)
3473 {
3474         uint32_t cntr_privilege_attrib_1;
3475         uint32_t cntr_privilege_name_1;
3476         ndr_print_struct(ndr, name, "netr_DELTA_ACCOUNT");
3477         ndr->depth++;
3478         ndr_print_uint32(ndr, "privilege_entries", r->privilege_entries);
3479         ndr_print_uint32(ndr, "privilege_control", r->privilege_control);
3480         ndr_print_ptr(ndr, "privilege_attrib", r->privilege_attrib);
3481         ndr->depth++;
3482         if (r->privilege_attrib) {
3483                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_attrib", r->privilege_entries);
3484                 ndr->depth++;
3485                 for (cntr_privilege_attrib_1=0;cntr_privilege_attrib_1<r->privilege_entries;cntr_privilege_attrib_1++) {
3486                         char *idx_1=NULL;
3487                         asprintf(&idx_1, "[%d]", cntr_privilege_attrib_1);
3488                         if (idx_1) {
3489                                 ndr_print_uint32(ndr, "privilege_attrib", r->privilege_attrib[cntr_privilege_attrib_1]);
3490                                 free(idx_1);
3491                         }
3492                 }
3493                 ndr->depth--;
3494         }
3495         ndr->depth--;
3496         ndr_print_ptr(ndr, "privilege_name", r->privilege_name);
3497         ndr->depth++;
3498         if (r->privilege_name) {
3499                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_name", r->privilege_entries);
3500                 ndr->depth++;
3501                 for (cntr_privilege_name_1=0;cntr_privilege_name_1<r->privilege_entries;cntr_privilege_name_1++) {
3502                         char *idx_1=NULL;
3503                         asprintf(&idx_1, "[%d]", cntr_privilege_name_1);
3504                         if (idx_1) {
3505                                 ndr_print_lsa_String(ndr, "privilege_name", &r->privilege_name[cntr_privilege_name_1]);
3506                                 free(idx_1);
3507                         }
3508                 }
3509                 ndr->depth--;
3510         }
3511         ndr->depth--;
3512         ndr_print_netr_QUOTA_LIMITS(ndr, "quotalimits", &r->quotalimits);
3513         ndr_print_uint32(ndr, "system_flags", r->system_flags);
3514         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3515         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3516         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3517         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3518         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3519         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3520         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3521         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3522         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3523         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3524         ndr->depth--;
3525 }
3526
3527 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)
3528 {
3529         if (ndr_flags & NDR_SCALARS) {
3530                 NDR_CHECK(ndr_push_align(ndr, 2));
3531                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3532         }
3533         if (ndr_flags & NDR_BUFFERS) {
3534         }
3535         return NDR_ERR_SUCCESS;
3536 }
3537
3538 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_ACCOUNT *r)
3539 {
3540         if (ndr_flags & NDR_SCALARS) {
3541                 NDR_CHECK(ndr_pull_align(ndr, 2));
3542                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3543         }
3544         if (ndr_flags & NDR_BUFFERS) {
3545         }
3546         return NDR_ERR_SUCCESS;
3547 }
3548
3549 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_ACCOUNT *r)
3550 {
3551         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_ACCOUNT");
3552         ndr->depth++;
3553         ndr_print_uint16(ndr, "unknown", r->unknown);
3554         ndr->depth--;
3555 }
3556
3557 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)
3558 {
3559         if (ndr_flags & NDR_SCALARS) {
3560                 NDR_CHECK(ndr_push_align(ndr, 2));
3561                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3562         }
3563         if (ndr_flags & NDR_BUFFERS) {
3564         }
3565         return NDR_ERR_SUCCESS;
3566 }
3567
3568 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_SECRET *r)
3569 {
3570         if (ndr_flags & NDR_SCALARS) {
3571                 NDR_CHECK(ndr_pull_align(ndr, 2));
3572                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3573         }
3574         if (ndr_flags & NDR_BUFFERS) {
3575         }
3576         return NDR_ERR_SUCCESS;
3577 }
3578
3579 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_SECRET *r)
3580 {
3581         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_SECRET");
3582         ndr->depth++;
3583         ndr_print_uint16(ndr, "unknown", r->unknown);
3584         ndr->depth--;
3585 }
3586
3587 static enum ndr_err_code ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int ndr_flags, const struct netr_CIPHER_VALUE *r)
3588 {
3589         if (ndr_flags & NDR_SCALARS) {
3590                 NDR_CHECK(ndr_push_align(ndr, 4));
3591                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3592                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3593                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cipher_data));
3594         }
3595         if (ndr_flags & NDR_BUFFERS) {
3596                 if (r->cipher_data) {
3597                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3598                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3599                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3600                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->cipher_data, r->len));
3601                 }
3602         }
3603         return NDR_ERR_SUCCESS;
3604 }
3605
3606 static enum ndr_err_code ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r)
3607 {
3608         uint32_t _ptr_cipher_data;
3609         TALLOC_CTX *_mem_save_cipher_data_0;
3610         if (ndr_flags & NDR_SCALARS) {
3611                 NDR_CHECK(ndr_pull_align(ndr, 4));
3612                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
3613                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlen));
3614                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cipher_data));
3615                 if (_ptr_cipher_data) {
3616                         NDR_PULL_ALLOC(ndr, r->cipher_data);
3617                 } else {
3618                         r->cipher_data = NULL;
3619                 }
3620         }
3621         if (ndr_flags & NDR_BUFFERS) {
3622                 if (r->cipher_data) {
3623                         _mem_save_cipher_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
3624                         NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0);
3625                         NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data));
3626                         NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data));
3627                         if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) {
3628                                 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));
3629                         }
3630                         NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data));
3631                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data)));
3632                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0);
3633                 }
3634                 if (r->cipher_data) {
3635                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cipher_data, r->maxlen));
3636                 }
3637                 if (r->cipher_data) {
3638                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->cipher_data, r->len));
3639                 }
3640         }
3641         return NDR_ERR_SUCCESS;
3642 }
3643
3644 _PUBLIC_ void ndr_print_netr_CIPHER_VALUE(struct ndr_print *ndr, const char *name, const struct netr_CIPHER_VALUE *r)
3645 {
3646         ndr_print_struct(ndr, name, "netr_CIPHER_VALUE");
3647         ndr->depth++;
3648         ndr_print_uint32(ndr, "len", r->len);
3649         ndr_print_uint32(ndr, "maxlen", r->maxlen);
3650         ndr_print_ptr(ndr, "cipher_data", r->cipher_data);
3651         ndr->depth++;
3652         if (r->cipher_data) {
3653                 ndr_print_array_uint8(ndr, "cipher_data", r->cipher_data, r->len);
3654         }
3655         ndr->depth--;
3656         ndr->depth--;
3657 }
3658
3659 static enum ndr_err_code ndr_push_netr_DELTA_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_SECRET *r)
3660 {
3661         if (ndr_flags & NDR_SCALARS) {
3662                 NDR_CHECK(ndr_push_align(ndr, 4));
3663                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3664                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->current_cipher_set_time));
3665                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3666                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_cipher_set_time));
3667                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3668                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3669                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3670                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3671                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3672                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3673                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3674                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3675                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3676                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3677         }
3678         if (ndr_flags & NDR_BUFFERS) {
3679                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3680                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3681                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3682                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3683                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3684                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3685                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3686         }
3687         return NDR_ERR_SUCCESS;
3688 }
3689
3690 static enum ndr_err_code ndr_pull_netr_DELTA_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_SECRET *r)
3691 {
3692         if (ndr_flags & NDR_SCALARS) {
3693                 NDR_CHECK(ndr_pull_align(ndr, 4));
3694                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3695                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->current_cipher_set_time));
3696                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3697                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_cipher_set_time));
3698                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3699                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3700                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3701                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3702                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3703                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3704                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3705                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3706                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3707                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3708         }
3709         if (ndr_flags & NDR_BUFFERS) {
3710                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3711                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3712                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3713                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3714                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3715                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3716                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3717         }
3718         return NDR_ERR_SUCCESS;
3719 }
3720
3721 _PUBLIC_ void ndr_print_netr_DELTA_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_SECRET *r)
3722 {
3723         ndr_print_struct(ndr, name, "netr_DELTA_SECRET");
3724         ndr->depth++;
3725         ndr_print_netr_CIPHER_VALUE(ndr, "current_cipher", &r->current_cipher);
3726         ndr_print_NTTIME(ndr, "current_cipher_set_time", r->current_cipher_set_time);
3727         ndr_print_netr_CIPHER_VALUE(ndr, "old_cipher", &r->old_cipher);
3728         ndr_print_NTTIME(ndr, "old_cipher_set_time", r->old_cipher_set_time);
3729         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3730         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3731         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3732         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3733         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3734         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3735         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3736         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3737         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3738         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3739         ndr->depth--;
3740 }
3741
3742 static enum ndr_err_code ndr_push_netr_DeltaEnum(struct ndr_push *ndr, int ndr_flags, enum netr_DeltaEnum r)
3743 {
3744         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
3745         return NDR_ERR_SUCCESS;
3746 }
3747
3748 static enum ndr_err_code ndr_pull_netr_DeltaEnum(struct ndr_pull *ndr, int ndr_flags, enum netr_DeltaEnum *r)
3749 {
3750         uint16_t v;
3751         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
3752         *r = v;
3753         return NDR_ERR_SUCCESS;
3754 }
3755
3756 _PUBLIC_ void ndr_print_netr_DeltaEnum(struct ndr_print *ndr, const char *name, enum netr_DeltaEnum r)
3757 {
3758         const char *val = NULL;
3759
3760         switch (r) {
3761                 case NETR_DELTA_DOMAIN: val = "NETR_DELTA_DOMAIN"; break;
3762                 case NETR_DELTA_GROUP: val = "NETR_DELTA_GROUP"; break;
3763                 case NETR_DELTA_DELETE_GROUP: val = "NETR_DELTA_DELETE_GROUP"; break;
3764                 case NETR_DELTA_RENAME_GROUP: val = "NETR_DELTA_RENAME_GROUP"; break;
3765                 case NETR_DELTA_USER: val = "NETR_DELTA_USER"; break;
3766                 case NETR_DELTA_DELETE_USER: val = "NETR_DELTA_DELETE_USER"; break;
3767                 case NETR_DELTA_RENAME_USER: val = "NETR_DELTA_RENAME_USER"; break;
3768                 case NETR_DELTA_GROUP_MEMBER: val = "NETR_DELTA_GROUP_MEMBER"; break;
3769                 case NETR_DELTA_ALIAS: val = "NETR_DELTA_ALIAS"; break;
3770                 case NETR_DELTA_DELETE_ALIAS: val = "NETR_DELTA_DELETE_ALIAS"; break;
3771                 case NETR_DELTA_RENAME_ALIAS: val = "NETR_DELTA_RENAME_ALIAS"; break;
3772                 case NETR_DELTA_ALIAS_MEMBER: val = "NETR_DELTA_ALIAS_MEMBER"; break;
3773                 case NETR_DELTA_POLICY: val = "NETR_DELTA_POLICY"; break;
3774                 case NETR_DELTA_TRUSTED_DOMAIN: val = "NETR_DELTA_TRUSTED_DOMAIN"; break;
3775                 case NETR_DELTA_DELETE_TRUST: val = "NETR_DELTA_DELETE_TRUST"; break;
3776                 case NETR_DELTA_ACCOUNT: val = "NETR_DELTA_ACCOUNT"; break;
3777                 case NETR_DELTA_DELETE_ACCOUNT: val = "NETR_DELTA_DELETE_ACCOUNT"; break;
3778                 case NETR_DELTA_SECRET: val = "NETR_DELTA_SECRET"; break;
3779                 case NETR_DELTA_DELETE_SECRET: val = "NETR_DELTA_DELETE_SECRET"; break;
3780                 case NETR_DELTA_DELETE_GROUP2: val = "NETR_DELTA_DELETE_GROUP2"; break;
3781                 case NETR_DELTA_DELETE_USER2: val = "NETR_DELTA_DELETE_USER2"; break;
3782                 case NETR_DELTA_MODIFY_COUNT: val = "NETR_DELTA_MODIFY_COUNT"; break;
3783         }
3784         ndr_print_enum(ndr, name, "ENUM", val, r);
3785 }
3786
3787 static enum ndr_err_code ndr_push_netr_DELTA_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_UNION *r)
3788 {
3789         if (ndr_flags & NDR_SCALARS) {
3790                 int level = ndr_push_get_switch_value(ndr, r);
3791                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
3792                 switch (level) {
3793                         case NETR_DELTA_DOMAIN:
3794                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
3795                         break;
3796
3797                         case NETR_DELTA_GROUP:
3798                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group));
3799                         break;
3800
3801                         case NETR_DELTA_DELETE_GROUP:
3802                         break;
3803
3804                         case NETR_DELTA_RENAME_GROUP:
3805                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_group));
3806                         break;
3807
3808                         case NETR_DELTA_USER:
3809                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
3810                         break;
3811
3812                         case NETR_DELTA_DELETE_USER:
3813                         break;
3814
3815                         case NETR_DELTA_RENAME_USER:
3816                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_user));
3817                         break;
3818
3819                         case NETR_DELTA_GROUP_MEMBER:
3820                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_member));
3821                         break;
3822
3823                         case NETR_DELTA_ALIAS:
3824                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias));
3825                         break;
3826
3827                         case NETR_DELTA_DELETE_ALIAS:
3828                         break;
3829
3830                         case NETR_DELTA_RENAME_ALIAS:
3831                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_alias));
3832                         break;
3833
3834                         case NETR_DELTA_ALIAS_MEMBER:
3835                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias_member));
3836                         break;
3837
3838                         case NETR_DELTA_POLICY:
3839                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
3840                         break;
3841
3842                         case NETR_DELTA_TRUSTED_DOMAIN:
3843                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain));
3844                         break;
3845
3846                         case NETR_DELTA_DELETE_TRUST:
3847                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
3848                         break;
3849
3850                         case NETR_DELTA_ACCOUNT:
3851                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account));
3852                         break;
3853
3854                         case NETR_DELTA_DELETE_ACCOUNT:
3855                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
3856                         break;
3857
3858                         case NETR_DELTA_SECRET:
3859                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret));
3860                         break;
3861
3862                         case NETR_DELTA_DELETE_SECRET:
3863                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
3864                         break;
3865
3866                         case NETR_DELTA_DELETE_GROUP2:
3867                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_group));
3868                         break;
3869
3870                         case NETR_DELTA_DELETE_USER2:
3871                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_user));
3872                         break;
3873
3874                         case NETR_DELTA_MODIFY_COUNT:
3875                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->modified_count));
3876                         break;
3877
3878                         default:
3879                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3880                 }
3881         }
3882         if (ndr_flags & NDR_BUFFERS) {
3883                 int level = ndr_push_get_switch_value(ndr, r);
3884                 switch (level) {
3885                         case NETR_DELTA_DOMAIN:
3886                                 if (r->domain) {
3887                                         NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
3888                                 }
3889                         break;
3890
3891                         case NETR_DELTA_GROUP:
3892                                 if (r->group) {
3893                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
3894                                 }
3895                         break;
3896
3897                         case NETR_DELTA_DELETE_GROUP:
3898                         break;
3899
3900                         case NETR_DELTA_RENAME_GROUP:
3901                                 if (r->rename_group) {
3902                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
3903                                 }
3904                         break;
3905
3906                         case NETR_DELTA_USER:
3907                                 if (r->user) {
3908                                         NDR_CHECK(ndr_push_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
3909                                 }
3910                         break;
3911
3912                         case NETR_DELTA_DELETE_USER:
3913                         break;
3914
3915                         case NETR_DELTA_RENAME_USER:
3916                                 if (r->rename_user) {
3917                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
3918                                 }
3919                         break;
3920
3921                         case NETR_DELTA_GROUP_MEMBER:
3922                                 if (r->group_member) {
3923                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
3924                                 }
3925                         break;
3926
3927                         case NETR_DELTA_ALIAS:
3928                                 if (r->alias) {
3929                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
3930                                 }
3931                         break;
3932
3933                         case NETR_DELTA_DELETE_ALIAS:
3934                         break;
3935
3936                         case NETR_DELTA_RENAME_ALIAS:
3937                                 if (r->rename_alias) {
3938                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
3939                                 }
3940                         break;
3941
3942                         case NETR_DELTA_ALIAS_MEMBER:
3943                                 if (r->alias_member) {
3944                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
3945                                 }
3946                         break;
3947
3948                         case NETR_DELTA_POLICY:
3949                                 if (r->policy) {
3950                                         NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
3951                                 }
3952                         break;
3953
3954                         case NETR_DELTA_TRUSTED_DOMAIN:
3955                                 if (r->trusted_domain) {
3956                                         NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
3957                                 }
3958                         break;
3959
3960                         case NETR_DELTA_DELETE_TRUST:
3961                         break;
3962
3963                         case NETR_DELTA_ACCOUNT:
3964                                 if (r->account) {
3965                                         NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
3966                                 }
3967                         break;
3968
3969                         case NETR_DELTA_DELETE_ACCOUNT:
3970                         break;
3971
3972                         case NETR_DELTA_SECRET:
3973                                 if (r->secret) {
3974                                         NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
3975                                 }
3976                         break;
3977
3978                         case NETR_DELTA_DELETE_SECRET:
3979                         break;
3980
3981                         case NETR_DELTA_DELETE_GROUP2:
3982                                 if (r->delete_group) {
3983                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
3984                                 }
3985                         break;
3986
3987                         case NETR_DELTA_DELETE_USER2:
3988                                 if (r->delete_user) {
3989                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
3990                                 }
3991                         break;
3992
3993                         case NETR_DELTA_MODIFY_COUNT:
3994                                 if (r->modified_count) {
3995                                         NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->modified_count));
3996                                 }
3997                         break;
3998
3999                         default:
4000                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4001                 }
4002         }
4003         return NDR_ERR_SUCCESS;
4004 }
4005
4006 static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_UNION *r)
4007 {
4008         int level;
4009         uint16_t _level;
4010         TALLOC_CTX *_mem_save_domain_0;
4011         TALLOC_CTX *_mem_save_group_0;
4012         TALLOC_CTX *_mem_save_rename_group_0;
4013         TALLOC_CTX *_mem_save_user_0;
4014         TALLOC_CTX *_mem_save_rename_user_0;
4015         TALLOC_CTX *_mem_save_group_member_0;
4016         TALLOC_CTX *_mem_save_alias_0;
4017         TALLOC_CTX *_mem_save_rename_alias_0;
4018         TALLOC_CTX *_mem_save_alias_member_0;
4019         TALLOC_CTX *_mem_save_policy_0;
4020         TALLOC_CTX *_mem_save_trusted_domain_0;
4021         TALLOC_CTX *_mem_save_account_0;
4022         TALLOC_CTX *_mem_save_secret_0;
4023         TALLOC_CTX *_mem_save_delete_group_0;
4024         TALLOC_CTX *_mem_save_delete_user_0;
4025         TALLOC_CTX *_mem_save_modified_count_0;
4026         level = ndr_pull_get_switch_value(ndr, r);
4027         if (ndr_flags & NDR_SCALARS) {
4028                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4029                 if (_level != level) {
4030                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4031                 }
4032                 switch (level) {
4033                         case NETR_DELTA_DOMAIN: {
4034                                 uint32_t _ptr_domain;
4035                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
4036                                 if (_ptr_domain) {
4037                                         NDR_PULL_ALLOC(ndr, r->domain);
4038                                 } else {
4039                                         r->domain = NULL;
4040                                 }
4041                         break; }
4042
4043                         case NETR_DELTA_GROUP: {
4044                                 uint32_t _ptr_group;
4045                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group));
4046                                 if (_ptr_group) {
4047                                         NDR_PULL_ALLOC(ndr, r->group);
4048                                 } else {
4049                                         r->group = NULL;
4050                                 }
4051                         break; }
4052
4053                         case NETR_DELTA_DELETE_GROUP: {
4054                         break; }
4055
4056                         case NETR_DELTA_RENAME_GROUP: {
4057                                 uint32_t _ptr_rename_group;
4058                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group));
4059                                 if (_ptr_rename_group) {
4060                                         NDR_PULL_ALLOC(ndr, r->rename_group);
4061                                 } else {
4062                                         r->rename_group = NULL;
4063                                 }
4064                         break; }
4065
4066                         case NETR_DELTA_USER: {
4067                                 uint32_t _ptr_user;
4068                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
4069                                 if (_ptr_user) {
4070                                         NDR_PULL_ALLOC(ndr, r->user);
4071                                 } else {
4072                                         r->user = NULL;
4073                                 }
4074                         break; }
4075
4076                         case NETR_DELTA_DELETE_USER: {
4077                         break; }
4078
4079                         case NETR_DELTA_RENAME_USER: {
4080                                 uint32_t _ptr_rename_user;
4081                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user));
4082                                 if (_ptr_rename_user) {
4083                                         NDR_PULL_ALLOC(ndr, r->rename_user);
4084                                 } else {
4085                                         r->rename_user = NULL;
4086                                 }
4087                         break; }
4088
4089                         case NETR_DELTA_GROUP_MEMBER: {
4090                                 uint32_t _ptr_group_member;
4091                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member));
4092                                 if (_ptr_group_member) {
4093                                         NDR_PULL_ALLOC(ndr, r->group_member);
4094                                 } else {
4095                                         r->group_member = NULL;
4096                                 }
4097                         break; }
4098
4099                         case NETR_DELTA_ALIAS: {
4100                                 uint32_t _ptr_alias;
4101                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias));
4102                                 if (_ptr_alias) {
4103                                         NDR_PULL_ALLOC(ndr, r->alias);
4104                                 } else {
4105                                         r->alias = NULL;
4106                                 }
4107                         break; }
4108
4109                         case NETR_DELTA_DELETE_ALIAS: {
4110                         break; }
4111
4112                         case NETR_DELTA_RENAME_ALIAS: {
4113                                 uint32_t _ptr_rename_alias;
4114                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias));
4115                                 if (_ptr_rename_alias) {
4116                                         NDR_PULL_ALLOC(ndr, r->rename_alias);
4117                                 } else {
4118                                         r->rename_alias = NULL;
4119                                 }
4120                         break; }
4121
4122                         case NETR_DELTA_ALIAS_MEMBER: {
4123                                 uint32_t _ptr_alias_member;
4124                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member));
4125                                 if (_ptr_alias_member) {
4126                                         NDR_PULL_ALLOC(ndr, r->alias_member);
4127                                 } else {
4128                                         r->alias_member = NULL;
4129                                 }
4130                         break; }
4131
4132                         case NETR_DELTA_POLICY: {
4133                                 uint32_t _ptr_policy;
4134                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
4135                                 if (_ptr_policy) {
4136                                         NDR_PULL_ALLOC(ndr, r->policy);
4137                                 } else {
4138                                         r->policy = NULL;
4139                                 }
4140                         break; }
4141
4142                         case NETR_DELTA_TRUSTED_DOMAIN: {
4143                                 uint32_t _ptr_trusted_domain;
4144                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain));
4145                                 if (_ptr_trusted_domain) {
4146                                         NDR_PULL_ALLOC(ndr, r->trusted_domain);
4147                                 } else {
4148                                         r->trusted_domain = NULL;
4149                                 }
4150                         break; }
4151
4152                         case NETR_DELTA_DELETE_TRUST: {
4153                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4154                         break; }
4155
4156                         case NETR_DELTA_ACCOUNT: {
4157                                 uint32_t _ptr_account;
4158                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account));
4159                                 if (_ptr_account) {
4160                                         NDR_PULL_ALLOC(ndr, r->account);
4161                                 } else {
4162                                         r->account = NULL;
4163                                 }
4164                         break; }
4165
4166                         case NETR_DELTA_DELETE_ACCOUNT: {
4167                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4168                         break; }
4169
4170                         case NETR_DELTA_SECRET: {
4171                                 uint32_t _ptr_secret;
4172                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret));
4173                                 if (_ptr_secret) {
4174                                         NDR_PULL_ALLOC(ndr, r->secret);
4175                                 } else {
4176                                         r->secret = NULL;
4177                                 }
4178                         break; }
4179
4180                         case NETR_DELTA_DELETE_SECRET: {
4181                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4182                         break; }
4183
4184                         case NETR_DELTA_DELETE_GROUP2: {
4185                                 uint32_t _ptr_delete_group;
4186                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group));
4187                                 if (_ptr_delete_group) {
4188                                         NDR_PULL_ALLOC(ndr, r->delete_group);
4189                                 } else {
4190                                         r->delete_group = NULL;
4191                                 }
4192                         break; }
4193
4194                         case NETR_DELTA_DELETE_USER2: {
4195                                 uint32_t _ptr_delete_user;
4196                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user));
4197                                 if (_ptr_delete_user) {
4198                                         NDR_PULL_ALLOC(ndr, r->delete_user);
4199                                 } else {
4200                                         r->delete_user = NULL;
4201                                 }
4202                         break; }
4203
4204                         case NETR_DELTA_MODIFY_COUNT: {
4205                                 uint32_t _ptr_modified_count;
4206                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count));
4207                                 if (_ptr_modified_count) {
4208                                         NDR_PULL_ALLOC(ndr, r->modified_count);
4209                                 } else {
4210                                         r->modified_count = NULL;
4211                                 }
4212                         break; }
4213
4214                         default:
4215                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4216                 }
4217         }
4218         if (ndr_flags & NDR_BUFFERS) {
4219                 switch (level) {
4220                         case NETR_DELTA_DOMAIN:
4221                                 if (r->domain) {
4222                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4223                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
4224                                         NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4225                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
4226                                 }
4227                         break;
4228
4229                         case NETR_DELTA_GROUP:
4230                                 if (r->group) {
4231                                         _mem_save_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4232                                         NDR_PULL_SET_MEM_CTX(ndr, r->group, 0);
4233                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4234                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_0, 0);
4235                                 }
4236                         break;
4237
4238                         case NETR_DELTA_DELETE_GROUP:
4239                         break;
4240
4241                         case NETR_DELTA_RENAME_GROUP:
4242                                 if (r->rename_group) {
4243                                         _mem_save_rename_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4244                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_group, 0);
4245                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4246                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_group_0, 0);
4247                                 }
4248                         break;
4249
4250                         case NETR_DELTA_USER:
4251                                 if (r->user) {
4252                                         _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4253                                         NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
4254                                         NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4255                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
4256                                 }
4257                         break;
4258
4259                         case NETR_DELTA_DELETE_USER:
4260                         break;
4261
4262                         case NETR_DELTA_RENAME_USER:
4263                                 if (r->rename_user) {
4264                                         _mem_save_rename_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4265                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_user, 0);
4266                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4267                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_user_0, 0);
4268                                 }
4269                         break;
4270
4271                         case NETR_DELTA_GROUP_MEMBER:
4272                                 if (r->group_member) {
4273                                         _mem_save_group_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4274                                         NDR_PULL_SET_MEM_CTX(ndr, r->group_member, 0);
4275                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4276                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_member_0, 0);
4277                                 }
4278                         break;
4279
4280                         case NETR_DELTA_ALIAS:
4281                                 if (r->alias) {
4282                                         _mem_save_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4283                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias, 0);
4284                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4285                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_0, 0);
4286                                 }
4287                         break;
4288
4289                         case NETR_DELTA_DELETE_ALIAS:
4290                         break;
4291
4292                         case NETR_DELTA_RENAME_ALIAS:
4293                                 if (r->rename_alias) {
4294                                         _mem_save_rename_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4295                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_alias, 0);
4296                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4297                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_alias_0, 0);
4298                                 }
4299                         break;
4300
4301                         case NETR_DELTA_ALIAS_MEMBER:
4302                                 if (r->alias_member) {
4303                                         _mem_save_alias_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4304                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias_member, 0);
4305                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4306                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_member_0, 0);
4307                                 }
4308                         break;
4309
4310                         case NETR_DELTA_POLICY:
4311                                 if (r->policy) {
4312                                         _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
4313                                         NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
4314                                         NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4315                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
4316                                 }
4317                         break;
4318
4319                         case NETR_DELTA_TRUSTED_DOMAIN:
4320                                 if (r->trusted_domain) {
4321                                         _mem_save_trusted_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4322                                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain, 0);
4323                                         NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4324                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_0, 0);
4325                                 }
4326                         break;
4327
4328                         case NETR_DELTA_DELETE_TRUST:
4329                         break;
4330
4331                         case NETR_DELTA_ACCOUNT:
4332                                 if (r->account) {
4333                                         _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
4334                                         NDR_PULL_SET_MEM_CTX(ndr, r->account, 0);
4335                                         NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4336                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0);
4337                                 }
4338                         break;
4339
4340                         case NETR_DELTA_DELETE_ACCOUNT:
4341                         break;
4342
4343                         case NETR_DELTA_SECRET:
4344                                 if (r->secret) {
4345                                         _mem_save_secret_0 = NDR_PULL_GET_MEM_CTX(ndr);
4346                                         NDR_PULL_SET_MEM_CTX(ndr, r->secret, 0);
4347                                         NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4348                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_0, 0);
4349                                 }
4350                         break;
4351
4352                         case NETR_DELTA_DELETE_SECRET:
4353                         break;
4354
4355                         case NETR_DELTA_DELETE_GROUP2:
4356                                 if (r->delete_group) {
4357                                         _mem_save_delete_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4358                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_group, 0);
4359                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4360                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_group_0, 0);
4361                                 }
4362                         break;
4363
4364                         case NETR_DELTA_DELETE_USER2:
4365                                 if (r->delete_user) {
4366                                         _mem_save_delete_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4367                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_user, 0);
4368                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4369                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_user_0, 0);
4370                                 }
4371                         break;
4372
4373                         case NETR_DELTA_MODIFY_COUNT:
4374                                 if (r->modified_count) {
4375                                         _mem_save_modified_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
4376                                         NDR_PULL_SET_MEM_CTX(ndr, r->modified_count, 0);
4377                                         NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->modified_count));
4378                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_modified_count_0, 0);
4379                                 }
4380                         break;
4381
4382                         default:
4383                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4384                 }
4385         }
4386         return NDR_ERR_SUCCESS;
4387 }
4388
4389 _PUBLIC_ void ndr_print_netr_DELTA_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_UNION *r)
4390 {
4391         int level;
4392         level = ndr_print_get_switch_value(ndr, r);
4393         ndr_print_union(ndr, name, level, "netr_DELTA_UNION");
4394         switch (level) {
4395                 case NETR_DELTA_DOMAIN:
4396                         ndr_print_ptr(ndr, "domain", r->domain);
4397                         ndr->depth++;
4398                         if (r->domain) {
4399                                 ndr_print_netr_DELTA_DOMAIN(ndr, "domain", r->domain);
4400                         }
4401                         ndr->depth--;
4402                 break;
4403
4404                 case NETR_DELTA_GROUP:
4405                         ndr_print_ptr(ndr, "group", r->group);
4406                         ndr->depth++;
4407                         if (r->group) {
4408                                 ndr_print_netr_DELTA_GROUP(ndr, "group", r->group);
4409                         }
4410                         ndr->depth--;
4411                 break;
4412
4413                 case NETR_DELTA_DELETE_GROUP:
4414                 break;
4415
4416                 case NETR_DELTA_RENAME_GROUP:
4417                         ndr_print_ptr(ndr, "rename_group", r->rename_group);
4418                         ndr->depth++;
4419                         if (r->rename_group) {
4420                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_group", r->rename_group);
4421                         }
4422                         ndr->depth--;
4423                 break;
4424
4425                 case NETR_DELTA_USER:
4426                         ndr_print_ptr(ndr, "user", r->user);
4427                         ndr->depth++;
4428                         if (r->user) {
4429                                 ndr_print_netr_DELTA_USER(ndr, "user", r->user);
4430                         }
4431                         ndr->depth--;
4432                 break;
4433
4434                 case NETR_DELTA_DELETE_USER:
4435                 break;
4436
4437                 case NETR_DELTA_RENAME_USER:
4438                         ndr_print_ptr(ndr, "rename_user", r->rename_user);
4439                         ndr->depth++;
4440                         if (r->rename_user) {
4441                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_user", r->rename_user);
4442                         }
4443                         ndr->depth--;
4444                 break;
4445
4446                 case NETR_DELTA_GROUP_MEMBER:
4447                         ndr_print_ptr(ndr, "group_member", r->group_member);
4448                         ndr->depth++;
4449                         if (r->group_member) {
4450                                 ndr_print_netr_DELTA_GROUP_MEMBER(ndr, "group_member", r->group_member);
4451                         }
4452                         ndr->depth--;
4453                 break;
4454
4455                 case NETR_DELTA_ALIAS:
4456                         ndr_print_ptr(ndr, "alias", r->alias);
4457                         ndr->depth++;
4458                         if (r->alias) {
4459                                 ndr_print_netr_DELTA_ALIAS(ndr, "alias", r->alias);
4460                         }
4461                         ndr->depth--;
4462                 break;
4463
4464                 case NETR_DELTA_DELETE_ALIAS:
4465                 break;
4466
4467                 case NETR_DELTA_RENAME_ALIAS:
4468                         ndr_print_ptr(ndr, "rename_alias", r->rename_alias);
4469                         ndr->depth++;
4470                         if (r->rename_alias) {
4471                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_alias", r->rename_alias);
4472                         }
4473                         ndr->depth--;
4474                 break;
4475
4476                 case NETR_DELTA_ALIAS_MEMBER:
4477                         ndr_print_ptr(ndr, "alias_member", r->alias_member);
4478                         ndr->depth++;
4479                         if (r->alias_member) {
4480                                 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr, "alias_member", r->alias_member);
4481                         }
4482                         ndr->depth--;
4483                 break;
4484
4485                 case NETR_DELTA_POLICY:
4486                         ndr_print_ptr(ndr, "policy", r->policy);
4487                         ndr->depth++;
4488                         if (r->policy) {
4489                                 ndr_print_netr_DELTA_POLICY(ndr, "policy", r->policy);
4490                         }
4491                         ndr->depth--;
4492                 break;
4493
4494                 case NETR_DELTA_TRUSTED_DOMAIN:
4495                         ndr_print_ptr(ndr, "trusted_domain", r->trusted_domain);
4496                         ndr->depth++;
4497                         if (r->trusted_domain) {
4498                                 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr, "trusted_domain", r->trusted_domain);
4499                         }
4500                         ndr->depth--;
4501                 break;
4502
4503                 case NETR_DELTA_DELETE_TRUST:
4504                         ndr_print_netr_DELTA_DELETE_TRUST(ndr, "delete_trust", &r->delete_trust);
4505                 break;
4506
4507                 case NETR_DELTA_ACCOUNT:
4508                         ndr_print_ptr(ndr, "account", r->account);
4509                         ndr->depth++;
4510                         if (r->account) {
4511                                 ndr_print_netr_DELTA_ACCOUNT(ndr, "account", r->account);
4512                         }
4513                         ndr->depth--;
4514                 break;
4515
4516                 case NETR_DELTA_DELETE_ACCOUNT:
4517                         ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr, "delete_account", &r->delete_account);
4518                 break;
4519
4520                 case NETR_DELTA_SECRET:
4521                         ndr_print_ptr(ndr, "secret", r->secret);
4522                         ndr->depth++;
4523                         if (r->secret) {
4524                                 ndr_print_netr_DELTA_SECRET(ndr, "secret", r->secret);
4525                         }
4526                         ndr->depth--;
4527                 break;
4528
4529                 case NETR_DELTA_DELETE_SECRET:
4530                         ndr_print_netr_DELTA_DELETE_SECRET(ndr, "delete_secret", &r->delete_secret);
4531                 break;
4532
4533                 case NETR_DELTA_DELETE_GROUP2:
4534                         ndr_print_ptr(ndr, "delete_group", r->delete_group);
4535                         ndr->depth++;
4536                         if (r->delete_group) {
4537                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_group", r->delete_group);
4538                         }
4539                         ndr->depth--;
4540                 break;
4541
4542                 case NETR_DELTA_DELETE_USER2:
4543                         ndr_print_ptr(ndr, "delete_user", r->delete_user);
4544                         ndr->depth++;
4545                         if (r->delete_user) {
4546                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_user", r->delete_user);
4547                         }
4548                         ndr->depth--;
4549                 break;
4550
4551                 case NETR_DELTA_MODIFY_COUNT:
4552                         ndr_print_ptr(ndr, "modified_count", r->modified_count);
4553                         ndr->depth++;
4554                         if (r->modified_count) {
4555                                 ndr_print_udlong(ndr, "modified_count", *r->modified_count);
4556                         }
4557                         ndr->depth--;
4558                 break;
4559
4560                 default:
4561                         ndr_print_bad_level(ndr, name, level);
4562         }
4563 }
4564
4565 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)
4566 {
4567         if (ndr_flags & NDR_SCALARS) {
4568                 int level = ndr_push_get_switch_value(ndr, r);
4569                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
4570                 switch (level) {
4571                         case NETR_DELTA_DOMAIN:
4572                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4573                         break;
4574
4575                         case NETR_DELTA_GROUP:
4576                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4577                         break;
4578
4579                         case NETR_DELTA_DELETE_GROUP:
4580                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4581                         break;
4582
4583                         case NETR_DELTA_RENAME_GROUP:
4584                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4585                         break;
4586
4587                         case NETR_DELTA_USER:
4588                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4589                         break;
4590
4591                         case NETR_DELTA_DELETE_USER:
4592                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4593                         break;
4594
4595                         case NETR_DELTA_RENAME_USER:
4596                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4597                         break;
4598
4599                         case NETR_DELTA_GROUP_MEMBER:
4600                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4601                         break;
4602
4603                         case NETR_DELTA_ALIAS:
4604                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4605                         break;
4606
4607                         case NETR_DELTA_DELETE_ALIAS:
4608                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4609                         break;
4610
4611                         case NETR_DELTA_RENAME_ALIAS:
4612                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4613                         break;
4614
4615                         case NETR_DELTA_ALIAS_MEMBER:
4616                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4617                         break;
4618
4619                         case NETR_DELTA_POLICY:
4620                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4621                         break;
4622
4623                         case NETR_DELTA_TRUSTED_DOMAIN:
4624                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4625                         break;
4626
4627                         case NETR_DELTA_DELETE_TRUST:
4628                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4629                         break;
4630
4631                         case NETR_DELTA_ACCOUNT:
4632                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4633                         break;
4634
4635                         case NETR_DELTA_DELETE_ACCOUNT:
4636                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4637                         break;
4638
4639                         case NETR_DELTA_SECRET:
4640                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4641                         break;
4642
4643                         case NETR_DELTA_DELETE_SECRET:
4644                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4645                         break;
4646
4647                         case NETR_DELTA_DELETE_GROUP2:
4648                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4649                         break;
4650
4651                         case NETR_DELTA_DELETE_USER2:
4652                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4653                         break;
4654
4655                         case NETR_DELTA_MODIFY_COUNT:
4656                         break;
4657
4658                         default:
4659                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4660                 }
4661         }
4662         if (ndr_flags & NDR_BUFFERS) {
4663                 int level = ndr_push_get_switch_value(ndr, r);
4664                 switch (level) {
4665                         case NETR_DELTA_DOMAIN:
4666                         break;
4667
4668                         case NETR_DELTA_GROUP:
4669                         break;
4670
4671                         case NETR_DELTA_DELETE_GROUP:
4672                         break;
4673
4674                         case NETR_DELTA_RENAME_GROUP:
4675                         break;
4676
4677                         case NETR_DELTA_USER:
4678                         break;
4679
4680                         case NETR_DELTA_DELETE_USER:
4681                         break;
4682
4683                         case NETR_DELTA_RENAME_USER:
4684                         break;
4685
4686                         case NETR_DELTA_GROUP_MEMBER:
4687                         break;
4688
4689                         case NETR_DELTA_ALIAS:
4690                         break;
4691
4692                         case NETR_DELTA_DELETE_ALIAS:
4693                         break;
4694
4695                         case NETR_DELTA_RENAME_ALIAS:
4696                         break;
4697
4698                         case NETR_DELTA_ALIAS_MEMBER:
4699                         break;
4700
4701                         case NETR_DELTA_POLICY:
4702                                 if (r->sid) {
4703                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4704                                 }
4705                         break;
4706
4707                         case NETR_DELTA_TRUSTED_DOMAIN:
4708                                 if (r->sid) {
4709                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4710                                 }
4711                         break;
4712
4713                         case NETR_DELTA_DELETE_TRUST:
4714                                 if (r->sid) {
4715                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4716                                 }
4717                         break;
4718
4719                         case NETR_DELTA_ACCOUNT:
4720                                 if (r->sid) {
4721                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4722                                 }
4723                         break;
4724
4725                         case NETR_DELTA_DELETE_ACCOUNT:
4726                                 if (r->sid) {
4727                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4728                                 }
4729                         break;
4730
4731                         case NETR_DELTA_SECRET:
4732                                 if (r->name) {
4733                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4734                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4735                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4736                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4737                                 }
4738                         break;
4739
4740                         case NETR_DELTA_DELETE_SECRET:
4741                                 if (r->name) {
4742                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4743                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4744                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4745                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4746                                 }
4747                         break;
4748
4749                         case NETR_DELTA_DELETE_GROUP2:
4750                         break;
4751
4752                         case NETR_DELTA_DELETE_USER2:
4753                         break;
4754
4755                         case NETR_DELTA_MODIFY_COUNT:
4756                         break;
4757
4758                         default:
4759                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4760                 }
4761         }
4762         return NDR_ERR_SUCCESS;
4763 }
4764
4765 static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_ID_UNION *r)
4766 {
4767         int level;
4768         uint16_t _level;
4769         TALLOC_CTX *_mem_save_sid_0;
4770         TALLOC_CTX *_mem_save_name_0;
4771         level = ndr_pull_get_switch_value(ndr, r);
4772         if (ndr_flags & NDR_SCALARS) {
4773                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4774                 if (_level != level) {
4775                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4776                 }
4777                 switch (level) {
4778                         case NETR_DELTA_DOMAIN: {
4779                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4780                         break; }
4781
4782                         case NETR_DELTA_GROUP: {
4783                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4784                         break; }
4785
4786                         case NETR_DELTA_DELETE_GROUP: {
4787                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4788                         break; }
4789
4790                         case NETR_DELTA_RENAME_GROUP: {
4791                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4792                         break; }
4793
4794                         case NETR_DELTA_USER: {
4795                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4796                         break; }
4797
4798                         case NETR_DELTA_DELETE_USER: {
4799                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4800                         break; }
4801
4802                         case NETR_DELTA_RENAME_USER: {
4803                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4804                         break; }
4805
4806                         case NETR_DELTA_GROUP_MEMBER: {
4807                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4808                         break; }
4809
4810                         case NETR_DELTA_ALIAS: {
4811                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4812                         break; }
4813
4814                         case NETR_DELTA_DELETE_ALIAS: {
4815                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4816                         break; }
4817
4818                         case NETR_DELTA_RENAME_ALIAS: {
4819                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4820                         break; }
4821
4822                         case NETR_DELTA_ALIAS_MEMBER: {
4823                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4824                         break; }
4825
4826                         case NETR_DELTA_POLICY: {
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_TRUSTED_DOMAIN: {
4837                                 uint32_t _ptr_sid;
4838                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4839                                 if (_ptr_sid) {
4840                                         NDR_PULL_ALLOC(ndr, r->sid);
4841                                 } else {
4842                                         r->sid = NULL;
4843                                 }
4844                         break; }
4845
4846                         case NETR_DELTA_DELETE_TRUST: {
4847                                 uint32_t _ptr_sid;
4848                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4849                                 if (_ptr_sid) {
4850                                         NDR_PULL_ALLOC(ndr, r->sid);
4851                                 } else {
4852                                         r->sid = NULL;
4853                                 }
4854                         break; }
4855
4856                         case NETR_DELTA_ACCOUNT: {
4857                                 uint32_t _ptr_sid;
4858                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4859                                 if (_ptr_sid) {
4860                                         NDR_PULL_ALLOC(ndr, r->sid);
4861                                 } else {
4862                                         r->sid = NULL;
4863                                 }
4864                         break; }
4865
4866                         case NETR_DELTA_DELETE_ACCOUNT: {
4867                                 uint32_t _ptr_sid;
4868                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4869                                 if (_ptr_sid) {
4870                                         NDR_PULL_ALLOC(ndr, r->sid);
4871                                 } else {
4872                                         r->sid = NULL;
4873                                 }
4874                         break; }
4875
4876                         case NETR_DELTA_SECRET: {
4877                                 uint32_t _ptr_name;
4878                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4879                                 if (_ptr_name) {
4880                                         NDR_PULL_ALLOC(ndr, r->name);
4881                                 } else {
4882                                         r->name = NULL;
4883                                 }
4884                         break; }
4885
4886                         case NETR_DELTA_DELETE_SECRET: {
4887                                 uint32_t _ptr_name;
4888                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4889                                 if (_ptr_name) {
4890                                         NDR_PULL_ALLOC(ndr, r->name);
4891                                 } else {
4892                                         r->name = NULL;
4893                                 }
4894                         break; }
4895
4896                         case NETR_DELTA_DELETE_GROUP2: {
4897                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4898                         break; }
4899
4900                         case NETR_DELTA_DELETE_USER2: {
4901                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4902                         break; }
4903
4904                         case NETR_DELTA_MODIFY_COUNT: {
4905                         break; }
4906
4907                         default:
4908                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4909                 }
4910         }
4911         if (ndr_flags & NDR_BUFFERS) {
4912                 switch (level) {
4913                         case NETR_DELTA_DOMAIN:
4914                         break;
4915
4916                         case NETR_DELTA_GROUP:
4917                         break;
4918
4919                         case NETR_DELTA_DELETE_GROUP:
4920                         break;
4921
4922                         case NETR_DELTA_RENAME_GROUP:
4923                         break;
4924
4925                         case NETR_DELTA_USER:
4926                         break;
4927
4928                         case NETR_DELTA_DELETE_USER:
4929                         break;
4930
4931                         case NETR_DELTA_RENAME_USER:
4932                         break;
4933
4934                         case NETR_DELTA_GROUP_MEMBER:
4935                         break;
4936
4937                         case NETR_DELTA_ALIAS:
4938                         break;
4939
4940                         case NETR_DELTA_DELETE_ALIAS:
4941                         break;
4942
4943                         case NETR_DELTA_RENAME_ALIAS:
4944                         break;
4945
4946                         case NETR_DELTA_ALIAS_MEMBER:
4947                         break;
4948
4949                         case NETR_DELTA_POLICY:
4950                                 if (r->sid) {
4951                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4952                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4953                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4954                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4955                                 }
4956                         break;
4957
4958                         case NETR_DELTA_TRUSTED_DOMAIN:
4959                                 if (r->sid) {
4960                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4961                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4962                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4963                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4964                                 }
4965                         break;
4966
4967                         case NETR_DELTA_DELETE_TRUST:
4968                                 if (r->sid) {
4969                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4970                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4971                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4972                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4973                                 }
4974                         break;
4975
4976                         case NETR_DELTA_ACCOUNT:
4977                                 if (r->sid) {
4978                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4979                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4980                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4981                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4982                                 }
4983                         break;
4984
4985                         case NETR_DELTA_DELETE_ACCOUNT:
4986                                 if (r->sid) {
4987                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4988                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4989                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4990                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4991                                 }
4992                         break;
4993
4994                         case NETR_DELTA_SECRET:
4995                                 if (r->name) {
4996                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4997                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
4998                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
4999                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5000                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5001                                                 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));
5002                                         }
5003                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5004                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5005                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5006                                 }
5007                         break;
5008
5009                         case NETR_DELTA_DELETE_SECRET:
5010                                 if (r->name) {
5011                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5012                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5013                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5014                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5015                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5016                                                 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));
5017                                         }
5018                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5019                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5020                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5021                                 }
5022                         break;
5023
5024                         case NETR_DELTA_DELETE_GROUP2:
5025                         break;
5026
5027                         case NETR_DELTA_DELETE_USER2:
5028                         break;
5029
5030                         case NETR_DELTA_MODIFY_COUNT:
5031                         break;
5032
5033                         default:
5034                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5035                 }
5036         }
5037         return NDR_ERR_SUCCESS;
5038 }
5039
5040 _PUBLIC_ void ndr_print_netr_DELTA_ID_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_ID_UNION *r)
5041 {
5042         int level;
5043         level = ndr_print_get_switch_value(ndr, r);
5044         ndr_print_union(ndr, name, level, "netr_DELTA_ID_UNION");
5045         switch (level) {
5046                 case NETR_DELTA_DOMAIN:
5047                         ndr_print_uint32(ndr, "rid", r->rid);
5048                 break;
5049
5050                 case NETR_DELTA_GROUP:
5051                         ndr_print_uint32(ndr, "rid", r->rid);
5052                 break;
5053
5054                 case NETR_DELTA_DELETE_GROUP:
5055                         ndr_print_uint32(ndr, "rid", r->rid);
5056                 break;
5057
5058                 case NETR_DELTA_RENAME_GROUP:
5059                         ndr_print_uint32(ndr, "rid", r->rid);
5060                 break;
5061
5062                 case NETR_DELTA_USER:
5063                         ndr_print_uint32(ndr, "rid", r->rid);
5064                 break;
5065
5066                 case NETR_DELTA_DELETE_USER:
5067                         ndr_print_uint32(ndr, "rid", r->rid);
5068                 break;
5069
5070                 case NETR_DELTA_RENAME_USER:
5071                         ndr_print_uint32(ndr, "rid", r->rid);
5072                 break;
5073
5074                 case NETR_DELTA_GROUP_MEMBER:
5075                         ndr_print_uint32(ndr, "rid", r->rid);
5076                 break;
5077
5078                 case NETR_DELTA_ALIAS:
5079                         ndr_print_uint32(ndr, "rid", r->rid);
5080                 break;
5081
5082                 case NETR_DELTA_DELETE_ALIAS:
5083                         ndr_print_uint32(ndr, "rid", r->rid);
5084                 break;
5085
5086                 case NETR_DELTA_RENAME_ALIAS:
5087                         ndr_print_uint32(ndr, "rid", r->rid);
5088                 break;
5089
5090                 case NETR_DELTA_ALIAS_MEMBER:
5091                         ndr_print_uint32(ndr, "rid", r->rid);
5092                 break;
5093
5094                 case NETR_DELTA_POLICY:
5095                         ndr_print_ptr(ndr, "sid", r->sid);
5096                         ndr->depth++;
5097                         if (r->sid) {
5098                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5099                         }
5100                         ndr->depth--;
5101                 break;
5102
5103                 case NETR_DELTA_TRUSTED_DOMAIN:
5104                         ndr_print_ptr(ndr, "sid", r->sid);
5105                         ndr->depth++;
5106                         if (r->sid) {
5107                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5108                         }
5109                         ndr->depth--;
5110                 break;
5111
5112                 case NETR_DELTA_DELETE_TRUST:
5113                         ndr_print_ptr(ndr, "sid", r->sid);
5114                         ndr->depth++;
5115                         if (r->sid) {
5116                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5117                         }
5118                         ndr->depth--;
5119                 break;
5120
5121                 case NETR_DELTA_ACCOUNT:
5122                         ndr_print_ptr(ndr, "sid", r->sid);
5123                         ndr->depth++;
5124                         if (r->sid) {
5125                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5126                         }
5127                         ndr->depth--;
5128                 break;
5129
5130                 case NETR_DELTA_DELETE_ACCOUNT:
5131                         ndr_print_ptr(ndr, "sid", r->sid);
5132                         ndr->depth++;
5133                         if (r->sid) {
5134                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5135                         }
5136                         ndr->depth--;
5137                 break;
5138
5139                 case NETR_DELTA_SECRET:
5140                         ndr_print_ptr(ndr, "name", r->name);
5141                         ndr->depth++;
5142                         if (r->name) {
5143                                 ndr_print_string(ndr, "name", r->name);
5144                         }
5145                         ndr->depth--;
5146                 break;
5147
5148                 case NETR_DELTA_DELETE_SECRET:
5149                         ndr_print_ptr(ndr, "name", r->name);
5150                         ndr->depth++;
5151                         if (r->name) {
5152                                 ndr_print_string(ndr, "name", r->name);
5153                         }
5154                         ndr->depth--;
5155                 break;
5156
5157                 case NETR_DELTA_DELETE_GROUP2:
5158                         ndr_print_uint32(ndr, "rid", r->rid);
5159                 break;
5160
5161                 case NETR_DELTA_DELETE_USER2:
5162                         ndr_print_uint32(ndr, "rid", r->rid);
5163                 break;
5164
5165                 case NETR_DELTA_MODIFY_COUNT:
5166                 break;
5167
5168                 default:
5169                         ndr_print_bad_level(ndr, name, level);
5170         }
5171 }
5172
5173 static enum ndr_err_code ndr_push_netr_DELTA_ENUM(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM *r)
5174 {
5175         if (ndr_flags & NDR_SCALARS) {
5176                 NDR_CHECK(ndr_push_align(ndr, 4));
5177                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, r->delta_type));
5178                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5179                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5180                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_union, r->delta_type));
5181                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5182         }
5183         if (ndr_flags & NDR_BUFFERS) {
5184                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5185                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5186         }
5187         return NDR_ERR_SUCCESS;
5188 }
5189
5190 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM *r)
5191 {
5192         if (ndr_flags & NDR_SCALARS) {
5193                 NDR_CHECK(ndr_pull_align(ndr, 4));
5194                 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr, NDR_SCALARS, &r->delta_type));
5195                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5196                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5197                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_union, r->delta_type));
5198                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5199         }
5200         if (ndr_flags & NDR_BUFFERS) {
5201                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5202                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5203         }
5204         return NDR_ERR_SUCCESS;
5205 }
5206
5207 _PUBLIC_ void ndr_print_netr_DELTA_ENUM(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM *r)
5208 {
5209         ndr_print_struct(ndr, name, "netr_DELTA_ENUM");
5210         ndr->depth++;
5211         ndr_print_netr_DeltaEnum(ndr, "delta_type", r->delta_type);
5212         ndr_print_set_switch_value(ndr, &r->delta_id_union, r->delta_type);
5213         ndr_print_netr_DELTA_ID_UNION(ndr, "delta_id_union", &r->delta_id_union);
5214         ndr_print_set_switch_value(ndr, &r->delta_union, r->delta_type);
5215         ndr_print_netr_DELTA_UNION(ndr, "delta_union", &r->delta_union);
5216         ndr->depth--;
5217 }
5218
5219 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)
5220 {
5221         uint32_t cntr_delta_enum_1;
5222         if (ndr_flags & NDR_SCALARS) {
5223                 NDR_CHECK(ndr_push_align(ndr, 4));
5224                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5225                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delta_enum));
5226         }
5227         if (ndr_flags & NDR_BUFFERS) {
5228                 if (r->delta_enum) {
5229                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5230                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5231                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5232                         }
5233                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5234                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5235                         }
5236                 }
5237         }
5238         return NDR_ERR_SUCCESS;
5239 }
5240
5241 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r)
5242 {
5243         uint32_t _ptr_delta_enum;
5244         uint32_t cntr_delta_enum_1;
5245         TALLOC_CTX *_mem_save_delta_enum_0;
5246         TALLOC_CTX *_mem_save_delta_enum_1;
5247         if (ndr_flags & NDR_SCALARS) {
5248                 NDR_CHECK(ndr_pull_align(ndr, 4));
5249                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_deltas));
5250                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum));
5251                 if (_ptr_delta_enum) {
5252                         NDR_PULL_ALLOC(ndr, r->delta_enum);
5253                 } else {
5254                         r->delta_enum = NULL;
5255                 }
5256         }
5257         if (ndr_flags & NDR_BUFFERS) {
5258                 if (r->delta_enum) {
5259                         _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr);
5260                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5261                         NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum));
5262                         NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum));
5263                         _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr);
5264                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5265                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5266                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5267                         }
5268                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5269                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5270                         }
5271                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0);
5272                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_0, 0);
5273                 }
5274                 if (r->delta_enum) {
5275                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delta_enum, r->num_deltas));
5276                 }
5277         }
5278         return NDR_ERR_SUCCESS;
5279 }
5280
5281 _PUBLIC_ void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM_ARRAY *r)
5282 {
5283         uint32_t cntr_delta_enum_1;
5284         ndr_print_struct(ndr, name, "netr_DELTA_ENUM_ARRAY");
5285         ndr->depth++;
5286         ndr_print_uint32(ndr, "num_deltas", r->num_deltas);
5287         ndr_print_ptr(ndr, "delta_enum", r->delta_enum);
5288         ndr->depth++;
5289         if (r->delta_enum) {
5290                 ndr->print(ndr, "%s: ARRAY(%d)", "delta_enum", r->num_deltas);
5291                 ndr->depth++;
5292                 for (cntr_delta_enum_1=0;cntr_delta_enum_1<r->num_deltas;cntr_delta_enum_1++) {
5293                         char *idx_1=NULL;
5294                         asprintf(&idx_1, "[%d]", cntr_delta_enum_1);
5295                         if (idx_1) {
5296                                 ndr_print_netr_DELTA_ENUM(ndr, "delta_enum", &r->delta_enum[cntr_delta_enum_1]);
5297                                 free(idx_1);
5298                         }
5299                 }
5300                 ndr->depth--;
5301         }
5302         ndr->depth--;
5303         ndr->depth--;
5304 }
5305
5306 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)
5307 {
5308         {
5309                 uint32_t _flags_save_STRUCT = ndr->flags;
5310                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5311                 if (ndr_flags & NDR_SCALARS) {
5312                         NDR_CHECK(ndr_push_align(ndr, 4));
5313                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5314                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timecreated));
5315                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number));
5316                 }
5317                 if (ndr_flags & NDR_BUFFERS) {
5318                 }
5319                 ndr->flags = _flags_save_STRUCT;
5320         }
5321         return NDR_ERR_SUCCESS;
5322 }
5323
5324 static enum ndr_err_code ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r)
5325 {
5326         {
5327                 uint32_t _flags_save_STRUCT = ndr->flags;
5328                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5329                 if (ndr_flags & NDR_SCALARS) {
5330                         NDR_CHECK(ndr_pull_align(ndr, 4));
5331                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5332                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated));
5333                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number));
5334                 }
5335                 if (ndr_flags & NDR_BUFFERS) {
5336                 }
5337                 ndr->flags = _flags_save_STRUCT;
5338         }
5339         return NDR_ERR_SUCCESS;
5340 }
5341
5342 _PUBLIC_ void ndr_print_netr_UAS_INFO_0(struct ndr_print *ndr, const char *name, const struct netr_UAS_INFO_0 *r)
5343 {
5344         ndr_print_struct(ndr, name, "netr_UAS_INFO_0");
5345         {
5346                 uint32_t _flags_save_STRUCT = ndr->flags;
5347                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5348                 ndr->depth++;
5349                 ndr_print_array_uint8(ndr, "computer_name", r->computer_name, 16);
5350                 ndr_print_uint32(ndr, "timecreated", r->timecreated);
5351                 ndr_print_uint32(ndr, "serial_number", r->serial_number);
5352                 ndr->depth--;
5353                 ndr->flags = _flags_save_STRUCT;
5354         }
5355 }
5356
5357 static enum ndr_err_code ndr_push_netr_AccountBuffer(struct ndr_push *ndr, int ndr_flags, const struct netr_AccountBuffer *r)
5358 {
5359         if (ndr_flags & NDR_SCALARS) {
5360                 NDR_CHECK(ndr_push_align(ndr, 4));
5361                 {
5362                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5363                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5364                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
5365                         ndr->flags = _flags_save_DATA_BLOB;
5366                 }
5367         }
5368         if (ndr_flags & NDR_BUFFERS) {
5369         }
5370         return NDR_ERR_SUCCESS;
5371 }
5372
5373 static enum ndr_err_code ndr_pull_netr_AccountBuffer(struct ndr_pull *ndr, int ndr_flags, struct netr_AccountBuffer *r)
5374 {
5375         if (ndr_flags & NDR_SCALARS) {
5376                 NDR_CHECK(ndr_pull_align(ndr, 4));
5377                 {
5378                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5379                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5380                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
5381                         ndr->flags = _flags_save_DATA_BLOB;
5382                 }
5383         }
5384         if (ndr_flags & NDR_BUFFERS) {
5385         }
5386         return NDR_ERR_SUCCESS;
5387 }
5388
5389 _PUBLIC_ void ndr_print_netr_AccountBuffer(struct ndr_print *ndr, const char *name, const struct netr_AccountBuffer *r)
5390 {
5391         ndr_print_struct(ndr, name, "netr_AccountBuffer");
5392         ndr->depth++;
5393         ndr_print_DATA_BLOB(ndr, "blob", r->blob);
5394         ndr->depth--;
5395 }
5396
5397 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)
5398 {
5399         if (ndr_flags & NDR_SCALARS) {
5400                 NDR_CHECK(ndr_push_align(ndr, 4));
5401                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
5402                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5403         }
5404         if (ndr_flags & NDR_BUFFERS) {
5405         }
5406         return NDR_ERR_SUCCESS;
5407 }
5408
5409 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_1 *r)
5410 {
5411         if (ndr_flags & NDR_SCALARS) {
5412                 NDR_CHECK(ndr_pull_align(ndr, 4));
5413                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
5414                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5415         }
5416         if (ndr_flags & NDR_BUFFERS) {
5417         }
5418         return NDR_ERR_SUCCESS;
5419 }
5420
5421 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_1 *r)
5422 {
5423         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_1");
5424         ndr->depth++;
5425         ndr_print_uint32(ndr, "flags", r->flags);
5426         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5427         ndr->depth--;
5428 }
5429
5430 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)
5431 {
5432         if (ndr_flags & NDR_SCALARS) {
5433                 NDR_CHECK(ndr_push_align(ndr, 4));
5434                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
5435                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5436                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5437                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5438                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5439                 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));
5440                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->tc_connection_status));
5441         }
5442         if (ndr_flags & NDR_BUFFERS) {
5443         }
5444         return NDR_ERR_SUCCESS;
5445 }
5446
5447 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r)
5448 {
5449         if (ndr_flags & NDR_SCALARS) {
5450                 NDR_CHECK(ndr_pull_align(ndr, 4));
5451                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
5452                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
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_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->tc_connection_status));
5461         }
5462         if (ndr_flags & NDR_BUFFERS) {
5463         }
5464         return NDR_ERR_SUCCESS;
5465 }
5466
5467 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_2 *r)
5468 {
5469         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_2");
5470         ndr->depth++;
5471         ndr_print_uint32(ndr, "flags", r->flags);
5472         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5473         ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5474         ndr_print_uint32(ndr, "tc_connection_status", r->tc_connection_status);
5475         ndr->depth--;
5476 }
5477
5478 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)
5479 {
5480         if (ndr_flags & NDR_SCALARS) {
5481                 NDR_CHECK(ndr_push_align(ndr, 4));
5482                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
5483                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_attempts));
5484                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
5485                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
5486                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
5487                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
5488                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
5489         }
5490         if (ndr_flags & NDR_BUFFERS) {
5491         }
5492         return NDR_ERR_SUCCESS;
5493 }
5494
5495 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_3 *r)
5496 {
5497         if (ndr_flags & NDR_SCALARS) {
5498                 NDR_CHECK(ndr_pull_align(ndr, 4));
5499                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
5500                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_attempts));
5501                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
5502                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
5503                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
5504                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
5505                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
5506         }
5507         if (ndr_flags & NDR_BUFFERS) {
5508         }
5509         return NDR_ERR_SUCCESS;
5510 }
5511
5512 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_3 *r)
5513 {
5514         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_3");
5515         ndr->depth++;
5516         ndr_print_uint32(ndr, "flags", r->flags);
5517         ndr_print_uint32(ndr, "logon_attempts", r->logon_attempts);
5518         ndr_print_uint32(ndr, "unknown1", r->unknown1);
5519         ndr_print_uint32(ndr, "unknown2", r->unknown2);
5520         ndr_print_uint32(ndr, "unknown3", r->unknown3);
5521         ndr_print_uint32(ndr, "unknown4", r->unknown4);
5522         ndr_print_uint32(ndr, "unknown5", r->unknown5);
5523         ndr->depth--;
5524 }
5525
5526 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)
5527 {
5528         if (ndr_flags & NDR_SCALARS) {
5529                 int level = ndr_push_get_switch_value(ndr, r);
5530                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5531                 switch (level) {
5532                         case 1:
5533                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5534                         break;
5535
5536                         case 2:
5537                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5538                         break;
5539
5540                         case 3:
5541                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5542                         break;
5543
5544                         default:
5545                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5546                 }
5547         }
5548         if (ndr_flags & NDR_BUFFERS) {
5549                 int level = ndr_push_get_switch_value(ndr, r);
5550                 switch (level) {
5551                         case 1:
5552                                 if (r->info1) {
5553                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5554                                 }
5555                         break;
5556
5557                         case 2:
5558                                 if (r->info2) {
5559                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS, r->info2));
5560                                 }
5561                         break;
5562
5563                         case 3:
5564                                 if (r->info3) {
5565                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5566                                 }
5567                         break;
5568
5569                         default:
5570                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5571                 }
5572         }
5573         return NDR_ERR_SUCCESS;
5574 }
5575
5576 static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_QUERY_INFORMATION *r)
5577 {
5578         int level;
5579         uint32_t _level;
5580         TALLOC_CTX *_mem_save_info1_0;
5581         TALLOC_CTX *_mem_save_info2_0;
5582         TALLOC_CTX *_mem_save_info3_0;
5583         level = ndr_pull_get_switch_value(ndr, r);
5584         if (ndr_flags & NDR_SCALARS) {
5585                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5586                 if (_level != level) {
5587                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5588                 }
5589                 switch (level) {
5590                         case 1: {
5591                                 uint32_t _ptr_info1;
5592                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5593                                 if (_ptr_info1) {
5594                                         NDR_PULL_ALLOC(ndr, r->info1);
5595                                 } else {
5596                                         r->info1 = NULL;
5597                                 }
5598                         break; }
5599
5600                         case 2: {
5601                                 uint32_t _ptr_info2;
5602                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5603                                 if (_ptr_info2) {
5604                                         NDR_PULL_ALLOC(ndr, r->info2);
5605                                 } else {
5606                                         r->info2 = NULL;
5607                                 }
5608                         break; }
5609
5610                         case 3: {
5611                                 uint32_t _ptr_info3;
5612                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5613                                 if (_ptr_info3) {
5614                                         NDR_PULL_ALLOC(ndr, r->info3);
5615                                 } else {
5616                                         r->info3 = NULL;
5617                                 }
5618                         break; }
5619
5620                         default:
5621                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5622                 }
5623         }
5624         if (ndr_flags & NDR_BUFFERS) {
5625                 switch (level) {
5626                         case 1:
5627                                 if (r->info1) {
5628                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5629                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5630                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5631                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5632                                 }
5633                         break;
5634
5635                         case 2:
5636                                 if (r->info2) {
5637                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5638                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5639                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS, r->info2));
5640                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5641                                 }
5642                         break;
5643
5644                         case 3:
5645                                 if (r->info3) {
5646                                         _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5647                                         NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5648                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5649                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5650                                 }
5651                         break;
5652
5653                         default:
5654                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5655                 }
5656         }
5657         return NDR_ERR_SUCCESS;
5658 }
5659
5660 _PUBLIC_ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_QUERY_INFORMATION *r)
5661 {
5662         int level;
5663         level = ndr_print_get_switch_value(ndr, r);
5664         ndr_print_union(ndr, name, level, "netr_CONTROL_QUERY_INFORMATION");
5665         switch (level) {
5666                 case 1:
5667                         ndr_print_ptr(ndr, "info1", r->info1);
5668                         ndr->depth++;
5669                         if (r->info1) {
5670                                 ndr_print_netr_NETLOGON_INFO_1(ndr, "info1", r->info1);
5671                         }
5672                         ndr->depth--;
5673                 break;
5674
5675                 case 2:
5676                         ndr_print_ptr(ndr, "info2", r->info2);
5677                         ndr->depth++;
5678                         if (r->info2) {
5679                                 ndr_print_netr_NETLOGON_INFO_2(ndr, "info2", r->info2);
5680                         }
5681                         ndr->depth--;
5682                 break;
5683
5684                 case 3:
5685                         ndr_print_ptr(ndr, "info3", r->info3);
5686                         ndr->depth++;
5687                         if (r->info3) {
5688                                 ndr_print_netr_NETLOGON_INFO_3(ndr, "info3", r->info3);
5689                         }
5690                         ndr->depth--;
5691                 break;
5692
5693                 default:
5694                         ndr_print_bad_level(ndr, name, level);
5695         }
5696 }
5697
5698 static enum ndr_err_code ndr_push_netr_LogonControlCode(struct ndr_push *ndr, int ndr_flags, enum netr_LogonControlCode r)
5699 {
5700         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5701         return NDR_ERR_SUCCESS;
5702 }
5703
5704 static enum ndr_err_code ndr_pull_netr_LogonControlCode(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonControlCode *r)
5705 {
5706         uint32_t v;
5707         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5708         *r = v;
5709         return NDR_ERR_SUCCESS;
5710 }
5711
5712 _PUBLIC_ void ndr_print_netr_LogonControlCode(struct ndr_print *ndr, const char *name, enum netr_LogonControlCode r)
5713 {
5714         const char *val = NULL;
5715
5716         switch (r) {
5717                 case NETLOGON_CONTROL_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break;
5718                 case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break;
5719                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
5720                 case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break;
5721         }
5722         ndr_print_enum(ndr, name, "ENUM", val, r);
5723 }
5724
5725 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)
5726 {
5727         if (ndr_flags & NDR_SCALARS) {
5728                 int level = ndr_push_get_switch_value(ndr, r);
5729                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5730                 switch (level) {
5731                         case NETLOGON_CONTROL_REDISCOVER:
5732                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5733                         break;
5734
5735                         case NETLOGON_CONTROL_TC_QUERY:
5736                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5737                         break;
5738
5739                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5740                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5741                         break;
5742
5743                         case NETLOGON_CONTROL_SET_DBFLAG:
5744                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level));
5745                         break;
5746
5747                         default:
5748                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5749                 }
5750         }
5751         if (ndr_flags & NDR_BUFFERS) {
5752                 int level = ndr_push_get_switch_value(ndr, r);
5753                 switch (level) {
5754                         case NETLOGON_CONTROL_REDISCOVER:
5755                                 if (r->domain) {
5756                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5757                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5758                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5759                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5760                                 }
5761                         break;
5762
5763                         case NETLOGON_CONTROL_TC_QUERY:
5764                                 if (r->domain) {
5765                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5766                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5767                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5768                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5769                                 }
5770                         break;
5771
5772                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5773                                 if (r->domain) {
5774                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5775                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5776                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5777                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5778                                 }
5779                         break;
5780
5781                         case NETLOGON_CONTROL_SET_DBFLAG:
5782                         break;
5783
5784                         default:
5785                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5786                 }
5787         }
5788         return NDR_ERR_SUCCESS;
5789 }
5790
5791 static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r)
5792 {
5793         int level;
5794         uint32_t _level;
5795         TALLOC_CTX *_mem_save_domain_0;
5796         level = ndr_pull_get_switch_value(ndr, r);
5797         if (ndr_flags & NDR_SCALARS) {
5798                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5799                 if (_level != level) {
5800                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5801                 }
5802                 switch (level) {
5803                         case NETLOGON_CONTROL_REDISCOVER: {
5804                                 uint32_t _ptr_domain;
5805                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5806                                 if (_ptr_domain) {
5807                                         NDR_PULL_ALLOC(ndr, r->domain);
5808                                 } else {
5809                                         r->domain = NULL;
5810                                 }
5811                         break; }
5812
5813                         case NETLOGON_CONTROL_TC_QUERY: {
5814                                 uint32_t _ptr_domain;
5815                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5816                                 if (_ptr_domain) {
5817                                         NDR_PULL_ALLOC(ndr, r->domain);
5818                                 } else {
5819                                         r->domain = NULL;
5820                                 }
5821                         break; }
5822
5823                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5824                                 uint32_t _ptr_domain;
5825                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5826                                 if (_ptr_domain) {
5827                                         NDR_PULL_ALLOC(ndr, r->domain);
5828                                 } else {
5829                                         r->domain = NULL;
5830                                 }
5831                         break; }
5832
5833                         case NETLOGON_CONTROL_SET_DBFLAG: {
5834                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level));
5835                         break; }
5836
5837                         default:
5838                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5839                 }
5840         }
5841         if (ndr_flags & NDR_BUFFERS) {
5842                 switch (level) {
5843                         case NETLOGON_CONTROL_REDISCOVER:
5844                                 if (r->domain) {
5845                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5846                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5847                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5848                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5849                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5850                                                 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));
5851                                         }
5852                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5853                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5854                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5855                                 }
5856                         break;
5857
5858                         case NETLOGON_CONTROL_TC_QUERY:
5859                                 if (r->domain) {
5860                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5861                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5862                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5863                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5864                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5865                                                 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));
5866                                         }
5867                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5868                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5869                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5870                                 }
5871                         break;
5872
5873                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5874                                 if (r->domain) {
5875                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5876                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5877                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5878                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5879                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5880                                                 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));
5881                                         }
5882                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5883                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5884                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5885                                 }
5886                         break;
5887
5888                         case NETLOGON_CONTROL_SET_DBFLAG:
5889                         break;
5890
5891                         default:
5892                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5893                 }
5894         }
5895         return NDR_ERR_SUCCESS;
5896 }
5897
5898 _PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r)
5899 {
5900         int level;
5901         level = ndr_print_get_switch_value(ndr, r);
5902         ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION");
5903         switch (level) {
5904                 case NETLOGON_CONTROL_REDISCOVER:
5905                         ndr_print_ptr(ndr, "domain", r->domain);
5906                         ndr->depth++;
5907                         if (r->domain) {
5908                                 ndr_print_string(ndr, "domain", r->domain);
5909                         }
5910                         ndr->depth--;
5911                 break;
5912
5913                 case NETLOGON_CONTROL_TC_QUERY:
5914                         ndr_print_ptr(ndr, "domain", r->domain);
5915                         ndr->depth++;
5916                         if (r->domain) {
5917                                 ndr_print_string(ndr, "domain", r->domain);
5918                         }
5919                         ndr->depth--;
5920                 break;
5921
5922                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5923                         ndr_print_ptr(ndr, "domain", r->domain);
5924                         ndr->depth++;
5925                         if (r->domain) {
5926                                 ndr_print_string(ndr, "domain", r->domain);
5927                         }
5928                         ndr->depth--;
5929                 break;
5930
5931                 case NETLOGON_CONTROL_SET_DBFLAG:
5932                         ndr_print_uint32(ndr, "debug_level", r->debug_level);
5933                 break;
5934
5935                 default:
5936                         ndr_print_bad_level(ndr, name, level);
5937         }
5938 }
5939
5940 static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
5941 {
5942         if (ndr_flags & NDR_SCALARS) {
5943                 NDR_CHECK(ndr_push_align(ndr, 4));
5944                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
5945                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
5946         }
5947         if (ndr_flags & NDR_BUFFERS) {
5948                 if (r->data) {
5949                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
5950                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
5951                 }
5952         }
5953         return NDR_ERR_SUCCESS;
5954 }
5955
5956 static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
5957 {
5958         uint32_t _ptr_data;
5959         TALLOC_CTX *_mem_save_data_0;
5960         if (ndr_flags & NDR_SCALARS) {
5961                 NDR_CHECK(ndr_pull_align(ndr, 4));
5962                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
5963                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
5964                 if (_ptr_data) {
5965                         NDR_PULL_ALLOC(ndr, r->data);
5966                 } else {
5967                         r->data = NULL;
5968                 }
5969         }
5970         if (ndr_flags & NDR_BUFFERS) {
5971                 if (r->data) {
5972                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
5973                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
5974                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
5975                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
5976                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
5977                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
5978                 }
5979                 if (r->data) {
5980                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
5981                 }
5982         }
5983         return NDR_ERR_SUCCESS;
5984 }
5985
5986 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
5987 {
5988         ndr_print_struct(ndr, name, "netr_Blob");
5989         ndr->depth++;
5990         ndr_print_uint32(ndr, "length", r->length);
5991         ndr_print_ptr(ndr, "data", r->data);
5992         ndr->depth++;
5993         if (r->data) {
5994                 ndr_print_array_uint8(ndr, "data", r->data, r->length);
5995         }
5996         ndr->depth--;
5997         ndr->depth--;
5998 }
5999
6000 static enum ndr_err_code ndr_push_netr_DsRGetDCName_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6001 {
6002         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6003         return NDR_ERR_SUCCESS;
6004 }
6005
6006 static enum ndr_err_code ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6007 {
6008         uint32_t v;
6009         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6010         *r = v;
6011         return NDR_ERR_SUCCESS;
6012 }
6013
6014 _PUBLIC_ void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char *name, uint32_t r)
6015 {
6016         ndr_print_uint32(ndr, name, r);
6017         ndr->depth++;
6018         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY, r);
6019         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED, r);
6020         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED, r);
6021         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED, r);
6022         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED, r);
6023         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY, r);
6024         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED, r);
6025         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED, r);
6026         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED, r);
6027         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED, r);
6028         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED, r);
6029         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF, r);
6030         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED, r);
6031         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME, r);
6032         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME, r);
6033         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME, r);
6034         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME, r);
6035         ndr->depth--;
6036 }
6037
6038 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType r)
6039 {
6040         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6041         return NDR_ERR_SUCCESS;
6042 }
6043
6044 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType *r)
6045 {
6046         uint32_t v;
6047         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6048         *r = v;
6049         return NDR_ERR_SUCCESS;
6050 }
6051
6052 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const char *name, enum netr_DsRGetDCNameInfo_AddressType r)
6053 {
6054         const char *val = NULL;
6055
6056         switch (r) {
6057                 case DS_ADDRESS_TYPE_INET: val = "DS_ADDRESS_TYPE_INET"; break;
6058                 case DS_ADDRESS_TYPE_NETBIOS: val = "DS_ADDRESS_TYPE_NETBIOS"; break;
6059         }
6060         ndr_print_enum(ndr, name, "ENUM", val, r);
6061 }
6062
6063 static enum ndr_err_code ndr_push_netr_DsR_DcFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6064 {
6065         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6066         return NDR_ERR_SUCCESS;
6067 }
6068
6069 static enum ndr_err_code ndr_pull_netr_DsR_DcFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6070 {
6071         uint32_t v;
6072         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6073         *r = v;
6074         return NDR_ERR_SUCCESS;
6075 }
6076
6077 _PUBLIC_ void ndr_print_netr_DsR_DcFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6078 {
6079         ndr_print_uint32(ndr, name, r);
6080         ndr->depth++;
6081         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC, r);
6082         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC, r);
6083         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP, r);
6084         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS, r);
6085         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC, r);
6086         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV, r);
6087         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST, r);
6088         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE, r);
6089         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV, r);
6090         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC, r);
6091         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER, r);
6092         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN, r);
6093         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST, r);
6094         ndr->depth--;
6095 }
6096
6097 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
6098 {
6099         if (ndr_flags & NDR_SCALARS) {
6100                 NDR_CHECK(ndr_push_align(ndr, 4));
6101                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
6102                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
6103                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, r->dc_address_type));
6104                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6105                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6106                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
6107                 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr, NDR_SCALARS, r->dc_flags));
6108                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
6109                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
6110         }
6111         if (ndr_flags & NDR_BUFFERS) {
6112                 if (r->dc_unc) {
6113                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6114                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6115                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6116                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6117                 }
6118                 if (r->dc_address) {
6119                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6120                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6121                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6122                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6123                 }
6124                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6125                 if (r->domain_name) {
6126                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6127                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6128                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6129                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6130                 }
6131                 if (r->forest_name) {
6132                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6133                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6134                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6135                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6136                 }
6137                 if (r->dc_site_name) {
6138                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6139                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6140                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6141                         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));
6142                 }
6143                 if (r->client_site_name) {
6144                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6145                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6146                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6147                         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));
6148                 }
6149         }
6150         return NDR_ERR_SUCCESS;
6151 }
6152
6153 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
6154 {
6155         uint32_t _ptr_dc_unc;
6156         TALLOC_CTX *_mem_save_dc_unc_0;
6157         uint32_t _ptr_dc_address;
6158         TALLOC_CTX *_mem_save_dc_address_0;
6159         uint32_t _ptr_domain_name;
6160         TALLOC_CTX *_mem_save_domain_name_0;
6161         uint32_t _ptr_forest_name;
6162         TALLOC_CTX *_mem_save_forest_name_0;
6163         uint32_t _ptr_dc_site_name;
6164         TALLOC_CTX *_mem_save_dc_site_name_0;
6165         uint32_t _ptr_client_site_name;
6166         TALLOC_CTX *_mem_save_client_site_name_0;
6167         if (ndr_flags & NDR_SCALARS) {
6168                 NDR_CHECK(ndr_pull_align(ndr, 4));
6169                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6170                 if (_ptr_dc_unc) {
6171                         NDR_PULL_ALLOC(ndr, r->dc_unc);
6172                 } else {
6173                         r->dc_unc = NULL;
6174                 }
6175                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6176                 if (_ptr_dc_address) {
6177                         NDR_PULL_ALLOC(ndr, r->dc_address);
6178                 } else {
6179                         r->dc_address = NULL;
6180                 }
6181                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, &r->dc_address_type));
6182                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6183                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6184                 if (_ptr_domain_name) {
6185                         NDR_PULL_ALLOC(ndr, r->domain_name);
6186                 } else {
6187                         r->domain_name = NULL;
6188                 }
6189                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
6190                 if (_ptr_forest_name) {
6191                         NDR_PULL_ALLOC(ndr, r->forest_name);
6192                 } else {
6193                         r->forest_name = NULL;
6194                 }
6195                 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr, NDR_SCALARS, &r->dc_flags));
6196                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
6197                 if (_ptr_dc_site_name) {
6198                         NDR_PULL_ALLOC(ndr, r->dc_site_name);
6199                 } else {
6200                         r->dc_site_name = NULL;
6201                 }
6202                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
6203                 if (_ptr_client_site_name) {
6204                         NDR_PULL_ALLOC(ndr, r->client_site_name);
6205                 } else {
6206                         r->client_site_name = NULL;
6207                 }
6208         }
6209         if (ndr_flags & NDR_BUFFERS) {
6210                 if (r->dc_unc) {
6211                         _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6212                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
6213                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
6214                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
6215                         if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
6216                                 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));
6217                         }
6218                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
6219                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
6220                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
6221                 }
6222                 if (r->dc_address) {
6223                         _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
6224                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
6225                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
6226                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
6227                         if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
6228                                 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));
6229                         }
6230                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
6231                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
6232                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
6233                 }
6234                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6235                 if (r->domain_name) {
6236                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6237                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6238                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6239                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6240                         if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
6241                                 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));
6242                         }
6243                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
6244                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
6245                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6246                 }
6247                 if (r->forest_name) {
6248                         _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6249                         NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
6250                         NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
6251                         NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
6252                         if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
6253                                 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));
6254                         }
6255                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
6256                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
6257                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
6258                 }
6259                 if (r->dc_site_name) {
6260                         _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6261                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
6262                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
6263                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
6264                         if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
6265                                 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));
6266                         }
6267                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
6268                         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));
6269                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
6270                 }
6271                 if (r->client_site_name) {
6272                         _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6273                         NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
6274                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
6275                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
6276                         if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
6277                                 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));
6278                         }
6279                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
6280                         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));
6281                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
6282                 }
6283         }
6284         return NDR_ERR_SUCCESS;
6285 }
6286
6287 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
6288 {
6289         ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
6290         ndr->depth++;
6291         ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
6292         ndr->depth++;
6293         if (r->dc_unc) {
6294                 ndr_print_string(ndr, "dc_unc", r->dc_unc);
6295         }
6296         ndr->depth--;
6297         ndr_print_ptr(ndr, "dc_address", r->dc_address);
6298         ndr->depth++;
6299         if (r->dc_address) {
6300                 ndr_print_string(ndr, "dc_address", r->dc_address);
6301         }
6302         ndr->depth--;
6303         ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr, "dc_address_type", r->dc_address_type);
6304         ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
6305         ndr_print_ptr(ndr, "domain_name", r->domain_name);
6306         ndr->depth++;
6307         if (r->domain_name) {
6308                 ndr_print_string(ndr, "domain_name", r->domain_name);
6309         }
6310         ndr->depth--;
6311         ndr_print_ptr(ndr, "forest_name", r->forest_name);
6312         ndr->depth++;
6313         if (r->forest_name) {
6314                 ndr_print_string(ndr, "forest_name", r->forest_name);
6315         }
6316         ndr->depth--;
6317         ndr_print_netr_DsR_DcFlags(ndr, "dc_flags", r->dc_flags);
6318         ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
6319         ndr->depth++;
6320         if (r->dc_site_name) {
6321                 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
6322         }
6323         ndr->depth--;
6324         ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
6325         ndr->depth++;
6326         if (r->client_site_name) {
6327                 ndr_print_string(ndr, "client_site_name", r->client_site_name);
6328         }
6329         ndr->depth--;
6330         ndr->depth--;
6331 }
6332
6333 static enum ndr_err_code ndr_push_netr_BinaryString(struct ndr_push *ndr, int ndr_flags, const struct netr_BinaryString *r)
6334 {
6335         uint32_t cntr_data_1;
6336         {
6337                 uint32_t _flags_save_STRUCT = ndr->flags;
6338                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6339                 if (ndr_flags & NDR_SCALARS) {
6340                         NDR_CHECK(ndr_push_align(ndr, 4));
6341                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
6342                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
6343                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6344                 }
6345                 if (ndr_flags & NDR_BUFFERS) {
6346                         if (r->data) {
6347                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
6348                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6349                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
6350                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6351                                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data[cntr_data_1]));
6352                                 }
6353                         }
6354                 }
6355                 ndr->flags = _flags_save_STRUCT;
6356         }
6357         return NDR_ERR_SUCCESS;
6358 }
6359
6360 static enum ndr_err_code ndr_pull_netr_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct netr_BinaryString *r)
6361 {
6362         uint32_t _ptr_data;
6363         uint32_t cntr_data_1;
6364         TALLOC_CTX *_mem_save_data_0;
6365         TALLOC_CTX *_mem_save_data_1;
6366         {
6367                 uint32_t _flags_save_STRUCT = ndr->flags;
6368                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6369                 if (ndr_flags & NDR_SCALARS) {
6370                         NDR_CHECK(ndr_pull_align(ndr, 4));
6371                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
6372                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
6373                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6374                         if (_ptr_data) {
6375                                 NDR_PULL_ALLOC(ndr, r->data);
6376                         } else {
6377                                 r->data = NULL;
6378                         }
6379                 }
6380                 if (ndr_flags & NDR_BUFFERS) {
6381                         if (r->data) {
6382                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6383                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6384                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6385                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
6386                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
6387                                         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));
6388                                 }
6389                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6390                                 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
6391                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6392                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6393                                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
6394                                 }
6395                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
6396                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6397                         }
6398                         if (r->data) {
6399                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size / 2));
6400                         }
6401                         if (r->data) {
6402                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length / 2));
6403                         }
6404                 }
6405                 ndr->flags = _flags_save_STRUCT;
6406         }
6407         return NDR_ERR_SUCCESS;
6408 }
6409
6410 _PUBLIC_ void ndr_print_netr_BinaryString(struct ndr_print *ndr, const char *name, const struct netr_BinaryString *r)
6411 {
6412         uint32_t cntr_data_1;
6413         ndr_print_struct(ndr, name, "netr_BinaryString");
6414         {
6415                 uint32_t _flags_save_STRUCT = ndr->flags;
6416                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6417                 ndr->depth++;
6418                 ndr_print_uint16(ndr, "length", r->length);
6419                 ndr_print_uint16(ndr, "size", r->size);
6420                 ndr_print_ptr(ndr, "data", r->data);
6421                 ndr->depth++;
6422                 if (r->data) {
6423                         ndr->print(ndr, "%s: ARRAY(%d)", "data", r->length / 2);
6424                         ndr->depth++;
6425                         for (cntr_data_1=0;cntr_data_1<r->length / 2;cntr_data_1++) {
6426                                 char *idx_1=NULL;
6427                                 asprintf(&idx_1, "[%d]", cntr_data_1);
6428                                 if (idx_1) {
6429                                         ndr_print_uint16(ndr, "data", r->data[cntr_data_1]);
6430                                         free(idx_1);
6431                                 }
6432                         }
6433                         ndr->depth--;
6434                 }
6435                 ndr->depth--;
6436                 ndr->depth--;
6437                 ndr->flags = _flags_save_STRUCT;
6438         }
6439 }
6440
6441 static enum ndr_err_code ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r)
6442 {
6443         uint32_t cntr_unknown7_0;
6444         if (ndr_flags & NDR_SCALARS) {
6445                 NDR_CHECK(ndr_push_align(ndr, 4));
6446                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6447                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain));
6448                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site));
6449                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1));
6450                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2));
6451                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3));
6452                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4));
6453                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6454                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product));
6455                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6456                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6457                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6458                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0]));
6459                 }
6460         }
6461         if (ndr_flags & NDR_BUFFERS) {
6462                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6463                 if (r->workstation_domain) {
6464                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6465                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6466                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6467                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6468                 }
6469                 if (r->workstation_site) {
6470                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6471                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6472                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6473                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6474                 }
6475                 if (r->unknown1) {
6476                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6477                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6478                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6479                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6480                 }
6481                 if (r->unknown2) {
6482                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6483                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6484                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6485                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6486                 }
6487                 if (r->unknown3) {
6488                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6489                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6490                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6491                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6492                 }
6493                 if (r->unknown4) {
6494                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6495                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6496                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6497                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6498                 }
6499                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6500                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product));
6501                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6502                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6503         }
6504         return NDR_ERR_SUCCESS;
6505 }
6506
6507 static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r)
6508 {
6509         uint32_t _ptr_workstation_domain;
6510         TALLOC_CTX *_mem_save_workstation_domain_0;
6511         uint32_t _ptr_workstation_site;
6512         TALLOC_CTX *_mem_save_workstation_site_0;
6513         uint32_t _ptr_unknown1;
6514         TALLOC_CTX *_mem_save_unknown1_0;
6515         uint32_t _ptr_unknown2;
6516         TALLOC_CTX *_mem_save_unknown2_0;
6517         uint32_t _ptr_unknown3;
6518         TALLOC_CTX *_mem_save_unknown3_0;
6519         uint32_t _ptr_unknown4;
6520         TALLOC_CTX *_mem_save_unknown4_0;
6521         uint32_t cntr_unknown7_0;
6522         if (ndr_flags & NDR_SCALARS) {
6523                 NDR_CHECK(ndr_pull_align(ndr, 4));
6524                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6525                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain));
6526                 if (_ptr_workstation_domain) {
6527                         NDR_PULL_ALLOC(ndr, r->workstation_domain);
6528                 } else {
6529                         r->workstation_domain = NULL;
6530                 }
6531                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site));
6532                 if (_ptr_workstation_site) {
6533                         NDR_PULL_ALLOC(ndr, r->workstation_site);
6534                 } else {
6535                         r->workstation_site = NULL;
6536                 }
6537                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1));
6538                 if (_ptr_unknown1) {
6539                         NDR_PULL_ALLOC(ndr, r->unknown1);
6540                 } else {
6541                         r->unknown1 = NULL;
6542                 }
6543                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2));
6544                 if (_ptr_unknown2) {
6545                         NDR_PULL_ALLOC(ndr, r->unknown2);
6546                 } else {
6547                         r->unknown2 = NULL;
6548                 }
6549                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3));
6550                 if (_ptr_unknown3) {
6551                         NDR_PULL_ALLOC(ndr, r->unknown3);
6552                 } else {
6553                         r->unknown3 = NULL;
6554                 }
6555                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
6556                 if (_ptr_unknown4) {
6557                         NDR_PULL_ALLOC(ndr, r->unknown4);
6558                 } else {
6559                         r->unknown4 = NULL;
6560                 }
6561                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6562                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product));
6563                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6564                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6565                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6566                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0]));
6567                 }
6568         }
6569         if (ndr_flags & NDR_BUFFERS) {
6570                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6571                 if (r->workstation_domain) {
6572                         _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6573                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0);
6574                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain));
6575                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain));
6576                         if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) {
6577                                 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));
6578                         }
6579                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t)));
6580                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16));
6581                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0);
6582                 }
6583                 if (r->workstation_site) {
6584                         _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
6585                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0);
6586                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site));
6587                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site));
6588                         if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) {
6589                                 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));
6590                         }
6591                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t)));
6592                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16));
6593                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0);
6594                 }
6595                 if (r->unknown1) {
6596                         _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6597                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0);
6598                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1));
6599                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1));
6600                         if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) {
6601                                 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));
6602                         }
6603                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t)));
6604                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16));
6605                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0);
6606                 }
6607                 if (r->unknown2) {
6608                         _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6609                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0);
6610                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2));
6611                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2));
6612                         if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) {
6613                                 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));
6614                         }
6615                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t)));
6616                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16));
6617                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0);
6618                 }
6619                 if (r->unknown3) {
6620                         _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6621                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0);
6622                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3));
6623                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3));
6624                         if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) {
6625                                 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));
6626                         }
6627                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t)));
6628                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16));
6629                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0);
6630                 }
6631                 if (r->unknown4) {
6632                         _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6633                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0);
6634                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4));
6635                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4));
6636                         if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) {
6637                                 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));
6638                         }
6639                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t)));
6640                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16));
6641                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0);
6642                 }
6643                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6644                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product));
6645                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6646                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6647         }
6648         return NDR_ERR_SUCCESS;
6649 }
6650
6651 _PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r)
6652 {
6653         uint32_t cntr_unknown7_0;
6654         ndr_print_struct(ndr, name, "netr_DomainQuery1");
6655         ndr->depth++;
6656         ndr_print_netr_Blob(ndr, "blob", &r->blob);
6657         ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain);
6658         ndr->depth++;
6659         if (r->workstation_domain) {
6660                 ndr_print_string(ndr, "workstation_domain", r->workstation_domain);
6661         }
6662         ndr->depth--;
6663         ndr_print_ptr(ndr, "workstation_site", r->workstation_site);
6664         ndr->depth++;
6665         if (r->workstation_site) {
6666                 ndr_print_string(ndr, "workstation_site", r->workstation_site);
6667         }
6668         ndr->depth--;
6669         ndr_print_ptr(ndr, "unknown1", r->unknown1);
6670         ndr->depth++;
6671         if (r->unknown1) {
6672                 ndr_print_string(ndr, "unknown1", r->unknown1);
6673         }
6674         ndr->depth--;
6675         ndr_print_ptr(ndr, "unknown2", r->unknown2);
6676         ndr->depth++;
6677         if (r->unknown2) {
6678                 ndr_print_string(ndr, "unknown2", r->unknown2);
6679         }
6680         ndr->depth--;
6681         ndr_print_ptr(ndr, "unknown3", r->unknown3);
6682         ndr->depth++;
6683         if (r->unknown3) {
6684                 ndr_print_string(ndr, "unknown3", r->unknown3);
6685         }
6686         ndr->depth--;
6687         ndr_print_ptr(ndr, "unknown4", r->unknown4);
6688         ndr->depth++;
6689         if (r->unknown4) {
6690                 ndr_print_string(ndr, "unknown4", r->unknown4);
6691         }
6692         ndr->depth--;
6693         ndr_print_netr_BinaryString(ndr, "blob2", &r->blob2);
6694         ndr_print_lsa_String(ndr, "product", &r->product);
6695         ndr_print_lsa_String(ndr, "unknown5", &r->unknown5);
6696         ndr_print_lsa_String(ndr, "unknown6", &r->unknown6);
6697         ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", 4);
6698         ndr->depth++;
6699         for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) {
6700                 char *idx_0=NULL;
6701                 asprintf(&idx_0, "[%d]", cntr_unknown7_0);
6702                 if (idx_0) {
6703                         ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]);
6704                         free(idx_0);
6705                 }
6706         }
6707         ndr->depth--;
6708         ndr->depth--;
6709 }
6710
6711 static enum ndr_err_code ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r)
6712 {
6713         if (ndr_flags & NDR_SCALARS) {
6714                 int level = ndr_push_get_switch_value(ndr, r);
6715                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6716                 switch (level) {
6717                         case 1:
6718                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6719                         break;
6720
6721                         case 2:
6722                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6723                         break;
6724
6725                         default:
6726                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6727                 }
6728         }
6729         if (ndr_flags & NDR_BUFFERS) {
6730                 int level = ndr_push_get_switch_value(ndr, r);
6731                 switch (level) {
6732                         case 1:
6733                                 if (r->query1) {
6734                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6735                                 }
6736                         break;
6737
6738                         case 2:
6739                                 if (r->query1) {
6740                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6741                                 }
6742                         break;
6743
6744                         default:
6745                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6746                 }
6747         }
6748         return NDR_ERR_SUCCESS;
6749 }
6750
6751 static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r)
6752 {
6753         int level;
6754         uint32_t _level;
6755         TALLOC_CTX *_mem_save_query1_0;
6756         level = ndr_pull_get_switch_value(ndr, r);
6757         if (ndr_flags & NDR_SCALARS) {
6758                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6759                 if (_level != level) {
6760                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6761                 }
6762                 switch (level) {
6763                         case 1: {
6764                                 uint32_t _ptr_query1;
6765                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6766                                 if (_ptr_query1) {
6767                                         NDR_PULL_ALLOC(ndr, r->query1);
6768                                 } else {
6769                                         r->query1 = NULL;
6770                                 }
6771                         break; }
6772
6773                         case 2: {
6774                                 uint32_t _ptr_query1;
6775                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6776                                 if (_ptr_query1) {
6777                                         NDR_PULL_ALLOC(ndr, r->query1);
6778                                 } else {
6779                                         r->query1 = NULL;
6780                                 }
6781                         break; }
6782
6783                         default:
6784                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6785                 }
6786         }
6787         if (ndr_flags & NDR_BUFFERS) {
6788                 switch (level) {
6789                         case 1:
6790                                 if (r->query1) {
6791                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6792                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6793                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6794                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6795                                 }
6796                         break;
6797
6798                         case 2:
6799                                 if (r->query1) {
6800                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6801                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6802                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6803                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6804                                 }
6805                         break;
6806
6807                         default:
6808                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6809                 }
6810         }
6811         return NDR_ERR_SUCCESS;
6812 }
6813
6814 _PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r)
6815 {
6816         int level;
6817         level = ndr_print_get_switch_value(ndr, r);
6818         ndr_print_union(ndr, name, level, "netr_DomainQuery");
6819         switch (level) {
6820                 case 1:
6821                         ndr_print_ptr(ndr, "query1", r->query1);
6822                         ndr->depth++;
6823                         if (r->query1) {
6824                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6825                         }
6826                         ndr->depth--;
6827                 break;
6828
6829                 case 2:
6830                         ndr_print_ptr(ndr, "query1", r->query1);
6831                         ndr->depth++;
6832                         if (r->query1) {
6833                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6834                         }
6835                         ndr->depth--;
6836                 break;
6837
6838                 default:
6839                         ndr_print_bad_level(ndr, name, level);
6840         }
6841 }
6842
6843 static enum ndr_err_code ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r)
6844 {
6845         uint32_t cntr_unknown1_0;
6846         uint32_t cntr_unknown_0;
6847         if (ndr_flags & NDR_SCALARS) {
6848                 NDR_CHECK(ndr_push_align(ndr, 4));
6849                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6850                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6851                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
6852                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
6853                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
6854                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6855                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6856                 }
6857                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6858                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6859                 }
6860         }
6861         if (ndr_flags & NDR_BUFFERS) {
6862                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6863                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6864                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6865                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
6866                 if (r->sid) {
6867                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6868                 }
6869                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6870                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6871                 }
6872         }
6873         return NDR_ERR_SUCCESS;
6874 }
6875
6876 static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r)
6877 {
6878         uint32_t _ptr_sid;
6879         TALLOC_CTX *_mem_save_sid_0;
6880         uint32_t cntr_unknown1_0;
6881         uint32_t cntr_unknown_0;
6882         if (ndr_flags & NDR_SCALARS) {
6883                 NDR_CHECK(ndr_pull_align(ndr, 4));
6884                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6885                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6886                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
6887                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
6888                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
6889                 if (_ptr_sid) {
6890                         NDR_PULL_ALLOC(ndr, r->sid);
6891                 } else {
6892                         r->sid = NULL;
6893                 }
6894                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6895                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6896                 }
6897                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6898                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
6899                 }
6900         }
6901         if (ndr_flags & NDR_BUFFERS) {
6902                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6903                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6904                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6905                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
6906                 if (r->sid) {
6907                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6908                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
6909                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6910                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
6911                 }
6912                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6913                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6914                 }
6915         }
6916         return NDR_ERR_SUCCESS;
6917 }
6918
6919 _PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r)
6920 {
6921         uint32_t cntr_unknown1_0;
6922         uint32_t cntr_unknown_0;
6923         ndr_print_struct(ndr, name, "netr_DomainTrustInfo");
6924         ndr->depth++;
6925         ndr_print_lsa_String(ndr, "domainname", &r->domainname);
6926         ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname);
6927         ndr_print_lsa_String(ndr, "forest", &r->forest);
6928         ndr_print_GUID(ndr, "guid", &r->guid);
6929         ndr_print_ptr(ndr, "sid", r->sid);
6930         ndr->depth++;
6931         if (r->sid) {
6932                 ndr_print_dom_sid2(ndr, "sid", r->sid);
6933         }
6934         ndr->depth--;
6935         ndr->print(ndr, "%s: ARRAY(%d)", "unknown1", 4);
6936         ndr->depth++;
6937         for (cntr_unknown1_0=0;cntr_unknown1_0<4;cntr_unknown1_0++) {
6938                 char *idx_0=NULL;
6939                 asprintf(&idx_0, "[%d]", cntr_unknown1_0);
6940                 if (idx_0) {
6941                         ndr_print_netr_BinaryString(ndr, "unknown1", &r->unknown1[cntr_unknown1_0]);
6942                         free(idx_0);
6943                 }
6944         }
6945         ndr->depth--;
6946         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 4);
6947         ndr->depth++;
6948         for (cntr_unknown_0=0;cntr_unknown_0<4;cntr_unknown_0++) {
6949                 char *idx_0=NULL;
6950                 asprintf(&idx_0, "[%d]", cntr_unknown_0);
6951                 if (idx_0) {
6952                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
6953                         free(idx_0);
6954                 }
6955         }
6956         ndr->depth--;
6957         ndr->depth--;
6958 }
6959
6960 static enum ndr_err_code ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r)
6961 {
6962         uint32_t cntr_trusts_1;
6963         uint32_t cntr_unknown_0;
6964         if (ndr_flags & NDR_SCALARS) {
6965                 NDR_CHECK(ndr_push_align(ndr, 4));
6966                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
6967                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
6968                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts));
6969                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
6970                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6971                 }
6972         }
6973         if (ndr_flags & NDR_BUFFERS) {
6974                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
6975                 if (r->trusts) {
6976                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
6977                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6978                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
6979                         }
6980                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6981                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
6982                         }
6983                 }
6984         }
6985         return NDR_ERR_SUCCESS;
6986 }
6987
6988 static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r)
6989 {
6990         uint32_t _ptr_trusts;
6991         uint32_t cntr_trusts_1;
6992         TALLOC_CTX *_mem_save_trusts_0;
6993         TALLOC_CTX *_mem_save_trusts_1;
6994         uint32_t cntr_unknown_0;
6995         if (ndr_flags & NDR_SCALARS) {
6996                 NDR_CHECK(ndr_pull_align(ndr, 4));
6997                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
6998                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts));
6999                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts));
7000                 if (_ptr_trusts) {
7001                         NDR_PULL_ALLOC(ndr, r->trusts);
7002                 } else {
7003                         r->trusts = NULL;
7004                 }
7005                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
7006                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
7007                 }
7008         }
7009         if (ndr_flags & NDR_BUFFERS) {
7010                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7011                 if (r->trusts) {
7012                         _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
7013                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7014                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts));
7015                         NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts));
7016                         _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
7017                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7018                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7019                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7020                         }
7021                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7022                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7023                         }
7024                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
7025                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0);
7026                 }
7027                 if (r->trusts) {
7028                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts));
7029                 }
7030         }
7031         return NDR_ERR_SUCCESS;
7032 }
7033
7034 _PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r)
7035 {
7036         uint32_t cntr_trusts_1;
7037         uint32_t cntr_unknown_0;
7038         ndr_print_struct(ndr, name, "netr_DomainInfo1");
7039         ndr->depth++;
7040         ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo);
7041         ndr_print_uint32(ndr, "num_trusts", r->num_trusts);
7042         ndr_print_ptr(ndr, "trusts", r->trusts);
7043         ndr->depth++;
7044         if (r->trusts) {
7045                 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", r->num_trusts);
7046                 ndr->depth++;
7047                 for (cntr_trusts_1=0;cntr_trusts_1<r->num_trusts;cntr_trusts_1++) {
7048                         char *idx_1=NULL;
7049                         asprintf(&idx_1, "[%d]", cntr_trusts_1);
7050                         if (idx_1) {
7051                                 ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]);
7052                                 free(idx_1);
7053                         }
7054                 }
7055                 ndr->depth--;
7056         }
7057         ndr->depth--;
7058         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 14);
7059         ndr->depth++;
7060         for (cntr_unknown_0=0;cntr_unknown_0<14;cntr_unknown_0++) {
7061                 char *idx_0=NULL;
7062                 asprintf(&idx_0, "[%d]", cntr_unknown_0);
7063                 if (idx_0) {
7064                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
7065                         free(idx_0);
7066                 }
7067         }
7068         ndr->depth--;
7069         ndr->depth--;
7070 }
7071
7072 static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
7073 {
7074         if (ndr_flags & NDR_SCALARS) {
7075                 int level = ndr_push_get_switch_value(ndr, r);
7076                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7077                 switch (level) {
7078                         case 1:
7079                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7080                         break;
7081
7082                         case 2:
7083                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7084                         break;
7085
7086                         default:
7087                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7088                 }
7089         }
7090         if (ndr_flags & NDR_BUFFERS) {
7091                 int level = ndr_push_get_switch_value(ndr, r);
7092                 switch (level) {
7093                         case 1:
7094                                 if (r->info1) {
7095                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7096                                 }
7097                         break;
7098
7099                         case 2:
7100                                 if (r->info1) {
7101                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7102                                 }
7103                         break;
7104
7105                         default:
7106                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7107                 }
7108         }
7109         return NDR_ERR_SUCCESS;
7110 }
7111
7112 static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
7113 {
7114         int level;
7115         uint32_t _level;
7116         TALLOC_CTX *_mem_save_info1_0;
7117         level = ndr_pull_get_switch_value(ndr, r);
7118         if (ndr_flags & NDR_SCALARS) {
7119                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7120                 if (_level != level) {
7121                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7122                 }
7123                 switch (level) {
7124                         case 1: {
7125                                 uint32_t _ptr_info1;
7126                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7127                                 if (_ptr_info1) {
7128                                         NDR_PULL_ALLOC(ndr, r->info1);
7129                                 } else {
7130                                         r->info1 = NULL;
7131                                 }
7132                         break; }
7133
7134                         case 2: {
7135                                 uint32_t _ptr_info1;
7136                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7137                                 if (_ptr_info1) {
7138                                         NDR_PULL_ALLOC(ndr, r->info1);
7139                                 } else {
7140                                         r->info1 = NULL;
7141                                 }
7142                         break; }
7143
7144                         default:
7145                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7146                 }
7147         }
7148         if (ndr_flags & NDR_BUFFERS) {
7149                 switch (level) {
7150                         case 1:
7151                                 if (r->info1) {
7152                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7153                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7154                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7155                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7156                                 }
7157                         break;
7158
7159                         case 2:
7160                                 if (r->info1) {
7161                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7162                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7163                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7164                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7165                                 }
7166                         break;
7167
7168                         default:
7169                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7170                 }
7171         }
7172         return NDR_ERR_SUCCESS;
7173 }
7174
7175 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
7176 {
7177         int level;
7178         level = ndr_print_get_switch_value(ndr, r);
7179         ndr_print_union(ndr, name, level, "netr_DomainInfo");
7180         switch (level) {
7181                 case 1:
7182                         ndr_print_ptr(ndr, "info1", r->info1);
7183                         ndr->depth++;
7184                         if (r->info1) {
7185                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7186                         }
7187                         ndr->depth--;
7188                 break;
7189
7190                 case 2:
7191                         ndr_print_ptr(ndr, "info1", r->info1);
7192                         ndr->depth++;
7193                         if (r->info1) {
7194                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7195                         }
7196                         ndr->depth--;
7197                 break;
7198
7199                 default:
7200                         ndr_print_bad_level(ndr, name, level);
7201         }
7202 }
7203
7204 static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
7205 {
7206         {
7207                 uint32_t _flags_save_STRUCT = ndr->flags;
7208                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7209                 if (ndr_flags & NDR_SCALARS) {
7210                         NDR_CHECK(ndr_push_align(ndr, 4));
7211                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7212                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
7213                 }
7214                 if (ndr_flags & NDR_BUFFERS) {
7215                 }
7216                 ndr->flags = _flags_save_STRUCT;
7217         }
7218         return NDR_ERR_SUCCESS;
7219 }
7220
7221 static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
7222 {
7223         {
7224                 uint32_t _flags_save_STRUCT = ndr->flags;
7225                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7226                 if (ndr_flags & NDR_SCALARS) {
7227                         NDR_CHECK(ndr_pull_align(ndr, 4));
7228                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7229                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7230                 }
7231                 if (ndr_flags & NDR_BUFFERS) {
7232                 }
7233                 ndr->flags = _flags_save_STRUCT;
7234         }
7235         return NDR_ERR_SUCCESS;
7236 }
7237
7238 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
7239 {
7240         ndr_print_struct(ndr, name, "netr_CryptPassword");
7241         {
7242                 uint32_t _flags_save_STRUCT = ndr->flags;
7243                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7244                 ndr->depth++;
7245                 ndr_print_array_uint8(ndr, "data", r->data, 512);
7246                 ndr_print_uint32(ndr, "length", r->length);
7247                 ndr->depth--;
7248                 ndr->flags = _flags_save_STRUCT;
7249         }
7250 }
7251
7252 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesWCtr *r)
7253 {
7254         uint32_t cntr_sitename_1;
7255         if (ndr_flags & NDR_SCALARS) {
7256                 NDR_CHECK(ndr_push_align(ndr, 4));
7257                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7258                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7259         }
7260         if (ndr_flags & NDR_BUFFERS) {
7261                 if (r->sitename) {
7262                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7263                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7264                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7265                         }
7266                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7267                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7268                         }
7269                 }
7270         }
7271         return NDR_ERR_SUCCESS;
7272 }
7273
7274 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r)
7275 {
7276         uint32_t _ptr_sitename;
7277         uint32_t cntr_sitename_1;
7278         TALLOC_CTX *_mem_save_sitename_0;
7279         TALLOC_CTX *_mem_save_sitename_1;
7280         if (ndr_flags & NDR_SCALARS) {
7281                 NDR_CHECK(ndr_pull_align(ndr, 4));
7282                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7283                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7284                 if (_ptr_sitename) {
7285                         NDR_PULL_ALLOC(ndr, r->sitename);
7286                 } else {
7287                         r->sitename = NULL;
7288                 }
7289         }
7290         if (ndr_flags & NDR_BUFFERS) {
7291                 if (r->sitename) {
7292                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7293                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7294                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7295                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7296                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7297                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7298                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7299                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7300                         }
7301                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7302                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7303                         }
7304                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7305                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7306                 }
7307                 if (r->sitename) {
7308                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7309                 }
7310         }
7311         return NDR_ERR_SUCCESS;
7312 }
7313
7314 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r)
7315 {
7316         uint32_t cntr_sitename_1;
7317         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesWCtr");
7318         ndr->depth++;
7319         ndr_print_uint32(ndr, "count", r->count);
7320         ndr_print_ptr(ndr, "sitename", r->sitename);
7321         ndr->depth++;
7322         if (r->sitename) {
7323                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", r->count);
7324                 ndr->depth++;
7325                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7326                         char *idx_1=NULL;
7327                         asprintf(&idx_1, "[%d]", cntr_sitename_1);
7328                         if (idx_1) {
7329                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
7330                                 free(idx_1);
7331                         }
7332                 }
7333                 ndr->depth--;
7334         }
7335         ndr->depth--;
7336         ndr->depth--;
7337 }
7338
7339 static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddress *r)
7340 {
7341         if (ndr_flags & NDR_SCALARS) {
7342                 NDR_CHECK(ndr_push_align(ndr, 4));
7343                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
7344                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7345         }
7346         if (ndr_flags & NDR_BUFFERS) {
7347                 if (r->buffer) {
7348                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7349                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->size));
7350                 }
7351         }
7352         return NDR_ERR_SUCCESS;
7353 }
7354
7355 static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r)
7356 {
7357         uint32_t _ptr_buffer;
7358         TALLOC_CTX *_mem_save_buffer_0;
7359         if (ndr_flags & NDR_SCALARS) {
7360                 NDR_CHECK(ndr_pull_align(ndr, 4));
7361                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
7362                 if (_ptr_buffer) {
7363                         NDR_PULL_ALLOC(ndr, r->buffer);
7364                 } else {
7365                         r->buffer = NULL;
7366                 }
7367                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7368         }
7369         if (ndr_flags & NDR_BUFFERS) {
7370                 if (r->buffer) {
7371                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
7372                         NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
7373                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
7374                         NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
7375                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
7376                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
7377                 }
7378                 if (r->buffer) {
7379                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->size));
7380                 }
7381         }
7382         return NDR_ERR_SUCCESS;
7383 }
7384
7385 _PUBLIC_ void ndr_print_netr_DsRAddress(struct ndr_print *ndr, const char *name, const struct netr_DsRAddress *r)
7386 {
7387         ndr_print_struct(ndr, name, "netr_DsRAddress");
7388         ndr->depth++;
7389         ndr_print_ptr(ndr, "buffer", r->buffer);
7390         ndr->depth++;
7391         if (r->buffer) {
7392                 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->size);
7393         }
7394         ndr->depth--;
7395         ndr_print_uint32(ndr, "size", r->size);
7396         ndr->depth--;
7397 }
7398
7399 static enum ndr_err_code ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7400 {
7401         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7402         return NDR_ERR_SUCCESS;
7403 }
7404
7405 static enum ndr_err_code ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7406 {
7407         uint32_t v;
7408         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7409         *r = v;
7410         return NDR_ERR_SUCCESS;
7411 }
7412
7413 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7414 {
7415         ndr_print_uint32(ndr, name, r);
7416         ndr->depth++;
7417         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
7418         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
7419         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
7420         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
7421         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
7422         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
7423         ndr->depth--;
7424 }
7425
7426 static enum ndr_err_code ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
7427 {
7428         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7429         return NDR_ERR_SUCCESS;
7430 }
7431
7432 static enum ndr_err_code ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
7433 {
7434         uint32_t v;
7435         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7436         *r = v;
7437         return NDR_ERR_SUCCESS;
7438 }
7439
7440 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
7441 {
7442         const char *val = NULL;
7443
7444         switch (r) {
7445                 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
7446                 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
7447                 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
7448                 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
7449         }
7450         ndr_print_enum(ndr, name, "ENUM", val, r);
7451 }
7452
7453 static enum ndr_err_code ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7454 {
7455         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7456         return NDR_ERR_SUCCESS;
7457 }
7458
7459 static enum ndr_err_code ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7460 {
7461         uint32_t v;
7462         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7463         *r = v;
7464         return NDR_ERR_SUCCESS;
7465 }
7466
7467 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
7468 {
7469         ndr_print_uint32(ndr, name, r);
7470         ndr->depth++;
7471         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
7472         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
7473         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
7474         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
7475         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
7476         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
7477         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
7478         ndr->depth--;
7479 }
7480
7481 static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
7482 {
7483         if (ndr_flags & NDR_SCALARS) {
7484                 NDR_CHECK(ndr_push_align(ndr, 4));
7485                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7486                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7487                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
7488                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7489                 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
7490                 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
7491                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
7492                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
7493         }
7494         if (ndr_flags & NDR_BUFFERS) {
7495                 if (r->netbios_name) {
7496                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7497                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7498                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7499                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7500                 }
7501                 if (r->dns_name) {
7502                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7503                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7504                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7505                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7506                 }
7507                 if (r->sid) {
7508                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7509                 }
7510                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
7511         }
7512         return NDR_ERR_SUCCESS;
7513 }
7514
7515 static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
7516 {
7517         uint32_t _ptr_netbios_name;
7518         TALLOC_CTX *_mem_save_netbios_name_0;
7519         uint32_t _ptr_dns_name;
7520         TALLOC_CTX *_mem_save_dns_name_0;
7521         uint32_t _ptr_sid;
7522         TALLOC_CTX *_mem_save_sid_0;
7523         if (ndr_flags & NDR_SCALARS) {
7524                 NDR_CHECK(ndr_pull_align(ndr, 4));
7525                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7526                 if (_ptr_netbios_name) {
7527                         NDR_PULL_ALLOC(ndr, r->netbios_name);
7528                 } else {
7529                         r->netbios_name = NULL;
7530                 }
7531                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7532                 if (_ptr_dns_name) {
7533                         NDR_PULL_ALLOC(ndr, r->dns_name);
7534                 } else {
7535                         r->dns_name = NULL;
7536                 }
7537                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
7538                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7539                 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
7540                 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
7541                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
7542                 if (_ptr_sid) {
7543                         NDR_PULL_ALLOC(ndr, r->sid);
7544                 } else {
7545                         r->sid = NULL;
7546                 }
7547                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
7548         }
7549         if (ndr_flags & NDR_BUFFERS) {
7550                 if (r->netbios_name) {
7551                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7552                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7553                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7554                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7555                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
7556                                 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));
7557                         }
7558                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
7559                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
7560                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7561                 }
7562                 if (r->dns_name) {
7563                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7564                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7565                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7566                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7567                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
7568                                 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));
7569                         }
7570                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
7571                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
7572                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7573                 }
7574                 if (r->sid) {
7575                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7576                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
7577                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7578                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
7579                 }
7580                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
7581         }
7582         return NDR_ERR_SUCCESS;
7583 }
7584
7585 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
7586 {
7587         ndr_print_struct(ndr, name, "netr_DomainTrust");
7588         ndr->depth++;
7589         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7590         ndr->depth++;
7591         if (r->netbios_name) {
7592                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7593         }
7594         ndr->depth--;
7595         ndr_print_ptr(ndr, "dns_name", r->dns_name);
7596         ndr->depth++;
7597         if (r->dns_name) {
7598                 ndr_print_string(ndr, "dns_name", r->dns_name);
7599         }
7600         ndr->depth--;
7601         ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
7602         ndr_print_uint32(ndr, "parent_index", r->parent_index);
7603         ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
7604         ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
7605         ndr_print_ptr(ndr, "sid", r->sid);
7606         ndr->depth++;
7607         if (r->sid) {
7608                 ndr_print_dom_sid2(ndr, "sid", r->sid);
7609         }
7610         ndr->depth--;
7611         ndr_print_GUID(ndr, "guid", &r->guid);
7612         ndr->depth--;
7613 }
7614
7615 static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustList *r)
7616 {
7617         uint32_t cntr_array_1;
7618         if (ndr_flags & NDR_SCALARS) {
7619                 NDR_CHECK(ndr_push_align(ndr, 4));
7620                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7621                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7622         }
7623         if (ndr_flags & NDR_BUFFERS) {
7624                 if (r->array) {
7625                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7626                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7627                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7628                         }
7629                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7630                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7631                         }
7632                 }
7633         }
7634         return NDR_ERR_SUCCESS;
7635 }
7636
7637 static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r)
7638 {
7639         uint32_t _ptr_array;
7640         uint32_t cntr_array_1;
7641         TALLOC_CTX *_mem_save_array_0;
7642         TALLOC_CTX *_mem_save_array_1;
7643         if (ndr_flags & NDR_SCALARS) {
7644                 NDR_CHECK(ndr_pull_align(ndr, 4));
7645                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7646                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7647                 if (_ptr_array) {
7648                         NDR_PULL_ALLOC(ndr, r->array);
7649                 } else {
7650                         r->array = NULL;
7651                 }
7652         }
7653         if (ndr_flags & NDR_BUFFERS) {
7654                 if (r->array) {
7655                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7656                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7657                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7658                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
7659                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7660                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7661                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7662                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7663                         }
7664                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7665                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7666                         }
7667                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7668                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7669                 }
7670                 if (r->array) {
7671                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7672                 }
7673         }
7674         return NDR_ERR_SUCCESS;
7675 }
7676
7677 _PUBLIC_ void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r)
7678 {
7679         uint32_t cntr_array_1;
7680         ndr_print_struct(ndr, name, "netr_DomainTrustList");
7681         ndr->depth++;
7682         ndr_print_uint32(ndr, "count", r->count);
7683         ndr_print_ptr(ndr, "array", r->array);
7684         ndr->depth++;
7685         if (r->array) {
7686                 ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
7687                 ndr->depth++;
7688                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7689                         char *idx_1=NULL;
7690                         asprintf(&idx_1, "[%d]", cntr_array_1);
7691                         if (idx_1) {
7692                                 ndr_print_netr_DomainTrust(ndr, "array", &r->array[cntr_array_1]);
7693                                 free(idx_1);
7694                         }
7695                 }
7696                 ndr->depth--;
7697         }
7698         ndr->depth--;
7699         ndr->depth--;
7700 }
7701
7702 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesExWCtr *r)
7703 {
7704         uint32_t cntr_sitename_1;
7705         uint32_t cntr_subnetname_1;
7706         if (ndr_flags & NDR_SCALARS) {
7707                 NDR_CHECK(ndr_push_align(ndr, 4));
7708                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7709                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7710                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->subnetname));
7711         }
7712         if (ndr_flags & NDR_BUFFERS) {
7713                 if (r->sitename) {
7714                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7715                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7716                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7717                         }
7718                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7719                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7720                         }
7721                 }
7722                 if (r->subnetname) {
7723                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7724                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7725                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7726                         }
7727                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7728                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7729                         }
7730                 }
7731         }
7732         return NDR_ERR_SUCCESS;
7733 }
7734
7735 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r)
7736 {
7737         uint32_t _ptr_sitename;
7738         uint32_t cntr_sitename_1;
7739         TALLOC_CTX *_mem_save_sitename_0;
7740         TALLOC_CTX *_mem_save_sitename_1;
7741         uint32_t _ptr_subnetname;
7742         uint32_t cntr_subnetname_1;
7743         TALLOC_CTX *_mem_save_subnetname_0;
7744         TALLOC_CTX *_mem_save_subnetname_1;
7745         if (ndr_flags & NDR_SCALARS) {
7746                 NDR_CHECK(ndr_pull_align(ndr, 4));
7747                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7748                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7749                 if (_ptr_sitename) {
7750                         NDR_PULL_ALLOC(ndr, r->sitename);
7751                 } else {
7752                         r->sitename = NULL;
7753                 }
7754                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_subnetname));
7755                 if (_ptr_subnetname) {
7756                         NDR_PULL_ALLOC(ndr, r->subnetname);
7757                 } else {
7758                         r->subnetname = NULL;
7759                 }
7760         }
7761         if (ndr_flags & NDR_BUFFERS) {
7762                 if (r->sitename) {
7763                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7764                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7765                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7766                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7767                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7768                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7769                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7770                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7771                         }
7772                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7773                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7774                         }
7775                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7776                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7777                 }
7778                 if (r->subnetname) {
7779                         _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7780                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7781                         NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname));
7782                         NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname));
7783                         _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr);
7784                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7785                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7786                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7787                         }
7788                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7789                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7790                         }
7791                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0);
7792                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_0, 0);
7793                 }
7794                 if (r->sitename) {
7795                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7796                 }
7797                 if (r->subnetname) {
7798                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->subnetname, r->count));
7799                 }
7800         }
7801         return NDR_ERR_SUCCESS;
7802 }
7803
7804 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r)
7805 {
7806         uint32_t cntr_sitename_1;
7807         uint32_t cntr_subnetname_1;
7808         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExWCtr");
7809         ndr->depth++;
7810         ndr_print_uint32(ndr, "count", r->count);
7811         ndr_print_ptr(ndr, "sitename", r->sitename);
7812         ndr->depth++;
7813         if (r->sitename) {
7814                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", r->count);
7815                 ndr->depth++;
7816                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7817                         char *idx_1=NULL;
7818                         asprintf(&idx_1, "[%d]", cntr_sitename_1);
7819                         if (idx_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                         asprintf(&idx_1, "[%d]", cntr_subnetname_1);
7835                         if (idx_1) {
7836                                 ndr_print_lsa_String(ndr, "subnetname", &r->subnetname[cntr_subnetname_1]);
7837                                 free(idx_1);
7838                         }
7839                 }
7840                 ndr->depth--;
7841         }
7842         ndr->depth--;
7843         ndr->depth--;
7844 }
7845
7846 static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags, const struct DcSitesCtr *r)
7847 {
7848         uint32_t cntr_sites_1;
7849         if (ndr_flags & NDR_SCALARS) {
7850                 NDR_CHECK(ndr_push_align(ndr, 4));
7851                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7852                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sites));
7853         }
7854         if (ndr_flags & NDR_BUFFERS) {
7855                 if (r->sites) {
7856                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7857                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7858                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7859                         }
7860                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7861                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7862                         }
7863                 }
7864         }
7865         return NDR_ERR_SUCCESS;
7866 }
7867
7868 static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r)
7869 {
7870         uint32_t _ptr_sites;
7871         uint32_t cntr_sites_1;
7872         TALLOC_CTX *_mem_save_sites_0;
7873         TALLOC_CTX *_mem_save_sites_1;
7874         if (ndr_flags & NDR_SCALARS) {
7875                 NDR_CHECK(ndr_pull_align(ndr, 4));
7876                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sites));
7877                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sites));
7878                 if (_ptr_sites) {
7879                         NDR_PULL_ALLOC(ndr, r->sites);
7880                 } else {
7881                         r->sites = NULL;
7882                 }
7883         }
7884         if (ndr_flags & NDR_BUFFERS) {
7885                 if (r->sites) {
7886                         _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr);
7887                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7888                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sites));
7889                         NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites));
7890                         _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr);
7891                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7892                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7893                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7894                         }
7895                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7896                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7897                         }
7898                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0);
7899                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_0, 0);
7900                 }
7901                 if (r->sites) {
7902                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sites, r->num_sites));
7903                 }
7904         }
7905         return NDR_ERR_SUCCESS;
7906 }
7907
7908 _PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r)
7909 {
7910         uint32_t cntr_sites_1;
7911         ndr_print_struct(ndr, name, "DcSitesCtr");
7912         ndr->depth++;
7913         ndr_print_uint32(ndr, "num_sites", r->num_sites);
7914         ndr_print_ptr(ndr, "sites", r->sites);
7915         ndr->depth++;
7916         if (r->sites) {
7917                 ndr->print(ndr, "%s: ARRAY(%d)", "sites", r->num_sites);
7918                 ndr->depth++;
7919                 for (cntr_sites_1=0;cntr_sites_1<r->num_sites;cntr_sites_1++) {
7920                         char *idx_1=NULL;
7921                         asprintf(&idx_1, "[%d]", cntr_sites_1);
7922                         if (idx_1) {
7923                                 ndr_print_lsa_String(ndr, "sites", &r->sites[cntr_sites_1]);
7924                                 free(idx_1);
7925                         }
7926                 }
7927                 ndr->depth--;
7928         }
7929         ndr->depth--;
7930         ndr->depth--;
7931 }
7932
7933 static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
7934 {
7935         if (flags & NDR_IN) {
7936                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
7937                 if (r->in.server_name) {
7938                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7939                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7940                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7941                         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));
7942                 }
7943                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7944                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7945                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7946                 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));
7947                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7948                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7949                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7950                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7951         }
7952         if (flags & NDR_OUT) {
7953                 if (r->out.info == NULL) {
7954                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7955                 }
7956                 NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
7957                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
7958         }
7959         return NDR_ERR_SUCCESS;
7960 }
7961
7962 static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
7963 {
7964         uint32_t _ptr_server_name;
7965         TALLOC_CTX *_mem_save_server_name_0;
7966         TALLOC_CTX *_mem_save_info_0;
7967         if (flags & NDR_IN) {
7968                 ZERO_STRUCT(r->out);
7969
7970                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
7971                 if (_ptr_server_name) {
7972                         NDR_PULL_ALLOC(ndr, r->in.server_name);
7973                 } else {
7974                         r->in.server_name = NULL;
7975                 }
7976                 if (r->in.server_name) {
7977                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7978                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
7979                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
7980                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
7981                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
7982                                 return 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));
7983                         }
7984                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
7985                         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));
7986                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
7987                 }
7988                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
7989                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
7990                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
7991                         return 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));
7992                 }
7993                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
7994                 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));
7995                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
7996                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
7997                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
7998                         return 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));
7999                 }
8000                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8001                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8002                 NDR_PULL_ALLOC(ndr, r->out.info);
8003                 ZERO_STRUCTP(r->out.info);
8004         }
8005         if (flags & NDR_OUT) {
8006                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8007                         NDR_PULL_ALLOC(ndr, r->out.info);
8008                 }
8009                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8010                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8011                 NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
8012                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8013                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8014         }
8015         return NDR_ERR_SUCCESS;
8016 }
8017
8018 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
8019 {
8020         ndr_print_struct(ndr, name, "netr_LogonUasLogon");
8021         ndr->depth++;
8022         if (flags & NDR_SET_VALUES) {
8023                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8024         }
8025         if (flags & NDR_IN) {
8026                 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
8027                 ndr->depth++;
8028                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8029                 ndr->depth++;
8030                 if (r->in.server_name) {
8031                         ndr_print_string(ndr, "server_name", r->in.server_name);
8032                 }
8033                 ndr->depth--;
8034                 ndr_print_string(ndr, "account_name", r->in.account_name);
8035                 ndr_print_string(ndr, "workstation", r->in.workstation);
8036                 ndr->depth--;
8037         }
8038         if (flags & NDR_OUT) {
8039                 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
8040                 ndr->depth++;
8041                 ndr_print_ptr(ndr, "info", r->out.info);
8042                 ndr->depth++;
8043                 ndr_print_netr_UasInfo(ndr, "info", r->out.info);
8044                 ndr->depth--;
8045                 ndr_print_WERROR(ndr, "result", r->out.result);
8046                 ndr->depth--;
8047         }
8048         ndr->depth--;
8049 }
8050
8051 static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
8052 {
8053         if (flags & NDR_IN) {
8054                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8055                 if (r->in.server_name) {
8056                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8057                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8058                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8059                         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));
8060                 }
8061                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8062                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8063                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8064                 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));
8065                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8066                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8067                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8068                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8069         }
8070         if (flags & NDR_OUT) {
8071                 if (r->out.info == NULL) {
8072                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8073                 }
8074                 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8075                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8076         }
8077         return NDR_ERR_SUCCESS;
8078 }
8079
8080 static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
8081 {
8082         uint32_t _ptr_server_name;
8083         TALLOC_CTX *_mem_save_server_name_0;
8084         TALLOC_CTX *_mem_save_info_0;
8085         if (flags & NDR_IN) {
8086                 ZERO_STRUCT(r->out);
8087
8088                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8089                 if (_ptr_server_name) {
8090                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8091                 } else {
8092                         r->in.server_name = NULL;
8093                 }
8094                 if (r->in.server_name) {
8095                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8096                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8097                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8098                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8099                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8100                                 return 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));
8101                         }
8102                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8103                         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));
8104                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8105                 }
8106                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8107                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8108                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8109                         return 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));
8110                 }
8111                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8112                 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));
8113                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8114                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8115                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8116                         return 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));
8117                 }
8118                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8119                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8120                 NDR_PULL_ALLOC(ndr, r->out.info);
8121                 ZERO_STRUCTP(r->out.info);
8122         }
8123         if (flags & NDR_OUT) {
8124                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8125                         NDR_PULL_ALLOC(ndr, r->out.info);
8126                 }
8127                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8128                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8129                 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8130                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8131                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8132         }
8133         return NDR_ERR_SUCCESS;
8134 }
8135
8136 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
8137 {
8138         ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
8139         ndr->depth++;
8140         if (flags & NDR_SET_VALUES) {
8141                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8142         }
8143         if (flags & NDR_IN) {
8144                 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
8145                 ndr->depth++;
8146                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8147                 ndr->depth++;
8148                 if (r->in.server_name) {
8149                         ndr_print_string(ndr, "server_name", r->in.server_name);
8150                 }
8151                 ndr->depth--;
8152                 ndr_print_string(ndr, "account_name", r->in.account_name);
8153                 ndr_print_string(ndr, "workstation", r->in.workstation);
8154                 ndr->depth--;
8155         }
8156         if (flags & NDR_OUT) {
8157                 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
8158                 ndr->depth++;
8159                 ndr_print_ptr(ndr, "info", r->out.info);
8160                 ndr->depth++;
8161                 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
8162                 ndr->depth--;
8163                 ndr_print_WERROR(ndr, "result", r->out.result);
8164                 ndr->depth--;
8165         }
8166         ndr->depth--;
8167 }
8168
8169 static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
8170 {
8171         if (flags & NDR_IN) {
8172                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8173                 if (r->in.server_name) {
8174                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8175                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8176                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8177                         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));
8178                 }
8179                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8180                 if (r->in.computer_name) {
8181                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8182                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8183                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8184                         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));
8185                 }
8186                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8187                 if (r->in.credential) {
8188                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8189                 }
8190                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8191                 if (r->in.return_authenticator) {
8192                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8193                 }
8194                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
8195                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8196                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8197                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
8198         }
8199         if (flags & NDR_OUT) {
8200                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8201                 if (r->out.return_authenticator) {
8202                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8203                 }
8204                 if (r->out.validation == NULL) {
8205                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8206                 }
8207                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8208                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8209                 if (r->out.authoritative == NULL) {
8210                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8211                 }
8212                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
8213                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8214         }
8215         return NDR_ERR_SUCCESS;
8216 }
8217
8218 static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
8219 {
8220         uint32_t _ptr_server_name;
8221         uint32_t _ptr_computer_name;
8222         uint32_t _ptr_credential;
8223         uint32_t _ptr_return_authenticator;
8224         TALLOC_CTX *_mem_save_server_name_0;
8225         TALLOC_CTX *_mem_save_computer_name_0;
8226         TALLOC_CTX *_mem_save_credential_0;
8227         TALLOC_CTX *_mem_save_return_authenticator_0;
8228         TALLOC_CTX *_mem_save_validation_0;
8229         TALLOC_CTX *_mem_save_authoritative_0;
8230         if (flags & NDR_IN) {
8231                 ZERO_STRUCT(r->out);
8232
8233                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8234                 if (_ptr_server_name) {
8235                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8236                 } else {
8237                         r->in.server_name = NULL;
8238                 }
8239                 if (r->in.server_name) {
8240                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8241                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8242                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8243                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8244                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8245                                 return 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));
8246                         }
8247                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8248                         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));
8249                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8250                 }
8251                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8252                 if (_ptr_computer_name) {
8253                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8254                 } else {
8255                         r->in.computer_name = NULL;
8256                 }
8257                 if (r->in.computer_name) {
8258                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8259                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8260                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8261                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8262                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8263                                 return 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));
8264                         }
8265                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8266                         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));
8267                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8268                 }
8269                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8270                 if (_ptr_credential) {
8271                         NDR_PULL_ALLOC(ndr, r->in.credential);
8272                 } else {
8273                         r->in.credential = NULL;
8274                 }
8275                 if (r->in.credential) {
8276                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8277                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8278                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8279                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8280                 }
8281                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8282                 if (_ptr_return_authenticator) {
8283                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8284                 } else {
8285                         r->in.return_authenticator = NULL;
8286                 }
8287                 if (r->in.return_authenticator) {
8288                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8289                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8290                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8291                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8292                 }
8293                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
8294                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8295                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8296                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
8297                 NDR_PULL_ALLOC(ndr, r->out.validation);
8298                 ZERO_STRUCTP(r->out.validation);
8299                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
8300                 ZERO_STRUCTP(r->out.authoritative);
8301         }
8302         if (flags & NDR_OUT) {
8303                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8304                 if (_ptr_return_authenticator) {
8305                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8306                 } else {
8307                         r->out.return_authenticator = NULL;
8308                 }
8309                 if (r->out.return_authenticator) {
8310                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8311                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8312                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8313                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8314                 }
8315                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8316                         NDR_PULL_ALLOC(ndr, r->out.validation);
8317                 }
8318                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
8319                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
8320                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8321                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8322                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
8323                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8324                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
8325                 }
8326                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
8327                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
8328                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
8329                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
8330                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8331         }
8332         return NDR_ERR_SUCCESS;
8333 }
8334
8335 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
8336 {
8337         ndr_print_struct(ndr, name, "netr_LogonSamLogon");
8338         ndr->depth++;
8339         if (flags & NDR_SET_VALUES) {
8340                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8341         }
8342         if (flags & NDR_IN) {
8343                 ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
8344                 ndr->depth++;
8345                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8346                 ndr->depth++;
8347                 if (r->in.server_name) {
8348                         ndr_print_string(ndr, "server_name", r->in.server_name);
8349                 }
8350                 ndr->depth--;
8351                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8352                 ndr->depth++;
8353                 if (r->in.computer_name) {
8354                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8355                 }
8356                 ndr->depth--;
8357                 ndr_print_ptr(ndr, "credential", r->in.credential);
8358                 ndr->depth++;
8359                 if (r->in.credential) {
8360                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8361                 }
8362                 ndr->depth--;
8363                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8364                 ndr->depth++;
8365                 if (r->in.return_authenticator) {
8366                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8367                 }
8368                 ndr->depth--;
8369                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
8370                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
8371                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
8372                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
8373                 ndr->depth--;
8374         }
8375         if (flags & NDR_OUT) {
8376                 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
8377                 ndr->depth++;
8378                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8379                 ndr->depth++;
8380                 if (r->out.return_authenticator) {
8381                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8382                 }
8383                 ndr->depth--;
8384                 ndr_print_ptr(ndr, "validation", r->out.validation);
8385                 ndr->depth++;
8386                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
8387                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
8388                 ndr->depth--;
8389                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
8390                 ndr->depth++;
8391                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
8392                 ndr->depth--;
8393                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8394                 ndr->depth--;
8395         }
8396         ndr->depth--;
8397 }
8398
8399 static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
8400 {
8401         if (flags & NDR_IN) {
8402                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8403                 if (r->in.server_name) {
8404                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8405                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8406                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8407                         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));
8408                 }
8409                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8410                 if (r->in.computer_name) {
8411                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8412                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8413                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8414                         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));
8415                 }
8416                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8417                 if (r->in.credential) {
8418                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8419                 }
8420                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8421                 if (r->in.return_authenticator) {
8422                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8423                 }
8424                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
8425                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8426                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8427         }
8428         if (flags & NDR_OUT) {
8429                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8430                 if (r->out.return_authenticator) {
8431                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8432                 }
8433                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8434         }
8435         return NDR_ERR_SUCCESS;
8436 }
8437
8438 static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
8439 {
8440         uint32_t _ptr_server_name;
8441         uint32_t _ptr_computer_name;
8442         uint32_t _ptr_credential;
8443         uint32_t _ptr_return_authenticator;
8444         TALLOC_CTX *_mem_save_server_name_0;
8445         TALLOC_CTX *_mem_save_computer_name_0;
8446         TALLOC_CTX *_mem_save_credential_0;
8447         TALLOC_CTX *_mem_save_return_authenticator_0;
8448         if (flags & NDR_IN) {
8449                 ZERO_STRUCT(r->out);
8450
8451                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8452                 if (_ptr_server_name) {
8453                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8454                 } else {
8455                         r->in.server_name = NULL;
8456                 }
8457                 if (r->in.server_name) {
8458                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8459                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8460                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8461                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8462                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8463                                 return 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));
8464                         }
8465                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8466                         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));
8467                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8468                 }
8469                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8470                 if (_ptr_computer_name) {
8471                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8472                 } else {
8473                         r->in.computer_name = NULL;
8474                 }
8475                 if (r->in.computer_name) {
8476                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8477                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8478                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8479                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8480                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8481                                 return 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));
8482                         }
8483                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8484                         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));
8485                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8486                 }
8487                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8488                 if (_ptr_credential) {
8489                         NDR_PULL_ALLOC(ndr, r->in.credential);
8490                 } else {
8491                         r->in.credential = NULL;
8492                 }
8493                 if (r->in.credential) {
8494                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8495                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8496                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8497                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8498                 }
8499                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8500                 if (_ptr_return_authenticator) {
8501                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8502                 } else {
8503                         r->in.return_authenticator = NULL;
8504                 }
8505                 if (r->in.return_authenticator) {
8506                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8507                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8508                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8509                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8510                 }
8511                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
8512                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8513                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8514         }
8515         if (flags & NDR_OUT) {
8516                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8517                 if (_ptr_return_authenticator) {
8518                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8519                 } else {
8520                         r->out.return_authenticator = NULL;
8521                 }
8522                 if (r->out.return_authenticator) {
8523                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8524                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8525                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8526                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8527                 }
8528                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8529         }
8530         return NDR_ERR_SUCCESS;
8531 }
8532
8533 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
8534 {
8535         ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
8536         ndr->depth++;
8537         if (flags & NDR_SET_VALUES) {
8538                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8539         }
8540         if (flags & NDR_IN) {
8541                 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
8542                 ndr->depth++;
8543                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8544                 ndr->depth++;
8545                 if (r->in.server_name) {
8546                         ndr_print_string(ndr, "server_name", r->in.server_name);
8547                 }
8548                 ndr->depth--;
8549                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8550                 ndr->depth++;
8551                 if (r->in.computer_name) {
8552                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8553                 }
8554                 ndr->depth--;
8555                 ndr_print_ptr(ndr, "credential", r->in.credential);
8556                 ndr->depth++;
8557                 if (r->in.credential) {
8558                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8559                 }
8560                 ndr->depth--;
8561                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8562                 ndr->depth++;
8563                 if (r->in.return_authenticator) {
8564                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8565                 }
8566                 ndr->depth--;
8567                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
8568                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
8569                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
8570                 ndr->depth--;
8571         }
8572         if (flags & NDR_OUT) {
8573                 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
8574                 ndr->depth++;
8575                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8576                 ndr->depth++;
8577                 if (r->out.return_authenticator) {
8578                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8579                 }
8580                 ndr->depth--;
8581                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8582                 ndr->depth--;
8583         }
8584         ndr->depth--;
8585 }
8586
8587 static enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
8588 {
8589         if (flags & NDR_IN) {
8590                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8591                 if (r->in.server_name) {
8592                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8593                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8594                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8595                         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));
8596                 }
8597                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8598                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8599                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8600                 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));
8601                 if (r->in.credentials == NULL) {
8602                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8603                 }
8604                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8605         }
8606         if (flags & NDR_OUT) {
8607                 if (r->out.credentials == NULL) {
8608                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8609                 }
8610                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8611                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8612         }
8613         return NDR_ERR_SUCCESS;
8614 }
8615
8616 static enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
8617 {
8618         uint32_t _ptr_server_name;
8619         TALLOC_CTX *_mem_save_server_name_0;
8620         TALLOC_CTX *_mem_save_credentials_0;
8621         if (flags & NDR_IN) {
8622                 ZERO_STRUCT(r->out);
8623
8624                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8625                 if (_ptr_server_name) {
8626                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8627                 } else {
8628                         r->in.server_name = NULL;
8629                 }
8630                 if (r->in.server_name) {
8631                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8632                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8633                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8634                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8635                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8636                                 return 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));
8637                         }
8638                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8639                         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));
8640                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8641                 }
8642                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8643                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8644                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8645                         return 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));
8646                 }
8647                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8648                 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));
8649                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8650                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8651                 }
8652                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8653                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8654                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8655                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8656                 NDR_PULL_ALLOC(ndr, r->out.credentials);
8657                 *r->out.credentials = *r->in.credentials;
8658         }
8659         if (flags & NDR_OUT) {
8660                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8661                         NDR_PULL_ALLOC(ndr, r->out.credentials);
8662                 }
8663                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8664                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
8665                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8666                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8667                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8668         }
8669         return NDR_ERR_SUCCESS;
8670 }
8671
8672 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
8673 {
8674         ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
8675         ndr->depth++;
8676         if (flags & NDR_SET_VALUES) {
8677                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8678         }
8679         if (flags & NDR_IN) {
8680                 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
8681                 ndr->depth++;
8682                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8683                 ndr->depth++;
8684                 if (r->in.server_name) {
8685                         ndr_print_string(ndr, "server_name", r->in.server_name);
8686                 }
8687                 ndr->depth--;
8688                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8689                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8690                 ndr->depth++;
8691                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8692                 ndr->depth--;
8693                 ndr->depth--;
8694         }
8695         if (flags & NDR_OUT) {
8696                 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
8697                 ndr->depth++;
8698                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
8699                 ndr->depth++;
8700                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
8701                 ndr->depth--;
8702                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8703                 ndr->depth--;
8704         }
8705         ndr->depth--;
8706 }
8707
8708 static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
8709 {
8710         if (flags & NDR_IN) {
8711                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8712                 if (r->in.server_name) {
8713                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8714                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8715                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8716                         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));
8717                 }
8718                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8719                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8720                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8721                 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));
8722                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8723                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8724                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8725                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8726                 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));
8727                 if (r->in.credentials == NULL) {
8728                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8729                 }
8730                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8731         }
8732         if (flags & NDR_OUT) {
8733                 if (r->out.credentials == NULL) {
8734                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8735                 }
8736                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8737                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8738         }
8739         return NDR_ERR_SUCCESS;
8740 }
8741
8742 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
8743 {
8744         uint32_t _ptr_server_name;
8745         TALLOC_CTX *_mem_save_server_name_0;
8746         TALLOC_CTX *_mem_save_credentials_0;
8747         if (flags & NDR_IN) {
8748                 ZERO_STRUCT(r->out);
8749
8750                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8751                 if (_ptr_server_name) {
8752                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8753                 } else {
8754                         r->in.server_name = NULL;
8755                 }
8756                 if (r->in.server_name) {
8757                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8758                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8759                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8760                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8761                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8762                                 return 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));
8763                         }
8764                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8765                         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));
8766                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8767                 }
8768                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8769                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8770                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8771                         return 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));
8772                 }
8773                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8774                 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));
8775                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8776                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8777                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8778                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8779                         return 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));
8780                 }
8781                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8782                 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));
8783                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8784                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8785                 }
8786                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8787                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8788                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8789                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8790                 NDR_PULL_ALLOC(ndr, r->out.credentials);
8791                 *r->out.credentials = *r->in.credentials;
8792         }
8793         if (flags & NDR_OUT) {
8794                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8795                         NDR_PULL_ALLOC(ndr, r->out.credentials);
8796                 }
8797                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8798                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
8799                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8800                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8801                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8802         }
8803         return NDR_ERR_SUCCESS;
8804 }
8805
8806 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
8807 {
8808         ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
8809         ndr->depth++;
8810         if (flags & NDR_SET_VALUES) {
8811                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8812         }
8813         if (flags & NDR_IN) {
8814                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
8815                 ndr->depth++;
8816                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8817                 ndr->depth++;
8818                 if (r->in.server_name) {
8819                         ndr_print_string(ndr, "server_name", r->in.server_name);
8820                 }
8821                 ndr->depth--;
8822                 ndr_print_string(ndr, "account_name", r->in.account_name);
8823                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8824                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8825                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8826                 ndr->depth++;
8827                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8828                 ndr->depth--;
8829                 ndr->depth--;
8830         }
8831         if (flags & NDR_OUT) {
8832                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
8833                 ndr->depth++;
8834                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
8835                 ndr->depth++;
8836                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
8837                 ndr->depth--;
8838                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8839                 ndr->depth--;
8840         }
8841         ndr->depth--;
8842 }
8843
8844 static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
8845 {
8846         if (flags & NDR_IN) {
8847                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8848                 if (r->in.server_name) {
8849                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8850                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8851                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8852                         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));
8853                 }
8854                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8855                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8856                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8857                 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));
8858                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8859                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8860                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8861                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8862                 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));
8863                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8864                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.new_password));
8865         }
8866         if (flags & NDR_OUT) {
8867                 if (r->out.return_authenticator == NULL) {
8868                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8869                 }
8870                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8871                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8872         }
8873         return NDR_ERR_SUCCESS;
8874 }
8875
8876 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
8877 {
8878         uint32_t _ptr_server_name;
8879         TALLOC_CTX *_mem_save_server_name_0;
8880         TALLOC_CTX *_mem_save_return_authenticator_0;
8881         if (flags & NDR_IN) {
8882                 ZERO_STRUCT(r->out);
8883
8884                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8885                 if (_ptr_server_name) {
8886                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8887                 } else {
8888                         r->in.server_name = NULL;
8889                 }
8890                 if (r->in.server_name) {
8891                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8892                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8893                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8894                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8895                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8896                                 return 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));
8897                         }
8898                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8899                         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));
8900                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8901                 }
8902                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8903                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8904                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8905                         return 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));
8906                 }
8907                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8908                 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));
8909                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8910                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8911                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8912                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8913                         return 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));
8914                 }
8915                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8916                 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));
8917                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8918                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.new_password));
8919                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8920                 ZERO_STRUCTP(r->out.return_authenticator);
8921         }
8922         if (flags & NDR_OUT) {
8923                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8924                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8925                 }
8926                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8927                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8928                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8929                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8930                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8931         }
8932         return NDR_ERR_SUCCESS;
8933 }
8934
8935 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
8936 {
8937         ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
8938         ndr->depth++;
8939         if (flags & NDR_SET_VALUES) {
8940                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8941         }
8942         if (flags & NDR_IN) {
8943                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
8944                 ndr->depth++;
8945                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8946                 ndr->depth++;
8947                 if (r->in.server_name) {
8948                         ndr_print_string(ndr, "server_name", r->in.server_name);
8949                 }
8950                 ndr->depth--;
8951                 ndr_print_string(ndr, "account_name", r->in.account_name);
8952                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8953                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8954                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
8955                 ndr_print_samr_Password(ndr, "new_password", &r->in.new_password);
8956                 ndr->depth--;
8957         }
8958         if (flags & NDR_OUT) {
8959                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
8960                 ndr->depth++;
8961                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8962                 ndr->depth++;
8963                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8964                 ndr->depth--;
8965                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8966                 ndr->depth--;
8967         }
8968         ndr->depth--;
8969 }
8970
8971 static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
8972 {
8973         if (flags & NDR_IN) {
8974                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8975                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8976                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
8977                 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));
8978                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8979                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8980                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
8981                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8982                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
8983                 if (r->in.return_authenticator == NULL) {
8984                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8985                 }
8986                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8987                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
8988                 if (r->in.sequence_num == NULL) {
8989                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8990                 }
8991                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
8992                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
8993         }
8994         if (flags & NDR_OUT) {
8995                 if (r->out.return_authenticator == NULL) {
8996                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8997                 }
8998                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8999                 if (r->out.sequence_num == NULL) {
9000                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9001                 }
9002                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
9003                 if (r->out.delta_enum_array == NULL) {
9004                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9005                 }
9006                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9007                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9008         }
9009         return NDR_ERR_SUCCESS;
9010 }
9011
9012 static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
9013 {
9014         TALLOC_CTX *_mem_save_return_authenticator_0;
9015         TALLOC_CTX *_mem_save_sequence_num_0;
9016         TALLOC_CTX *_mem_save_delta_enum_array_0;
9017         if (flags & NDR_IN) {
9018                 ZERO_STRUCT(r->out);
9019
9020                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9021                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9022                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9023                         return 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));
9024                 }
9025                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9026                 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));
9027                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9028                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9029                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9030                         return 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));
9031                 }
9032                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9033                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9034                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9035                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9036                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9037                 }
9038                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9039                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9040                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9041                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9042                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9043                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9044                         NDR_PULL_ALLOC(ndr, r->in.sequence_num);
9045                 }
9046                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9047                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9048                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
9049                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9050                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9051                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9052                 *r->out.return_authenticator = *r->in.return_authenticator;
9053                 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9054                 *r->out.sequence_num = *r->in.sequence_num;
9055                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9056                 ZERO_STRUCTP(r->out.delta_enum_array);
9057         }
9058         if (flags & NDR_OUT) {
9059                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9060                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9061                 }
9062                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9063                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9064                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9065                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9066                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9067                         NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9068                 }
9069                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9070                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9071                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
9072                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9073                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9074                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9075                 }
9076                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9077                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9078                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9079                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9080                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9081         }
9082         return NDR_ERR_SUCCESS;
9083 }
9084
9085 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
9086 {
9087         ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
9088         ndr->depth++;
9089         if (flags & NDR_SET_VALUES) {
9090                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9091         }
9092         if (flags & NDR_IN) {
9093                 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
9094                 ndr->depth++;
9095                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9096                 ndr_print_string(ndr, "computername", r->in.computername);
9097                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9098                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9099                 ndr->depth++;
9100                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9101                 ndr->depth--;
9102                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9103                 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
9104                 ndr->depth++;
9105                 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
9106                 ndr->depth--;
9107                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9108                 ndr->depth--;
9109         }
9110         if (flags & NDR_OUT) {
9111                 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
9112                 ndr->depth++;
9113                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9114                 ndr->depth++;
9115                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9116                 ndr->depth--;
9117                 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
9118                 ndr->depth++;
9119                 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
9120                 ndr->depth--;
9121                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9122                 ndr->depth++;
9123                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
9124                 ndr->depth--;
9125                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9126                 ndr->depth--;
9127         }
9128         ndr->depth--;
9129 }
9130
9131 static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
9132 {
9133         if (flags & NDR_IN) {
9134                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9135                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9136                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9137                 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));
9138                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9139                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9140                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9141                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9142                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9143                 if (r->in.return_authenticator == NULL) {
9144                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9145                 }
9146                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9147                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9148                 if (r->in.sync_context == NULL) {
9149                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9150                 }
9151                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
9152                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9153         }
9154         if (flags & NDR_OUT) {
9155                 if (r->out.return_authenticator == NULL) {
9156                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9157                 }
9158                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9159                 if (r->out.sync_context == NULL) {
9160                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9161                 }
9162                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
9163                 if (r->out.delta_enum_array == NULL) {
9164                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9165                 }
9166                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9167                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9168         }
9169         return NDR_ERR_SUCCESS;
9170 }
9171
9172 static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
9173 {
9174         TALLOC_CTX *_mem_save_return_authenticator_0;
9175         TALLOC_CTX *_mem_save_sync_context_0;
9176         TALLOC_CTX *_mem_save_delta_enum_array_0;
9177         if (flags & NDR_IN) {
9178                 ZERO_STRUCT(r->out);
9179
9180                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9181                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9182                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9183                         return 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));
9184                 }
9185                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9186                 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));
9187                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9188                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9189                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9190                         return 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));
9191                 }
9192                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9193                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9194                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9195                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9196                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9197                 }
9198                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9199                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9200                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9201                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9202                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9203                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9204                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
9205                 }
9206                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9207                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
9208                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
9209                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9210                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9211                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9212                 *r->out.return_authenticator = *r->in.return_authenticator;
9213                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
9214                 *r->out.sync_context = *r->in.sync_context;
9215                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9216                 ZERO_STRUCTP(r->out.delta_enum_array);
9217         }
9218         if (flags & NDR_OUT) {
9219                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9220                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9221                 }
9222                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9223                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9224                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9225                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9226                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9227                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
9228                 }
9229                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9230                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
9231                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
9232                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9233                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9234                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9235                 }
9236                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9237                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9238                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9239                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9240                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9241         }
9242         return NDR_ERR_SUCCESS;
9243 }
9244
9245 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
9246 {
9247         ndr_print_struct(ndr, name, "netr_DatabaseSync");
9248         ndr->depth++;
9249         if (flags & NDR_SET_VALUES) {
9250                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9251         }
9252         if (flags & NDR_IN) {
9253                 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
9254                 ndr->depth++;
9255                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9256                 ndr_print_string(ndr, "computername", r->in.computername);
9257                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9258                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9259                 ndr->depth++;
9260                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9261                 ndr->depth--;
9262                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9263                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
9264                 ndr->depth++;
9265                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
9266                 ndr->depth--;
9267                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9268                 ndr->depth--;
9269         }
9270         if (flags & NDR_OUT) {
9271                 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
9272                 ndr->depth++;
9273                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9274                 ndr->depth++;
9275                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9276                 ndr->depth--;
9277                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
9278                 ndr->depth++;
9279                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
9280                 ndr->depth--;
9281                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9282                 ndr->depth++;
9283                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
9284                 ndr->depth--;
9285                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9286                 ndr->depth--;
9287         }
9288         ndr->depth--;
9289 }
9290
9291 static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
9292 {
9293         if (flags & NDR_IN) {
9294                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9295                 if (r->in.logon_server) {
9296                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9297                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9298                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9299                         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));
9300                 }
9301                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9302                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9303                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9304                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9305                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9306                 if (r->in.return_authenticator == NULL) {
9307                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9308                 }
9309                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9310                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9311                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
9312                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9313                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9314         }
9315         if (flags & NDR_OUT) {
9316                 if (r->out.return_authenticator == NULL) {
9317                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9318                 }
9319                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9320                 if (r->out.buffer == NULL) {
9321                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9322                 }
9323                 {
9324                         struct ndr_push *_ndr_buffer;
9325                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9326                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9327                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9328                 }
9329                 if (r->out.count_returned == NULL) {
9330                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9331                 }
9332                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9333                 if (r->out.total_entries == NULL) {
9334                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9335                 }
9336                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9337                 if (r->out.recordid == NULL) {
9338                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9339                 }
9340                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9341                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9342         }
9343         return NDR_ERR_SUCCESS;
9344 }
9345
9346 static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
9347 {
9348         uint32_t _ptr_logon_server;
9349         TALLOC_CTX *_mem_save_logon_server_0;
9350         TALLOC_CTX *_mem_save_return_authenticator_0;
9351         TALLOC_CTX *_mem_save_buffer_0;
9352         TALLOC_CTX *_mem_save_count_returned_0;
9353         TALLOC_CTX *_mem_save_total_entries_0;
9354         TALLOC_CTX *_mem_save_recordid_0;
9355         if (flags & NDR_IN) {
9356                 ZERO_STRUCT(r->out);
9357
9358                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9359                 if (_ptr_logon_server) {
9360                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9361                 } else {
9362                         r->in.logon_server = NULL;
9363                 }
9364                 if (r->in.logon_server) {
9365                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9366                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9367                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9368                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9369                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9370                                 return 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));
9371                         }
9372                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9373                         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));
9374                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9375                 }
9376                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9377                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9378                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9379                         return 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));
9380                 }
9381                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9382                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9383                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9384                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9385                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9386                 }
9387                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9388                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9389                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9390                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9391                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9392                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
9393                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9394                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9395                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9396                 *r->out.return_authenticator = *r->in.return_authenticator;
9397                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9398                 ZERO_STRUCTP(r->out.buffer);
9399                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9400                 ZERO_STRUCTP(r->out.count_returned);
9401                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9402                 ZERO_STRUCTP(r->out.total_entries);
9403                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9404                 ZERO_STRUCTP(r->out.recordid);
9405         }
9406         if (flags & NDR_OUT) {
9407                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9408                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9409                 }
9410                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9411                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9412                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9413                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9414                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9415                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9416                 }
9417                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9418                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9419                 {
9420                         struct ndr_pull *_ndr_buffer;
9421                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9422                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9423                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9424                 }
9425                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9426                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9427                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9428                 }
9429                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9430                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9431                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9432                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9433                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9434                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9435                 }
9436                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9437                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9438                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9439                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9440                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9441                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9442                 }
9443                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9444                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9445                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9446                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9447                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9448         }
9449         return NDR_ERR_SUCCESS;
9450 }
9451
9452 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
9453 {
9454         ndr_print_struct(ndr, name, "netr_AccountDeltas");
9455         ndr->depth++;
9456         if (flags & NDR_SET_VALUES) {
9457                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9458         }
9459         if (flags & NDR_IN) {
9460                 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
9461                 ndr->depth++;
9462                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9463                 ndr->depth++;
9464                 if (r->in.logon_server) {
9465                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9466                 }
9467                 ndr->depth--;
9468                 ndr_print_string(ndr, "computername", r->in.computername);
9469                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9470                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9471                 ndr->depth++;
9472                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9473                 ndr->depth--;
9474                 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
9475                 ndr_print_uint32(ndr, "count", r->in.count);
9476                 ndr_print_uint32(ndr, "level", r->in.level);
9477                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9478                 ndr->depth--;
9479         }
9480         if (flags & NDR_OUT) {
9481                 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
9482                 ndr->depth++;
9483                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9484                 ndr->depth++;
9485                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9486                 ndr->depth--;
9487                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9488                 ndr->depth++;
9489                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9490                 ndr->depth--;
9491                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9492                 ndr->depth++;
9493                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9494                 ndr->depth--;
9495                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9496                 ndr->depth++;
9497                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9498                 ndr->depth--;
9499                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9500                 ndr->depth++;
9501                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9502                 ndr->depth--;
9503                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9504                 ndr->depth--;
9505         }
9506         ndr->depth--;
9507 }
9508
9509 static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
9510 {
9511         if (flags & NDR_IN) {
9512                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9513                 if (r->in.logon_server) {
9514                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9515                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9516                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9517                         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));
9518                 }
9519                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9520                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9521                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9522                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9523                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9524                 if (r->in.return_authenticator == NULL) {
9525                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9526                 }
9527                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9528                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
9529                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9530                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9531                 if (r->in.recordid == NULL) {
9532                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9533                 }
9534                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9535         }
9536         if (flags & NDR_OUT) {
9537                 if (r->out.return_authenticator == NULL) {
9538                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9539                 }
9540                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9541                 if (r->out.buffer == NULL) {
9542                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9543                 }
9544                 {
9545                         struct ndr_push *_ndr_buffer;
9546                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9547                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9548                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9549                 }
9550                 if (r->out.count_returned == NULL) {
9551                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9552                 }
9553                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9554                 if (r->out.total_entries == NULL) {
9555                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9556                 }
9557                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9558                 if (r->out.next_reference == NULL) {
9559                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9560                 }
9561                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
9562                 if (r->out.recordid == NULL) {
9563                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9564                 }
9565                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9566                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9567         }
9568         return NDR_ERR_SUCCESS;
9569 }
9570
9571 static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
9572 {
9573         uint32_t _ptr_logon_server;
9574         TALLOC_CTX *_mem_save_logon_server_0;
9575         TALLOC_CTX *_mem_save_return_authenticator_0;
9576         TALLOC_CTX *_mem_save_buffer_0;
9577         TALLOC_CTX *_mem_save_count_returned_0;
9578         TALLOC_CTX *_mem_save_total_entries_0;
9579         TALLOC_CTX *_mem_save_next_reference_0;
9580         TALLOC_CTX *_mem_save_recordid_0;
9581         if (flags & NDR_IN) {
9582                 ZERO_STRUCT(r->out);
9583
9584                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9585                 if (_ptr_logon_server) {
9586                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9587                 } else {
9588                         r->in.logon_server = NULL;
9589                 }
9590                 if (r->in.logon_server) {
9591                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9592                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9593                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9594                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9595                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9596                                 return 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));
9597                         }
9598                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9599                         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));
9600                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9601                 }
9602                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9603                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9604                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9605                         return 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));
9606                 }
9607                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9608                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9609                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9610                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9611                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9612                 }
9613                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9614                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9615                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9616                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9617                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
9618                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9619                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9620                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9621                         NDR_PULL_ALLOC(ndr, r->in.recordid);
9622                 }
9623                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9624                 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
9625                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9626                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9627                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9628                 *r->out.return_authenticator = *r->in.return_authenticator;
9629                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9630                 ZERO_STRUCTP(r->out.buffer);
9631                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9632                 ZERO_STRUCTP(r->out.count_returned);
9633                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9634                 ZERO_STRUCTP(r->out.total_entries);
9635                 NDR_PULL_ALLOC(ndr, r->out.next_reference);
9636                 ZERO_STRUCTP(r->out.next_reference);
9637                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9638                 *r->out.recordid = *r->in.recordid;
9639         }
9640         if (flags & NDR_OUT) {
9641                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9642                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9643                 }
9644                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9645                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9646                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9647                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9648                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9649                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9650                 }
9651                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9652                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9653                 {
9654                         struct ndr_pull *_ndr_buffer;
9655                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9656                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9657                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9658                 }
9659                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9660                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9661                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9662                 }
9663                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9664                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9665                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9666                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9667                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9668                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9669                 }
9670                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9671                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9672                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9673                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9674                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9675                         NDR_PULL_ALLOC(ndr, r->out.next_reference);
9676                 }
9677                 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
9678                 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
9679                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
9680                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
9681                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9682                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9683                 }
9684                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9685                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9686                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9687                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9688                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9689         }
9690         return NDR_ERR_SUCCESS;
9691 }
9692
9693 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
9694 {
9695         ndr_print_struct(ndr, name, "netr_AccountSync");
9696         ndr->depth++;
9697         if (flags & NDR_SET_VALUES) {
9698                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9699         }
9700         if (flags & NDR_IN) {
9701                 ndr_print_struct(ndr, "in", "netr_AccountSync");
9702                 ndr->depth++;
9703                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9704                 ndr->depth++;
9705                 if (r->in.logon_server) {
9706                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9707                 }
9708                 ndr->depth--;
9709                 ndr_print_string(ndr, "computername", r->in.computername);
9710                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9711                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9712                 ndr->depth++;
9713                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9714                 ndr->depth--;
9715                 ndr_print_uint32(ndr, "reference", r->in.reference);
9716                 ndr_print_uint32(ndr, "level", r->in.level);
9717                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9718                 ndr_print_ptr(ndr, "recordid", r->in.recordid);
9719                 ndr->depth++;
9720                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
9721                 ndr->depth--;
9722                 ndr->depth--;
9723         }
9724         if (flags & NDR_OUT) {
9725                 ndr_print_struct(ndr, "out", "netr_AccountSync");
9726                 ndr->depth++;
9727                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9728                 ndr->depth++;
9729                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9730                 ndr->depth--;
9731                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9732                 ndr->depth++;
9733                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9734                 ndr->depth--;
9735                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9736                 ndr->depth++;
9737                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9738                 ndr->depth--;
9739                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9740                 ndr->depth++;
9741                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9742                 ndr->depth--;
9743                 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
9744                 ndr->depth++;
9745                 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
9746                 ndr->depth--;
9747                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9748                 ndr->depth++;
9749                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9750                 ndr->depth--;
9751                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9752                 ndr->depth--;
9753         }
9754         ndr->depth--;
9755 }
9756
9757 static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
9758 {
9759         if (flags & NDR_IN) {
9760                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9761                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9762                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9763                 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));
9764                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
9765                 if (r->in.domainname) {
9766                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9767                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9768                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9769                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9770                 }
9771         }
9772         if (flags & NDR_OUT) {
9773                 if (r->out.dcname == NULL) {
9774                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9775                 }
9776                 if (*r->out.dcname == NULL) {
9777                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9778                 }
9779                 NDR_CHECK(ndr_push_ref_ptr(ndr));
9780                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9781                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9782                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9783                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9784                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9785         }
9786         return NDR_ERR_SUCCESS;
9787 }
9788
9789 static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
9790 {
9791         uint32_t _ptr_domainname;
9792         uint32_t _ptr_dcname;
9793         TALLOC_CTX *_mem_save_domainname_0;
9794         TALLOC_CTX *_mem_save_dcname_0;
9795         if (flags & NDR_IN) {
9796                 ZERO_STRUCT(r->out);
9797
9798                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9799                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9800                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9801                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
9802                 }
9803                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9804                 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));
9805                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
9806                 if (_ptr_domainname) {
9807                         NDR_PULL_ALLOC(ndr, r->in.domainname);
9808                 } else {
9809                         r->in.domainname = NULL;
9810                 }
9811                 if (r->in.domainname) {
9812                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9813                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
9814                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
9815                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
9816                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
9817                                 return 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));
9818                         }
9819                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
9820                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
9821                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
9822                 }
9823                 NDR_PULL_ALLOC(ndr, r->out.dcname);
9824                 ZERO_STRUCTP(r->out.dcname);
9825         }
9826         if (flags & NDR_OUT) {
9827                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9828                         NDR_PULL_ALLOC(ndr, r->out.dcname);
9829                 }
9830                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9831                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
9832                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_dcname));
9833                 NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
9834                 NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
9835                 if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
9836                         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));
9837                 }
9838                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
9839                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
9840                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
9841                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9842         }
9843         return NDR_ERR_SUCCESS;
9844 }
9845
9846 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
9847 {
9848         ndr_print_struct(ndr, name, "netr_GetDcName");
9849         ndr->depth++;
9850         if (flags & NDR_SET_VALUES) {
9851                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9852         }
9853         if (flags & NDR_IN) {
9854                 ndr_print_struct(ndr, "in", "netr_GetDcName");
9855                 ndr->depth++;
9856                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9857                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
9858                 ndr->depth++;
9859                 if (r->in.domainname) {
9860                         ndr_print_string(ndr, "domainname", r->in.domainname);
9861                 }
9862                 ndr->depth--;
9863                 ndr->depth--;
9864         }
9865         if (flags & NDR_OUT) {
9866                 ndr_print_struct(ndr, "out", "netr_GetDcName");
9867                 ndr->depth++;
9868                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
9869                 ndr->depth++;
9870                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
9871                 ndr->depth++;
9872                 ndr_print_string(ndr, "dcname", *r->out.dcname);
9873                 ndr->depth--;
9874                 ndr->depth--;
9875                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9876                 ndr->depth--;
9877         }
9878         ndr->depth--;
9879 }
9880
9881 static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
9882 {
9883         if (flags & NDR_IN) {
9884                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9885                 if (r->in.logon_server) {
9886                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9887                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9888                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9889                         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));
9890                 }
9891                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
9892                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9893         }
9894         if (flags & NDR_OUT) {
9895                 if (r->out.info == NULL) {
9896                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9897                 }
9898                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
9899                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9900                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9901         }
9902         return NDR_ERR_SUCCESS;
9903 }
9904
9905 static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
9906 {
9907         uint32_t _ptr_logon_server;
9908         TALLOC_CTX *_mem_save_logon_server_0;
9909         TALLOC_CTX *_mem_save_info_0;
9910         if (flags & NDR_IN) {
9911                 ZERO_STRUCT(r->out);
9912
9913                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9914                 if (_ptr_logon_server) {
9915                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9916                 } else {
9917                         r->in.logon_server = NULL;
9918                 }
9919                 if (r->in.logon_server) {
9920                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9921                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9922                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9923                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9924                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9925                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.logon_server), ndr_get_array_length(ndr, &r->in.logon_server));
9926                         }
9927                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9928                         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));
9929                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9930                 }
9931                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
9932                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9933                 NDR_PULL_ALLOC(ndr, r->out.info);
9934                 ZERO_STRUCTP(r->out.info);
9935         }
9936         if (flags & NDR_OUT) {
9937                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9938                         NDR_PULL_ALLOC(ndr, r->out.info);
9939                 }
9940                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
9941                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
9942                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
9943                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9944                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
9945                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9946         }
9947         return NDR_ERR_SUCCESS;
9948 }
9949
9950 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
9951 {
9952         ndr_print_struct(ndr, name, "netr_LogonControl");
9953         ndr->depth++;
9954         if (flags & NDR_SET_VALUES) {
9955                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9956         }
9957         if (flags & NDR_IN) {
9958                 ndr_print_struct(ndr, "in", "netr_LogonControl");
9959                 ndr->depth++;
9960                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9961                 ndr->depth++;
9962                 if (r->in.logon_server) {
9963                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9964                 }
9965                 ndr->depth--;
9966                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
9967                 ndr_print_uint32(ndr, "level", r->in.level);
9968                 ndr->depth--;
9969         }
9970         if (flags & NDR_OUT) {
9971                 ndr_print_struct(ndr, "out", "netr_LogonControl");
9972                 ndr->depth++;
9973                 ndr_print_ptr(ndr, "info", r->out.info);
9974                 ndr->depth++;
9975                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
9976                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "info", r->out.info);
9977                 ndr->depth--;
9978                 ndr_print_WERROR(ndr, "result", r->out.result);
9979                 ndr->depth--;
9980         }
9981         ndr->depth--;
9982 }
9983
9984 static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
9985 {
9986         if (flags & NDR_IN) {
9987                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9988                 if (r->in.logon_server) {
9989                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9990                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9991                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9992                         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));
9993                 }
9994                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
9995                 if (r->in.domainname) {
9996                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9997                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9998                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9999                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10000                 }
10001         }
10002         if (flags & NDR_OUT) {
10003                 if (r->out.dcname == NULL) {
10004                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10005                 }
10006                 if (*r->out.dcname == NULL) {
10007                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10008                 }
10009                 NDR_CHECK(ndr_push_ref_ptr(ndr));
10010                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10011                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10012                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10013                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10014                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10015         }
10016         return NDR_ERR_SUCCESS;
10017 }
10018
10019 static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
10020 {
10021         uint32_t _ptr_logon_server;
10022         uint32_t _ptr_domainname;
10023         uint32_t _ptr_dcname;
10024         TALLOC_CTX *_mem_save_logon_server_0;
10025         TALLOC_CTX *_mem_save_domainname_0;
10026         TALLOC_CTX *_mem_save_dcname_0;
10027         if (flags & NDR_IN) {
10028                 ZERO_STRUCT(r->out);
10029
10030                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10031                 if (_ptr_logon_server) {
10032                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10033                 } else {
10034                         r->in.logon_server = NULL;
10035                 }
10036                 if (r->in.logon_server) {
10037                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10038                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10039                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10040                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10041                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10042                                 return 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));
10043                         }
10044                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10045                         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));
10046                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10047                 }
10048                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
10049                 if (_ptr_domainname) {
10050                         NDR_PULL_ALLOC(ndr, r->in.domainname);
10051                 } else {
10052                         r->in.domainname = NULL;
10053                 }
10054                 if (r->in.domainname) {
10055                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10056                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
10057                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
10058                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
10059                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
10060                                 return 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));
10061                         }
10062                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
10063                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
10064                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
10065                 }
10066                 NDR_PULL_ALLOC(ndr, r->out.dcname);
10067                 ZERO_STRUCTP(r->out.dcname);
10068         }
10069         if (flags & NDR_OUT) {
10070                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10071                         NDR_PULL_ALLOC(ndr, r->out.dcname);
10072                 }
10073                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10074                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
10075                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_dcname));
10076                 NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
10077                 NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
10078                 if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
10079                         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));
10080                 }
10081                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
10082                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
10083                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
10084                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10085         }
10086         return NDR_ERR_SUCCESS;
10087 }
10088
10089 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
10090 {
10091         ndr_print_struct(ndr, name, "netr_GetAnyDCName");
10092         ndr->depth++;
10093         if (flags & NDR_SET_VALUES) {
10094                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10095         }
10096         if (flags & NDR_IN) {
10097                 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
10098                 ndr->depth++;
10099                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10100                 ndr->depth++;
10101                 if (r->in.logon_server) {
10102                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10103                 }
10104                 ndr->depth--;
10105                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
10106                 ndr->depth++;
10107                 if (r->in.domainname) {
10108                         ndr_print_string(ndr, "domainname", r->in.domainname);
10109                 }
10110                 ndr->depth--;
10111                 ndr->depth--;
10112         }
10113         if (flags & NDR_OUT) {
10114                 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
10115                 ndr->depth++;
10116                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
10117                 ndr->depth++;
10118                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
10119                 ndr->depth++;
10120                 ndr_print_string(ndr, "dcname", *r->out.dcname);
10121                 ndr->depth--;
10122                 ndr->depth--;
10123                 ndr_print_WERROR(ndr, "result", r->out.result);
10124                 ndr->depth--;
10125         }
10126         ndr->depth--;
10127 }
10128
10129 static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
10130 {
10131         if (flags & NDR_IN) {
10132                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10133                 if (r->in.logon_server) {
10134                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10135                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10136                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10137                         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));
10138                 }
10139                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
10140                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10141                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
10142                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10143         }
10144         if (flags & NDR_OUT) {
10145                 if (r->out.query == NULL) {
10146                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10147                 }
10148                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10149                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10150                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10151         }
10152         return NDR_ERR_SUCCESS;
10153 }
10154
10155 static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
10156 {
10157         uint32_t _ptr_logon_server;
10158         TALLOC_CTX *_mem_save_logon_server_0;
10159         TALLOC_CTX *_mem_save_query_0;
10160         if (flags & NDR_IN) {
10161                 ZERO_STRUCT(r->out);
10162
10163                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10164                 if (_ptr_logon_server) {
10165                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10166                 } else {
10167                         r->in.logon_server = NULL;
10168                 }
10169                 if (r->in.logon_server) {
10170                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10171                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10172                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10173                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10174                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10175                                 return 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));
10176                         }
10177                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10178                         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));
10179                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10180                 }
10181                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
10182                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10183                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
10184                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10185                 NDR_PULL_ALLOC(ndr, r->out.query);
10186                 ZERO_STRUCTP(r->out.query);
10187         }
10188         if (flags & NDR_OUT) {
10189                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10190                         NDR_PULL_ALLOC(ndr, r->out.query);
10191                 }
10192                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10193                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10194                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10195                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10196                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10197                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10198         }
10199         return NDR_ERR_SUCCESS;
10200 }
10201
10202 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
10203 {
10204         ndr_print_struct(ndr, name, "netr_LogonControl2");
10205         ndr->depth++;
10206         if (flags & NDR_SET_VALUES) {
10207                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10208         }
10209         if (flags & NDR_IN) {
10210                 ndr_print_struct(ndr, "in", "netr_LogonControl2");
10211                 ndr->depth++;
10212                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10213                 ndr->depth++;
10214                 if (r->in.logon_server) {
10215                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10216                 }
10217                 ndr->depth--;
10218                 ndr_print_uint32(ndr, "function_code", r->in.function_code);
10219                 ndr_print_uint32(ndr, "level", r->in.level);
10220                 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
10221                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
10222                 ndr->depth--;
10223         }
10224         if (flags & NDR_OUT) {
10225                 ndr_print_struct(ndr, "out", "netr_LogonControl2");
10226                 ndr->depth++;
10227                 ndr_print_ptr(ndr, "query", r->out.query);
10228                 ndr->depth++;
10229                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10230                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10231                 ndr->depth--;
10232                 ndr_print_WERROR(ndr, "result", r->out.result);
10233                 ndr->depth--;
10234         }
10235         ndr->depth--;
10236 }
10237
10238 static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
10239 {
10240         if (flags & NDR_IN) {
10241                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10242                 if (r->in.server_name) {
10243                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10244                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10245                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10246                         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));
10247                 }
10248                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10249                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10250                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10251                 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));
10252                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
10253                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10254                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10255                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10256                 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));
10257                 if (r->in.credentials == NULL) {
10258                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10259                 }
10260                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10261                 if (r->in.negotiate_flags == NULL) {
10262                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10263                 }
10264                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.negotiate_flags));
10265         }
10266         if (flags & NDR_OUT) {
10267                 if (r->out.credentials == NULL) {
10268                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10269                 }
10270                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
10271                 if (r->out.negotiate_flags == NULL) {
10272                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10273                 }
10274                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.negotiate_flags));
10275                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10276         }
10277         return NDR_ERR_SUCCESS;
10278 }
10279
10280 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
10281 {
10282         uint32_t _ptr_server_name;
10283         TALLOC_CTX *_mem_save_server_name_0;
10284         TALLOC_CTX *_mem_save_credentials_0;
10285         TALLOC_CTX *_mem_save_negotiate_flags_0;
10286         if (flags & NDR_IN) {
10287                 ZERO_STRUCT(r->out);
10288
10289                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10290                 if (_ptr_server_name) {
10291                         NDR_PULL_ALLOC(ndr, r->in.server_name);
10292                 } else {
10293                         r->in.server_name = NULL;
10294                 }
10295                 if (r->in.server_name) {
10296                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10297                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10298                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10299                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10300                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10301                                 return 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));
10302                         }
10303                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10304                         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));
10305                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10306                 }
10307                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
10308                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
10309                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
10310                         return 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));
10311                 }
10312                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
10313                 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));
10314                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
10315                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10316                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10317                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10318                         return 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));
10319                 }
10320                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10321                 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));
10322                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10323                         NDR_PULL_ALLOC(ndr, r->in.credentials);
10324                 }
10325                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10326                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
10327                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10328                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10329                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10330                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
10331                 }
10332                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10333                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10334                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.negotiate_flags));
10335                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10336                 NDR_PULL_ALLOC(ndr, r->out.credentials);
10337                 *r->out.credentials = *r->in.credentials;
10338                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10339                 *r->out.negotiate_flags = *r->in.negotiate_flags;
10340         }
10341         if (flags & NDR_OUT) {
10342                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10343                         NDR_PULL_ALLOC(ndr, r->out.credentials);
10344                 }
10345                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10346                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
10347                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
10348                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10349                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10350                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10351                 }
10352                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10353                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10354                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.negotiate_flags));
10355                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10356                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10357         }
10358         return NDR_ERR_SUCCESS;
10359 }
10360
10361 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
10362 {
10363         ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
10364         ndr->depth++;
10365         if (flags & NDR_SET_VALUES) {
10366                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10367         }
10368         if (flags & NDR_IN) {
10369                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
10370                 ndr->depth++;
10371                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10372                 ndr->depth++;
10373                 if (r->in.server_name) {
10374                         ndr_print_string(ndr, "server_name", r->in.server_name);
10375                 }
10376                 ndr->depth--;
10377                 ndr_print_string(ndr, "account_name", r->in.account_name);
10378                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10379                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10380                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
10381                 ndr->depth++;
10382                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
10383                 ndr->depth--;
10384                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
10385                 ndr->depth++;
10386                 ndr_print_uint32(ndr, "negotiate_flags", *r->in.negotiate_flags);
10387                 ndr->depth--;
10388                 ndr->depth--;
10389         }
10390         if (flags & NDR_OUT) {
10391                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
10392                 ndr->depth++;
10393                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
10394                 ndr->depth++;
10395                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
10396                 ndr->depth--;
10397                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
10398                 ndr->depth++;
10399                 ndr_print_uint32(ndr, "negotiate_flags", *r->out.negotiate_flags);
10400                 ndr->depth--;
10401                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10402                 ndr->depth--;
10403         }
10404         ndr->depth--;
10405 }
10406
10407 static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
10408 {
10409         if (flags & NDR_IN) {
10410                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10411                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10412                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10413                 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));
10414                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10415                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10416                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10417                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10418                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10419                 if (r->in.return_authenticator == NULL) {
10420                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10421                 }
10422                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10423                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10424                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.restart_state));
10425                 if (r->in.sync_context == NULL) {
10426                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10427                 }
10428                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
10429                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10430         }
10431         if (flags & NDR_OUT) {
10432                 if (r->out.return_authenticator == NULL) {
10433                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10434                 }
10435                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10436                 if (r->out.sync_context == NULL) {
10437                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10438                 }
10439                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
10440                 if (r->out.delta_enum_array == NULL) {
10441                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10442                 }
10443                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10444                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10445         }
10446         return NDR_ERR_SUCCESS;
10447 }
10448
10449 static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
10450 {
10451         TALLOC_CTX *_mem_save_return_authenticator_0;
10452         TALLOC_CTX *_mem_save_sync_context_0;
10453         TALLOC_CTX *_mem_save_delta_enum_array_0;
10454         if (flags & NDR_IN) {
10455                 ZERO_STRUCT(r->out);
10456
10457                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10458                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10459                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10460                         return 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));
10461                 }
10462                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10463                 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));
10464                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10465                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10466                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10467                         return 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));
10468                 }
10469                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10470                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10471                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10472                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10473                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10474                 }
10475                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10476                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10477                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10478                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10479                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10480                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.restart_state));
10481                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10482                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
10483                 }
10484                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10485                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
10486                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
10487                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10488                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10489                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10490                 *r->out.return_authenticator = *r->in.return_authenticator;
10491                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10492                 *r->out.sync_context = *r->in.sync_context;
10493                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10494                 ZERO_STRUCTP(r->out.delta_enum_array);
10495         }
10496         if (flags & NDR_OUT) {
10497                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10498                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10499                 }
10500                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10501                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10502                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10503                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10504                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10505                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
10506                 }
10507                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10508                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
10509                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
10510                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10511                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10512                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10513                 }
10514                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10515                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10516                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10517                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10518                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10519         }
10520         return NDR_ERR_SUCCESS;
10521 }
10522
10523 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
10524 {
10525         ndr_print_struct(ndr, name, "netr_DatabaseSync2");
10526         ndr->depth++;
10527         if (flags & NDR_SET_VALUES) {
10528                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10529         }
10530         if (flags & NDR_IN) {
10531                 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
10532                 ndr->depth++;
10533                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10534                 ndr_print_string(ndr, "computername", r->in.computername);
10535                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10536                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10537                 ndr->depth++;
10538                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10539                 ndr->depth--;
10540                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10541                 ndr_print_uint16(ndr, "restart_state", r->in.restart_state);
10542                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
10543                 ndr->depth++;
10544                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
10545                 ndr->depth--;
10546                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10547                 ndr->depth--;
10548         }
10549         if (flags & NDR_OUT) {
10550                 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
10551                 ndr->depth++;
10552                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10553                 ndr->depth++;
10554                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10555                 ndr->depth--;
10556                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
10557                 ndr->depth++;
10558                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
10559                 ndr->depth--;
10560                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10561                 ndr->depth++;
10562                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
10563                 ndr->depth--;
10564                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10565                 ndr->depth--;
10566         }
10567         ndr->depth--;
10568 }
10569
10570 static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
10571 {
10572         if (flags & NDR_IN) {
10573                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10574                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10575                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10576                 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));
10577                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10578                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10579                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10580                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10581                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10582                 if (r->in.return_authenticator == NULL) {
10583                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10584                 }
10585                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10586                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.change_log_entry));
10587                 if (r->in.change_log_entry) {
10588                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10589                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, r->in.change_log_entry_size));
10590                 }
10591                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10592         }
10593         if (flags & NDR_OUT) {
10594                 if (r->out.return_authenticator == NULL) {
10595                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10596                 }
10597                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10598                 if (r->out.delta_enum_array == NULL) {
10599                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10600                 }
10601                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10602                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10603         }
10604         return NDR_ERR_SUCCESS;
10605 }
10606
10607 static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
10608 {
10609         uint32_t _ptr_change_log_entry;
10610         TALLOC_CTX *_mem_save_return_authenticator_0;
10611         TALLOC_CTX *_mem_save_change_log_entry_0;
10612         TALLOC_CTX *_mem_save_delta_enum_array_0;
10613         if (flags & NDR_IN) {
10614                 ZERO_STRUCT(r->out);
10615
10616                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10617                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10618                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10619                         return 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));
10620                 }
10621                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10622                 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));
10623                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10624                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10625                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10626                         return 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));
10627                 }
10628                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10629                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10630                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10631                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10632                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10633                 }
10634                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10635                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10636                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10637                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10638                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_change_log_entry));
10639                 if (_ptr_change_log_entry) {
10640                         NDR_PULL_ALLOC(ndr, r->in.change_log_entry);
10641                 } else {
10642                         r->in.change_log_entry = NULL;
10643                 }
10644                 if (r->in.change_log_entry) {
10645                         _mem_save_change_log_entry_0 = NDR_PULL_GET_MEM_CTX(ndr);
10646                         NDR_PULL_SET_MEM_CTX(ndr, r->in.change_log_entry, 0);
10647                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.change_log_entry));
10648                         NDR_PULL_ALLOC_N(ndr, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry));
10649                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry)));
10650                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_change_log_entry_0, 0);
10651                 }
10652                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
10653                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10654                 *r->out.return_authenticator = *r->in.return_authenticator;
10655                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10656                 ZERO_STRUCTP(r->out.delta_enum_array);
10657                 if (r->in.change_log_entry) {
10658                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.change_log_entry, r->in.change_log_entry_size));
10659                 }
10660         }
10661         if (flags & NDR_OUT) {
10662                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10663                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10664                 }
10665                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10666                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10667                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10668                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10669                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10670                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10671                 }
10672                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10673                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10674                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10675                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10676                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10677         }
10678         return NDR_ERR_SUCCESS;
10679 }
10680
10681 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
10682 {
10683         ndr_print_struct(ndr, name, "netr_DatabaseRedo");
10684         ndr->depth++;
10685         if (flags & NDR_SET_VALUES) {
10686                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10687         }
10688         if (flags & NDR_IN) {
10689                 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
10690                 ndr->depth++;
10691                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10692                 ndr_print_string(ndr, "computername", r->in.computername);
10693                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10694                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10695                 ndr->depth++;
10696                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10697                 ndr->depth--;
10698                 ndr_print_ptr(ndr, "change_log_entry", r->in.change_log_entry);
10699                 ndr->depth++;
10700                 if (r->in.change_log_entry) {
10701                         ndr_print_array_uint8(ndr, "change_log_entry", r->in.change_log_entry, r->in.change_log_entry_size);
10702                 }
10703                 ndr->depth--;
10704                 ndr_print_uint32(ndr, "change_log_entry_size", r->in.change_log_entry_size);
10705                 ndr->depth--;
10706         }
10707         if (flags & NDR_OUT) {
10708                 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
10709                 ndr->depth++;
10710                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10711                 ndr->depth++;
10712                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10713                 ndr->depth--;
10714                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10715                 ndr->depth++;
10716                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
10717                 ndr->depth--;
10718                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10719                 ndr->depth--;
10720         }
10721         ndr->depth--;
10722 }
10723
10724 static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
10725 {
10726         if (flags & NDR_IN) {
10727                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10728                 if (r->in.logon_server) {
10729                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10730                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10731                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10732                         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));
10733                 }
10734                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
10735                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10736                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
10737                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10738         }
10739         if (flags & NDR_OUT) {
10740                 if (r->out.query == NULL) {
10741                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10742                 }
10743                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10744                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10745                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10746         }
10747         return NDR_ERR_SUCCESS;
10748 }
10749
10750 static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
10751 {
10752         uint32_t _ptr_logon_server;
10753         TALLOC_CTX *_mem_save_logon_server_0;
10754         TALLOC_CTX *_mem_save_query_0;
10755         if (flags & NDR_IN) {
10756                 ZERO_STRUCT(r->out);
10757
10758                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10759                 if (_ptr_logon_server) {
10760                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10761                 } else {
10762                         r->in.logon_server = NULL;
10763                 }
10764                 if (r->in.logon_server) {
10765                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10766                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10767                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10768                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10769                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10770                                 return 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));
10771                         }
10772                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10773                         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));
10774                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10775                 }
10776                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
10777                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10778                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
10779                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10780                 NDR_PULL_ALLOC(ndr, r->out.query);
10781                 ZERO_STRUCTP(r->out.query);
10782         }
10783         if (flags & NDR_OUT) {
10784                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10785                         NDR_PULL_ALLOC(ndr, r->out.query);
10786                 }
10787                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10788                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10789                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10790                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10791                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10792                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10793         }
10794         return NDR_ERR_SUCCESS;
10795 }
10796
10797 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
10798 {
10799         ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
10800         ndr->depth++;
10801         if (flags & NDR_SET_VALUES) {
10802                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10803         }
10804         if (flags & NDR_IN) {
10805                 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
10806                 ndr->depth++;
10807                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10808                 ndr->depth++;
10809                 if (r->in.logon_server) {
10810                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10811                 }
10812                 ndr->depth--;
10813                 ndr_print_uint32(ndr, "function_code", r->in.function_code);
10814                 ndr_print_uint32(ndr, "level", r->in.level);
10815                 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
10816                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
10817                 ndr->depth--;
10818         }
10819         if (flags & NDR_OUT) {
10820                 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
10821                 ndr->depth++;
10822                 ndr_print_ptr(ndr, "query", r->out.query);
10823                 ndr->depth++;
10824                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10825                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10826                 ndr->depth--;
10827                 ndr_print_WERROR(ndr, "result", r->out.result);
10828                 ndr->depth--;
10829         }
10830         ndr->depth--;
10831 }
10832
10833 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
10834 {
10835         if (flags & NDR_IN) {
10836                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10837                 if (r->in.server_name) {
10838                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10839                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10840                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10841                         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));
10842                 }
10843         }
10844         if (flags & NDR_OUT) {
10845                 if (r->out.trusted_domains_blob == NULL) {
10846                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10847                 }
10848                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
10849                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10850         }
10851         return NDR_ERR_SUCCESS;
10852 }
10853
10854 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r)
10855 {
10856         uint32_t _ptr_server_name;
10857         TALLOC_CTX *_mem_save_server_name_0;
10858         TALLOC_CTX *_mem_save_trusted_domains_blob_0;
10859         if (flags & NDR_IN) {
10860                 ZERO_STRUCT(r->out);
10861
10862                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10863                 if (_ptr_server_name) {
10864                         NDR_PULL_ALLOC(ndr, r->in.server_name);
10865                 } else {
10866                         r->in.server_name = NULL;
10867                 }
10868                 if (r->in.server_name) {
10869                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10870                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10871                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10872                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10873                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10874                                 return 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));
10875                         }
10876                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10877                         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));
10878                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10879                 }
10880                 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
10881                 ZERO_STRUCTP(r->out.trusted_domains_blob);
10882         }
10883         if (flags & NDR_OUT) {
10884                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10885                         NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
10886                 }
10887                 _mem_save_trusted_domains_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
10888                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusted_domains_blob, LIBNDR_FLAG_REF_ALLOC);
10889                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
10890                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_blob_0, LIBNDR_FLAG_REF_ALLOC);
10891                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10892         }
10893         return NDR_ERR_SUCCESS;
10894 }
10895
10896 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
10897 {
10898         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomains");
10899         ndr->depth++;
10900         if (flags & NDR_SET_VALUES) {
10901                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10902         }
10903         if (flags & NDR_IN) {
10904                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomains");
10905                 ndr->depth++;
10906                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10907                 ndr->depth++;
10908                 if (r->in.server_name) {
10909                         ndr_print_string(ndr, "server_name", r->in.server_name);
10910                 }
10911                 ndr->depth--;
10912                 ndr->depth--;
10913         }
10914         if (flags & NDR_OUT) {
10915                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomains");
10916                 ndr->depth++;
10917                 ndr_print_ptr(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
10918                 ndr->depth++;
10919                 ndr_print_netr_Blob(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
10920                 ndr->depth--;
10921                 ndr_print_WERROR(ndr, "result", r->out.result);
10922                 ndr->depth--;
10923         }
10924         ndr->depth--;
10925 }
10926
10927 static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
10928 {
10929         if (flags & NDR_IN) {
10930                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
10931                 if (r->in.server_unc) {
10932                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
10933                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10934                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
10935                         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));
10936                 }
10937                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
10938                 if (r->in.domain_name) {
10939                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
10940                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10941                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
10942                         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));
10943                 }
10944                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
10945                 if (r->in.domain_guid) {
10946                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
10947                 }
10948                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
10949                 if (r->in.site_guid) {
10950                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
10951                 }
10952                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
10953         }
10954         if (flags & NDR_OUT) {
10955                 if (r->out.info == NULL) {
10956                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10957                 }
10958                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10959                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10960         }
10961         return NDR_ERR_SUCCESS;
10962 }
10963
10964 static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
10965 {
10966         uint32_t _ptr_server_unc;
10967         uint32_t _ptr_domain_name;
10968         uint32_t _ptr_domain_guid;
10969         uint32_t _ptr_site_guid;
10970         TALLOC_CTX *_mem_save_server_unc_0;
10971         TALLOC_CTX *_mem_save_domain_name_0;
10972         TALLOC_CTX *_mem_save_domain_guid_0;
10973         TALLOC_CTX *_mem_save_site_guid_0;
10974         TALLOC_CTX *_mem_save_info_0;
10975         if (flags & NDR_IN) {
10976                 ZERO_STRUCT(r->out);
10977
10978                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
10979                 if (_ptr_server_unc) {
10980                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
10981                 } else {
10982                         r->in.server_unc = NULL;
10983                 }
10984                 if (r->in.server_unc) {
10985                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
10986                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
10987                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
10988                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
10989                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
10990                                 return 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));
10991                         }
10992                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
10993                         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));
10994                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
10995                 }
10996                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
10997                 if (_ptr_domain_name) {
10998                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
10999                 } else {
11000                         r->in.domain_name = NULL;
11001                 }
11002                 if (r->in.domain_name) {
11003                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11004                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11005                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11006                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11007                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11008                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain_name), ndr_get_array_length(ndr, &r->in.domain_name));
11009                         }
11010                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11011                         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));
11012                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11013                 }
11014                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11015                 if (_ptr_domain_guid) {
11016                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11017                 } else {
11018                         r->in.domain_guid = NULL;
11019                 }
11020                 if (r->in.domain_guid) {
11021                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11022                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11023                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11024                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11025                 }
11026                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
11027                 if (_ptr_site_guid) {
11028                         NDR_PULL_ALLOC(ndr, r->in.site_guid);
11029                 } else {
11030                         r->in.site_guid = NULL;
11031                 }
11032                 if (r->in.site_guid) {
11033                         _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11034                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
11035                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
11036                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
11037                 }
11038                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11039                 NDR_PULL_ALLOC(ndr, r->out.info);
11040                 ZERO_STRUCTP(r->out.info);
11041         }
11042         if (flags & NDR_OUT) {
11043                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11044                         NDR_PULL_ALLOC(ndr, r->out.info);
11045                 }
11046                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11047                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11048                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11049                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11050                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11051         }
11052         return NDR_ERR_SUCCESS;
11053 }
11054
11055 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
11056 {
11057         ndr_print_struct(ndr, name, "netr_DsRGetDCName");
11058         ndr->depth++;
11059         if (flags & NDR_SET_VALUES) {
11060                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11061         }
11062         if (flags & NDR_IN) {
11063                 ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
11064                 ndr->depth++;
11065                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11066                 ndr->depth++;
11067                 if (r->in.server_unc) {
11068                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11069                 }
11070                 ndr->depth--;
11071                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11072                 ndr->depth++;
11073                 if (r->in.domain_name) {
11074                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11075                 }
11076                 ndr->depth--;
11077                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11078                 ndr->depth++;
11079                 if (r->in.domain_guid) {
11080                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11081                 }
11082                 ndr->depth--;
11083                 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
11084                 ndr->depth++;
11085                 if (r->in.site_guid) {
11086                         ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
11087                 }
11088                 ndr->depth--;
11089                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11090                 ndr->depth--;
11091         }
11092         if (flags & NDR_OUT) {
11093                 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
11094                 ndr->depth++;
11095                 ndr_print_ptr(ndr, "info", r->out.info);
11096                 ndr->depth++;
11097                 ndr_print_netr_DsRGetDCNameInfo(ndr, "info", r->out.info);
11098                 ndr->depth--;
11099                 ndr_print_WERROR(ndr, "result", r->out.result);
11100                 ndr->depth--;
11101         }
11102         ndr->depth--;
11103 }
11104
11105 static enum ndr_err_code ndr_push_netr_NETRLOGONDUMMYROUTINE1(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11106 {
11107         if (flags & NDR_IN) {
11108         }
11109         if (flags & NDR_OUT) {
11110                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11111         }
11112         return NDR_ERR_SUCCESS;
11113 }
11114
11115 static enum ndr_err_code ndr_pull_netr_NETRLOGONDUMMYROUTINE1(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONDUMMYROUTINE1 *r)
11116 {
11117         if (flags & NDR_IN) {
11118         }
11119         if (flags & NDR_OUT) {
11120                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11121         }
11122         return NDR_ERR_SUCCESS;
11123 }
11124
11125 _PUBLIC_ void ndr_print_netr_NETRLOGONDUMMYROUTINE1(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11126 {
11127         ndr_print_struct(ndr, name, "netr_NETRLOGONDUMMYROUTINE1");
11128         ndr->depth++;
11129         if (flags & NDR_SET_VALUES) {
11130                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11131         }
11132         if (flags & NDR_IN) {
11133                 ndr_print_struct(ndr, "in", "netr_NETRLOGONDUMMYROUTINE1");
11134                 ndr->depth++;
11135                 ndr->depth--;
11136         }
11137         if (flags & NDR_OUT) {
11138                 ndr_print_struct(ndr, "out", "netr_NETRLOGONDUMMYROUTINE1");
11139                 ndr->depth++;
11140                 ndr_print_WERROR(ndr, "result", r->out.result);
11141                 ndr->depth--;
11142         }
11143         ndr->depth--;
11144 }
11145
11146 static enum ndr_err_code ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11147 {
11148         if (flags & NDR_IN) {
11149         }
11150         if (flags & NDR_OUT) {
11151                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11152         }
11153         return NDR_ERR_SUCCESS;
11154 }
11155
11156 static enum ndr_err_code ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
11157 {
11158         if (flags & NDR_IN) {
11159         }
11160         if (flags & NDR_OUT) {
11161                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11162         }
11163         return NDR_ERR_SUCCESS;
11164 }
11165
11166 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11167 {
11168         ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
11169         ndr->depth++;
11170         if (flags & NDR_SET_VALUES) {
11171                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11172         }
11173         if (flags & NDR_IN) {
11174                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
11175                 ndr->depth++;
11176                 ndr->depth--;
11177         }
11178         if (flags & NDR_OUT) {
11179                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
11180                 ndr->depth++;
11181                 ndr_print_WERROR(ndr, "result", r->out.result);
11182                 ndr->depth--;
11183         }
11184         ndr->depth--;
11185 }
11186
11187 static enum ndr_err_code ndr_push_netr_LogonGetTrustRid(struct ndr_push *ndr, int flags, const struct netr_LogonGetTrustRid *r)
11188 {
11189         if (flags & NDR_IN) {
11190                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11191                 if (r->in.server_name) {
11192                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11193                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11194                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11195                         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));
11196                 }
11197                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11198                 if (r->in.domain_name) {
11199                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11200                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11201                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11202                         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));
11203                 }
11204         }
11205         if (flags & NDR_OUT) {
11206                 if (r->out.rid == NULL) {
11207                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11208                 }
11209                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11210                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11211         }
11212         return NDR_ERR_SUCCESS;
11213 }
11214
11215 static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, int flags, struct netr_LogonGetTrustRid *r)
11216 {
11217         uint32_t _ptr_server_name;
11218         uint32_t _ptr_domain_name;
11219         TALLOC_CTX *_mem_save_server_name_0;
11220         TALLOC_CTX *_mem_save_domain_name_0;
11221         TALLOC_CTX *_mem_save_rid_0;
11222         if (flags & NDR_IN) {
11223                 ZERO_STRUCT(r->out);
11224
11225                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11226                 if (_ptr_server_name) {
11227                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11228                 } else {
11229                         r->in.server_name = NULL;
11230                 }
11231                 if (r->in.server_name) {
11232                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11233                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11234                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11235                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11236                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11237                                 return 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));
11238                         }
11239                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11240                         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));
11241                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11242                 }
11243                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11244                 if (_ptr_domain_name) {
11245                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11246                 } else {
11247                         r->in.domain_name = NULL;
11248                 }
11249                 if (r->in.domain_name) {
11250                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11251                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11252                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11253                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11254                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11255                                 return 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));
11256                         }
11257                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11258                         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));
11259                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11260                 }
11261                 NDR_PULL_ALLOC(ndr, r->out.rid);
11262                 ZERO_STRUCTP(r->out.rid);
11263         }
11264         if (flags & NDR_OUT) {
11265                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11266                         NDR_PULL_ALLOC(ndr, r->out.rid);
11267                 }
11268                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11269                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11270                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11271                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11272                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11273         }
11274         return NDR_ERR_SUCCESS;
11275 }
11276
11277 _PUBLIC_ void ndr_print_netr_LogonGetTrustRid(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetTrustRid *r)
11278 {
11279         ndr_print_struct(ndr, name, "netr_LogonGetTrustRid");
11280         ndr->depth++;
11281         if (flags & NDR_SET_VALUES) {
11282                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11283         }
11284         if (flags & NDR_IN) {
11285                 ndr_print_struct(ndr, "in", "netr_LogonGetTrustRid");
11286                 ndr->depth++;
11287                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11288                 ndr->depth++;
11289                 if (r->in.server_name) {
11290                         ndr_print_string(ndr, "server_name", r->in.server_name);
11291                 }
11292                 ndr->depth--;
11293                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11294                 ndr->depth++;
11295                 if (r->in.domain_name) {
11296                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11297                 }
11298                 ndr->depth--;
11299                 ndr->depth--;
11300         }
11301         if (flags & NDR_OUT) {
11302                 ndr_print_struct(ndr, "out", "netr_LogonGetTrustRid");
11303                 ndr->depth++;
11304                 ndr_print_ptr(ndr, "rid", r->out.rid);
11305                 ndr->depth++;
11306                 ndr_print_uint32(ndr, "rid", *r->out.rid);
11307                 ndr->depth--;
11308                 ndr_print_WERROR(ndr, "result", r->out.result);
11309                 ndr->depth--;
11310         }
11311         ndr->depth--;
11312 }
11313
11314 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11315 {
11316         if (flags & NDR_IN) {
11317         }
11318         if (flags & NDR_OUT) {
11319                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11320         }
11321         return NDR_ERR_SUCCESS;
11322 }
11323
11324 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11325 {
11326         if (flags & NDR_IN) {
11327         }
11328         if (flags & NDR_OUT) {
11329                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11330         }
11331         return NDR_ERR_SUCCESS;
11332 }
11333
11334 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11335 {
11336         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
11337         ndr->depth++;
11338         if (flags & NDR_SET_VALUES) {
11339                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11340         }
11341         if (flags & NDR_IN) {
11342                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11343                 ndr->depth++;
11344                 ndr->depth--;
11345         }
11346         if (flags & NDR_OUT) {
11347                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11348                 ndr->depth++;
11349                 ndr_print_WERROR(ndr, "result", r->out.result);
11350                 ndr->depth--;
11351         }
11352         ndr->depth--;
11353 }
11354
11355 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11356 {
11357         if (flags & NDR_IN) {
11358         }
11359         if (flags & NDR_OUT) {
11360                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11361         }
11362         return NDR_ERR_SUCCESS;
11363 }
11364
11365 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11366 {
11367         if (flags & NDR_IN) {
11368         }
11369         if (flags & NDR_OUT) {
11370                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11371         }
11372         return NDR_ERR_SUCCESS;
11373 }
11374
11375 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11376 {
11377         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11378         ndr->depth++;
11379         if (flags & NDR_SET_VALUES) {
11380                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11381         }
11382         if (flags & NDR_IN) {
11383                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11384                 ndr->depth++;
11385                 ndr->depth--;
11386         }
11387         if (flags & NDR_OUT) {
11388                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11389                 ndr->depth++;
11390                 ndr_print_WERROR(ndr, "result", r->out.result);
11391                 ndr->depth--;
11392         }
11393         ndr->depth--;
11394 }
11395
11396 static enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
11397 {
11398         if (flags & NDR_IN) {
11399                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11400                 if (r->in.server_name) {
11401                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11402                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11403                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11404                         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));
11405                 }
11406                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11407                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11408                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11409                 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));
11410                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11411                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11412                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11413                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11414                 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));
11415                 if (r->in.credentials == NULL) {
11416                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11417                 }
11418                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11419                 if (r->in.negotiate_flags == NULL) {
11420                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11421                 }
11422                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.negotiate_flags));
11423         }
11424         if (flags & NDR_OUT) {
11425                 if (r->out.credentials == NULL) {
11426                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11427                 }
11428                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11429                 if (r->out.negotiate_flags == NULL) {
11430                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11431                 }
11432                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.negotiate_flags));
11433                 if (r->out.rid == NULL) {
11434                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11435                 }
11436                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11437                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11438         }
11439         return NDR_ERR_SUCCESS;
11440 }
11441
11442 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
11443 {
11444         uint32_t _ptr_server_name;
11445         TALLOC_CTX *_mem_save_server_name_0;
11446         TALLOC_CTX *_mem_save_credentials_0;
11447         TALLOC_CTX *_mem_save_negotiate_flags_0;
11448         TALLOC_CTX *_mem_save_rid_0;
11449         if (flags & NDR_IN) {
11450                 ZERO_STRUCT(r->out);
11451
11452                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11453                 if (_ptr_server_name) {
11454                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11455                 } else {
11456                         r->in.server_name = NULL;
11457                 }
11458                 if (r->in.server_name) {
11459                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11460                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11461                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11462                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11463                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11464                                 return 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));
11465                         }
11466                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11467                         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));
11468                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11469                 }
11470                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11471                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11472                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11473                         return 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));
11474                 }
11475                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11476                 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));
11477                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11478                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11479                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11480                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11481                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
11482                 }
11483                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11484                 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));
11485                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11486                         NDR_PULL_ALLOC(ndr, r->in.credentials);
11487                 }
11488                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11489                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
11490                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11491                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11492                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11493                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
11494                 }
11495                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11496                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11497                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.negotiate_flags));
11498                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11499                 NDR_PULL_ALLOC(ndr, r->out.credentials);
11500                 *r->out.credentials = *r->in.credentials;
11501                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11502                 *r->out.negotiate_flags = *r->in.negotiate_flags;
11503                 NDR_PULL_ALLOC(ndr, r->out.rid);
11504                 ZERO_STRUCTP(r->out.rid);
11505         }
11506         if (flags & NDR_OUT) {
11507                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11508                         NDR_PULL_ALLOC(ndr, r->out.credentials);
11509                 }
11510                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11511                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
11512                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11513                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11514                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11515                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11516                 }
11517                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11518                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11519                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.negotiate_flags));
11520                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11521                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11522                         NDR_PULL_ALLOC(ndr, r->out.rid);
11523                 }
11524                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11525                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11526                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11527                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11528                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11529         }
11530         return NDR_ERR_SUCCESS;
11531 }
11532
11533 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
11534 {
11535         ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
11536         ndr->depth++;
11537         if (flags & NDR_SET_VALUES) {
11538                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11539         }
11540         if (flags & NDR_IN) {
11541                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
11542                 ndr->depth++;
11543                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11544                 ndr->depth++;
11545                 if (r->in.server_name) {
11546                         ndr_print_string(ndr, "server_name", r->in.server_name);
11547                 }
11548                 ndr->depth--;
11549                 ndr_print_string(ndr, "account_name", r->in.account_name);
11550                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
11551                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11552                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
11553                 ndr->depth++;
11554                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
11555                 ndr->depth--;
11556                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
11557                 ndr->depth++;
11558                 ndr_print_uint32(ndr, "negotiate_flags", *r->in.negotiate_flags);
11559                 ndr->depth--;
11560                 ndr->depth--;
11561         }
11562         if (flags & NDR_OUT) {
11563                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
11564                 ndr->depth++;
11565                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
11566                 ndr->depth++;
11567                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
11568                 ndr->depth--;
11569                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
11570                 ndr->depth++;
11571                 ndr_print_uint32(ndr, "negotiate_flags", *r->out.negotiate_flags);
11572                 ndr->depth--;
11573                 ndr_print_ptr(ndr, "rid", r->out.rid);
11574                 ndr->depth++;
11575                 ndr_print_uint32(ndr, "rid", *r->out.rid);
11576                 ndr->depth--;
11577                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11578                 ndr->depth--;
11579         }
11580         ndr->depth--;
11581 }
11582
11583 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
11584 {
11585         if (flags & NDR_IN) {
11586                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11587                 if (r->in.server_unc) {
11588                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11589                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11590                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11591                         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));
11592                 }
11593                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11594                 if (r->in.domain_name) {
11595                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11596                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11597                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11598                         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));
11599                 }
11600                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11601                 if (r->in.domain_guid) {
11602                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11603                 }
11604                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
11605                 if (r->in.site_name) {
11606                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11607                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11608                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11609                         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));
11610                 }
11611                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11612         }
11613         if (flags & NDR_OUT) {
11614                 if (r->out.info == NULL) {
11615                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11616                 }
11617                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11618                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11619         }
11620         return NDR_ERR_SUCCESS;
11621 }
11622
11623 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
11624 {
11625         uint32_t _ptr_server_unc;
11626         uint32_t _ptr_domain_name;
11627         uint32_t _ptr_domain_guid;
11628         uint32_t _ptr_site_name;
11629         TALLOC_CTX *_mem_save_server_unc_0;
11630         TALLOC_CTX *_mem_save_domain_name_0;
11631         TALLOC_CTX *_mem_save_domain_guid_0;
11632         TALLOC_CTX *_mem_save_site_name_0;
11633         TALLOC_CTX *_mem_save_info_0;
11634         if (flags & NDR_IN) {
11635                 ZERO_STRUCT(r->out);
11636
11637                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11638                 if (_ptr_server_unc) {
11639                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
11640                 } else {
11641                         r->in.server_unc = NULL;
11642                 }
11643                 if (r->in.server_unc) {
11644                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11645                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11646                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11647                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11648                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11649                                 return 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));
11650                         }
11651                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11652                         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));
11653                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11654                 }
11655                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11656                 if (_ptr_domain_name) {
11657                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11658                 } else {
11659                         r->in.domain_name = NULL;
11660                 }
11661                 if (r->in.domain_name) {
11662                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11663                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11664                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11665                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11666                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11667                                 return 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));
11668                         }
11669                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11670                         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));
11671                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11672                 }
11673                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11674                 if (_ptr_domain_guid) {
11675                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11676                 } else {
11677                         r->in.domain_guid = NULL;
11678                 }
11679                 if (r->in.domain_guid) {
11680                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11681                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11682                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11683                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11684                 }
11685                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
11686                 if (_ptr_site_name) {
11687                         NDR_PULL_ALLOC(ndr, r->in.site_name);
11688                 } else {
11689                         r->in.site_name = NULL;
11690                 }
11691                 if (r->in.site_name) {
11692                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11693                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
11694                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
11695                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
11696                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
11697                                 return 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));
11698                         }
11699                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
11700                         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));
11701                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
11702                 }
11703                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11704                 NDR_PULL_ALLOC(ndr, r->out.info);
11705                 ZERO_STRUCTP(r->out.info);
11706         }
11707         if (flags & NDR_OUT) {
11708                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11709                         NDR_PULL_ALLOC(ndr, r->out.info);
11710                 }
11711                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11712                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11713                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11714                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11715                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11716         }
11717         return NDR_ERR_SUCCESS;
11718 }
11719
11720 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
11721 {
11722         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
11723         ndr->depth++;
11724         if (flags & NDR_SET_VALUES) {
11725                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11726         }
11727         if (flags & NDR_IN) {
11728                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
11729                 ndr->depth++;
11730                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11731                 ndr->depth++;
11732                 if (r->in.server_unc) {
11733                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11734                 }
11735                 ndr->depth--;
11736                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11737                 ndr->depth++;
11738                 if (r->in.domain_name) {
11739                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11740                 }
11741                 ndr->depth--;
11742                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11743                 ndr->depth++;
11744                 if (r->in.domain_guid) {
11745                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11746                 }
11747                 ndr->depth--;
11748                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
11749                 ndr->depth++;
11750                 if (r->in.site_name) {
11751                         ndr_print_string(ndr, "site_name", r->in.site_name);
11752                 }
11753                 ndr->depth--;
11754                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11755                 ndr->depth--;
11756         }
11757         if (flags & NDR_OUT) {
11758                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
11759                 ndr->depth++;
11760                 ndr_print_ptr(ndr, "info", r->out.info);
11761                 ndr->depth++;
11762                 ndr_print_netr_DsRGetDCNameInfo(ndr, "info", r->out.info);
11763                 ndr->depth--;
11764                 ndr_print_WERROR(ndr, "result", r->out.result);
11765                 ndr->depth--;
11766         }
11767         ndr->depth--;
11768 }
11769
11770 static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
11771 {
11772         if (flags & NDR_IN) {
11773                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
11774                 if (r->in.computer_name) {
11775                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11776                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11777                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11778                         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));
11779                 }
11780         }
11781         if (flags & NDR_OUT) {
11782                 if (r->out.site == NULL) {
11783                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11784                 }
11785                 if (*r->out.site == NULL) {
11786                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11787                 }
11788                 NDR_CHECK(ndr_push_ref_ptr(ndr));
11789                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
11790                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11791                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
11792                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11793                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11794         }
11795         return NDR_ERR_SUCCESS;
11796 }
11797
11798 static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
11799 {
11800         uint32_t _ptr_computer_name;
11801         uint32_t _ptr_site;
11802         TALLOC_CTX *_mem_save_computer_name_0;
11803         TALLOC_CTX *_mem_save_site_0;
11804         if (flags & NDR_IN) {
11805                 ZERO_STRUCT(r->out);
11806
11807                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
11808                 if (_ptr_computer_name) {
11809                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
11810                 } else {
11811                         r->in.computer_name = NULL;
11812                 }
11813                 if (r->in.computer_name) {
11814                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11815                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
11816                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11817                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11818                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11819                                 return 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));
11820                         }
11821                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11822                         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));
11823                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
11824                 }
11825                 NDR_PULL_ALLOC(ndr, r->out.site);
11826                 ZERO_STRUCTP(r->out.site);
11827         }
11828         if (flags & NDR_OUT) {
11829                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11830                         NDR_PULL_ALLOC(ndr, r->out.site);
11831                 }
11832                 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
11833                 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
11834                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_site));
11835                 NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
11836                 NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
11837                 if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
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->out.site), ndr_get_array_length(ndr, r->out.site));
11839                 }
11840                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
11841                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
11842                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
11843                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11844         }
11845         return NDR_ERR_SUCCESS;
11846 }
11847
11848 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
11849 {
11850         ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
11851         ndr->depth++;
11852         if (flags & NDR_SET_VALUES) {
11853                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11854         }
11855         if (flags & NDR_IN) {
11856                 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
11857                 ndr->depth++;
11858                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
11859                 ndr->depth++;
11860                 if (r->in.computer_name) {
11861                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
11862                 }
11863                 ndr->depth--;
11864                 ndr->depth--;
11865         }
11866         if (flags & NDR_OUT) {
11867                 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
11868                 ndr->depth++;
11869                 ndr_print_ptr(ndr, "site", r->out.site);
11870                 ndr->depth++;
11871                 ndr_print_ptr(ndr, "site", *r->out.site);
11872                 ndr->depth++;
11873                 ndr_print_string(ndr, "site", *r->out.site);
11874                 ndr->depth--;
11875                 ndr->depth--;
11876                 ndr_print_WERROR(ndr, "result", r->out.result);
11877                 ndr->depth--;
11878         }
11879         ndr->depth--;
11880 }
11881
11882 static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
11883 {
11884         if (flags & NDR_IN) {
11885                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11886                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11887                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11888                 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));
11889                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
11890                 if (r->in.computer_name) {
11891                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11892                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11893                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11894                         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));
11895                 }
11896                 if (r->in.credential == NULL) {
11897                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11898                 }
11899                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11900                 if (r->in.return_authenticator == NULL) {
11901                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11902                 }
11903                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11904                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
11905                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level));
11906                 NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
11907         }
11908         if (flags & NDR_OUT) {
11909                 if (r->out.return_authenticator == NULL) {
11910                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11911                 }
11912                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11913                 if (r->out.info == NULL) {
11914                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11915                 }
11916                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
11917                 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11918                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11919         }
11920         return NDR_ERR_SUCCESS;
11921 }
11922
11923 static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
11924 {
11925         uint32_t _ptr_computer_name;
11926         TALLOC_CTX *_mem_save_computer_name_0;
11927         TALLOC_CTX *_mem_save_credential_0;
11928         TALLOC_CTX *_mem_save_return_authenticator_0;
11929         TALLOC_CTX *_mem_save_info_0;
11930         if (flags & NDR_IN) {
11931                 ZERO_STRUCT(r->out);
11932
11933                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11934                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11935                 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11936                         return 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));
11937                 }
11938                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11939                 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));
11940                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
11941                 if (_ptr_computer_name) {
11942                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
11943                 } else {
11944                         r->in.computer_name = NULL;
11945                 }
11946                 if (r->in.computer_name) {
11947                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11948                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
11949                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11950                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11951                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11952                                 return 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));
11953                         }
11954                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11955                         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));
11956                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
11957                 }
11958                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11959                         NDR_PULL_ALLOC(ndr, r->in.credential);
11960                 }
11961                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
11962                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
11963                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
11964                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
11965                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11966                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
11967                 }
11968                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11969                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11970                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
11971                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11972                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
11973                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level));
11974                 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
11975                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11976                 *r->out.return_authenticator = *r->in.return_authenticator;
11977                 NDR_PULL_ALLOC(ndr, r->out.info);
11978                 ZERO_STRUCTP(r->out.info);
11979         }
11980         if (flags & NDR_OUT) {
11981                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11982                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
11983                 }
11984                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
11985                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
11986                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
11987                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
11988                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11989                         NDR_PULL_ALLOC(ndr, r->out.info);
11990                 }
11991                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11992                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11993                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
11994                 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
11995                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11996                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11997         }
11998         return NDR_ERR_SUCCESS;
11999 }
12000
12001 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
12002 {
12003         ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
12004         ndr->depth++;
12005         if (flags & NDR_SET_VALUES) {
12006                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12007         }
12008         if (flags & NDR_IN) {
12009                 ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
12010                 ndr->depth++;
12011                 ndr_print_string(ndr, "server_name", r->in.server_name);
12012                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12013                 ndr->depth++;
12014                 if (r->in.computer_name) {
12015                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12016                 }
12017                 ndr->depth--;
12018                 ndr_print_ptr(ndr, "credential", r->in.credential);
12019                 ndr->depth++;
12020                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12021                 ndr->depth--;
12022                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12023                 ndr->depth++;
12024                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12025                 ndr->depth--;
12026                 ndr_print_uint32(ndr, "level", r->in.level);
12027                 ndr_print_set_switch_value(ndr, &r->in.query, r->in.level);
12028                 ndr_print_netr_DomainQuery(ndr, "query", &r->in.query);
12029                 ndr->depth--;
12030         }
12031         if (flags & NDR_OUT) {
12032                 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
12033                 ndr->depth++;
12034                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12035                 ndr->depth++;
12036                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12037                 ndr->depth--;
12038                 ndr_print_ptr(ndr, "info", r->out.info);
12039                 ndr->depth++;
12040                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
12041                 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
12042                 ndr->depth--;
12043                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12044                 ndr->depth--;
12045         }
12046         ndr->depth--;
12047 }
12048
12049 static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
12050 {
12051         if (flags & NDR_IN) {
12052                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12053                 if (r->in.server_name) {
12054                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12055                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12056                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12057                         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));
12058                 }
12059                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12060                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12061                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12062                 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));
12063                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12064                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12065                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12066                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12067                 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));
12068                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
12069                 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password));
12070         }
12071         if (flags & NDR_OUT) {
12072                 if (r->out.return_authenticator == NULL) {
12073                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12074                 }
12075                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12076                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12077         }
12078         return NDR_ERR_SUCCESS;
12079 }
12080
12081 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
12082 {
12083         uint32_t _ptr_server_name;
12084         TALLOC_CTX *_mem_save_server_name_0;
12085         TALLOC_CTX *_mem_save_return_authenticator_0;
12086         if (flags & NDR_IN) {
12087                 ZERO_STRUCT(r->out);
12088
12089                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12090                 if (_ptr_server_name) {
12091                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12092                 } else {
12093                         r->in.server_name = NULL;
12094                 }
12095                 if (r->in.server_name) {
12096                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12097                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12098                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12099                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12100                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12101                                 return 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));
12102                         }
12103                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12104                         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));
12105                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12106                 }
12107                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12108                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12109                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12110                         return 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));
12111                 }
12112                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12113                 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));
12114                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12115                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12116                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12117                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12118                         return 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));
12119                 }
12120                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12121                 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));
12122                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
12123                 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password));
12124                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12125                 ZERO_STRUCTP(r->out.return_authenticator);
12126         }
12127         if (flags & NDR_OUT) {
12128                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12129                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12130                 }
12131                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12132                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12133                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12134                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12135                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12136         }
12137         return NDR_ERR_SUCCESS;
12138 }
12139
12140 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
12141 {
12142         ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
12143         ndr->depth++;
12144         if (flags & NDR_SET_VALUES) {
12145                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12146         }
12147         if (flags & NDR_IN) {
12148                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
12149                 ndr->depth++;
12150                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12151                 ndr->depth++;
12152                 if (r->in.server_name) {
12153                         ndr_print_string(ndr, "server_name", r->in.server_name);
12154                 }
12155                 ndr->depth--;
12156                 ndr_print_string(ndr, "account_name", r->in.account_name);
12157                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12158                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12159                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
12160                 ndr_print_netr_CryptPassword(ndr, "new_password", &r->in.new_password);
12161                 ndr->depth--;
12162         }
12163         if (flags & NDR_OUT) {
12164                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
12165                 ndr->depth++;
12166                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12167                 ndr->depth++;
12168                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12169                 ndr->depth--;
12170                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12171                 ndr->depth--;
12172         }
12173         ndr->depth--;
12174 }
12175
12176 static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordGet *r)
12177 {
12178         if (flags & NDR_IN) {
12179                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12180                 if (r->in.server_name) {
12181                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12182                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12183                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12184                         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));
12185                 }
12186                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12187                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12188                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12189                 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));
12190                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12191                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12192                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12193                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12194                 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));
12195                 if (r->in.credential == NULL) {
12196                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12197                 }
12198                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12199         }
12200         if (flags & NDR_OUT) {
12201                 if (r->out.return_authenticator == NULL) {
12202                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12203                 }
12204                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12205                 if (r->out.password == NULL) {
12206                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12207                 }
12208                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
12209                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12210         }
12211         return NDR_ERR_SUCCESS;
12212 }
12213
12214 static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r)
12215 {
12216         uint32_t _ptr_server_name;
12217         TALLOC_CTX *_mem_save_server_name_0;
12218         TALLOC_CTX *_mem_save_credential_0;
12219         TALLOC_CTX *_mem_save_return_authenticator_0;
12220         TALLOC_CTX *_mem_save_password_0;
12221         if (flags & NDR_IN) {
12222                 ZERO_STRUCT(r->out);
12223
12224                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12225                 if (_ptr_server_name) {
12226                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12227                 } else {
12228                         r->in.server_name = NULL;
12229                 }
12230                 if (r->in.server_name) {
12231                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12232                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12233                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12234                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12235                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12236                                 return 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));
12237                         }
12238                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12239                         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));
12240                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12241                 }
12242                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12243                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12244                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12245                         return 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));
12246                 }
12247                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12248                 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));
12249                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12250                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12251                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12252                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12253                         return 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));
12254                 }
12255                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12256                 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));
12257                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12258                         NDR_PULL_ALLOC(ndr, r->in.credential);
12259                 }
12260                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12261                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12262                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12263                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12264                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12265                 ZERO_STRUCTP(r->out.return_authenticator);
12266                 NDR_PULL_ALLOC(ndr, r->out.password);
12267                 ZERO_STRUCTP(r->out.password);
12268         }
12269         if (flags & NDR_OUT) {
12270                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12271                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12272                 }
12273                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12274                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12275                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12276                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12277                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12278                         NDR_PULL_ALLOC(ndr, r->out.password);
12279                 }
12280                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
12281                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
12282                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
12283                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
12284                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12285         }
12286         return NDR_ERR_SUCCESS;
12287 }
12288
12289 _PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordGet *r)
12290 {
12291         ndr_print_struct(ndr, name, "netr_ServerPasswordGet");
12292         ndr->depth++;
12293         if (flags & NDR_SET_VALUES) {
12294                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12295         }
12296         if (flags & NDR_IN) {
12297                 ndr_print_struct(ndr, "in", "netr_ServerPasswordGet");
12298                 ndr->depth++;
12299                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12300                 ndr->depth++;
12301                 if (r->in.server_name) {
12302                         ndr_print_string(ndr, "server_name", r->in.server_name);
12303                 }
12304                 ndr->depth--;
12305                 ndr_print_string(ndr, "account_name", r->in.account_name);
12306                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12307                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12308                 ndr_print_ptr(ndr, "credential", r->in.credential);
12309                 ndr->depth++;
12310                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12311                 ndr->depth--;
12312                 ndr->depth--;
12313         }
12314         if (flags & NDR_OUT) {
12315                 ndr_print_struct(ndr, "out", "netr_ServerPasswordGet");
12316                 ndr->depth++;
12317                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12318                 ndr->depth++;
12319                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12320                 ndr->depth--;
12321                 ndr_print_ptr(ndr, "password", r->out.password);
12322                 ndr->depth++;
12323                 ndr_print_samr_Password(ndr, "password", r->out.password);
12324                 ndr->depth--;
12325                 ndr_print_WERROR(ndr, "result", r->out.result);
12326                 ndr->depth--;
12327         }
12328         ndr->depth--;
12329 }
12330
12331 static enum ndr_err_code ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12332 {
12333         if (flags & NDR_IN) {
12334         }
12335         if (flags & NDR_OUT) {
12336                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12337         }
12338         return NDR_ERR_SUCCESS;
12339 }
12340
12341 static enum ndr_err_code ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
12342 {
12343         if (flags & NDR_IN) {
12344         }
12345         if (flags & NDR_OUT) {
12346                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12347         }
12348         return NDR_ERR_SUCCESS;
12349 }
12350
12351 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12352 {
12353         ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
12354         ndr->depth++;
12355         if (flags & NDR_SET_VALUES) {
12356                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12357         }
12358         if (flags & NDR_IN) {
12359                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
12360                 ndr->depth++;
12361                 ndr->depth--;
12362         }
12363         if (flags & NDR_OUT) {
12364                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
12365                 ndr->depth++;
12366                 ndr_print_WERROR(ndr, "result", r->out.result);
12367                 ndr->depth--;
12368         }
12369         ndr->depth--;
12370 }
12371
12372 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesW *r)
12373 {
12374         uint32_t cntr_addresses_1;
12375         if (flags & NDR_IN) {
12376                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12377                 if (r->in.server_name) {
12378                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12379                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12380                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12381                         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));
12382                 }
12383                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12384                 if (r->in.addresses == NULL) {
12385                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12386                 }
12387                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12388                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12389                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12390                 }
12391                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12392                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12393                 }
12394         }
12395         if (flags & NDR_OUT) {
12396                 if (r->out.ctr == NULL) {
12397                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12398                 }
12399                 if (*r->out.ctr == NULL) {
12400                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12401                 }
12402                 NDR_CHECK(ndr_push_ref_ptr(ndr));
12403                 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12404                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12405         }
12406         return NDR_ERR_SUCCESS;
12407 }
12408
12409 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r)
12410 {
12411         uint32_t _ptr_server_name;
12412         uint32_t cntr_addresses_1;
12413         uint32_t _ptr_ctr;
12414         TALLOC_CTX *_mem_save_server_name_0;
12415         TALLOC_CTX *_mem_save_addresses_1;
12416         TALLOC_CTX *_mem_save_ctr_0;
12417         TALLOC_CTX *_mem_save_ctr_1;
12418         if (flags & NDR_IN) {
12419                 ZERO_STRUCT(r->out);
12420
12421                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12422                 if (_ptr_server_name) {
12423                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12424                 } else {
12425                         r->in.server_name = NULL;
12426                 }
12427                 if (r->in.server_name) {
12428                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12429                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12430                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12431                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12432                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12433                                 return 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));
12434                         }
12435                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12436                         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));
12437                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12438                 }
12439                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
12440                 if (r->in.count < 0 || r->in.count > 32000) {
12441                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
12442                 }
12443                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
12444                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12445                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
12446                 }
12447                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
12448                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
12449                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12450                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12451                 }
12452                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12453                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12454                 }
12455                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
12456                 NDR_PULL_ALLOC(ndr, r->out.ctr);
12457                 ZERO_STRUCTP(r->out.ctr);
12458                 if (r->in.addresses) {
12459                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
12460                 }
12461         }
12462         if (flags & NDR_OUT) {
12463                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12464                         NDR_PULL_ALLOC(ndr, r->out.ctr);
12465                 }
12466                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
12467                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12468                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_ctr));
12469                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12470                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
12471                 }
12472                 _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
12473                 NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12474                 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12475                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, LIBNDR_FLAG_REF_ALLOC);
12476                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
12477                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12478         }
12479         return NDR_ERR_SUCCESS;
12480 }
12481
12482 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesW *r)
12483 {
12484         uint32_t cntr_addresses_1;
12485         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesW");
12486         ndr->depth++;
12487         if (flags & NDR_SET_VALUES) {
12488                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12489         }
12490         if (flags & NDR_IN) {
12491                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesW");
12492                 ndr->depth++;
12493                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12494                 ndr->depth++;
12495                 if (r->in.server_name) {
12496                         ndr_print_string(ndr, "server_name", r->in.server_name);
12497                 }
12498                 ndr->depth--;
12499                 ndr_print_uint32(ndr, "count", r->in.count);
12500                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
12501                 ndr->depth++;
12502                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", r->in.count);
12503                 ndr->depth++;
12504                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
12505                         char *idx_1=NULL;
12506                         asprintf(&idx_1, "[%d]", cntr_addresses_1);
12507                         if (idx_1) {
12508                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
12509                                 free(idx_1);
12510                         }
12511                 }
12512                 ndr->depth--;
12513                 ndr->depth--;
12514                 ndr->depth--;
12515         }
12516         if (flags & NDR_OUT) {
12517                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesW");
12518                 ndr->depth++;
12519                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
12520                 ndr->depth++;
12521                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
12522                 ndr->depth++;
12523                 ndr_print_netr_DsRAddressToSitenamesWCtr(ndr, "ctr", *r->out.ctr);
12524                 ndr->depth--;
12525                 ndr->depth--;
12526                 ndr_print_WERROR(ndr, "result", r->out.result);
12527                 ndr->depth--;
12528         }
12529         ndr->depth--;
12530 }
12531
12532 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
12533 {
12534         if (flags & NDR_IN) {
12535                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
12536                 if (r->in.server_unc) {
12537                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12538                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12539                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12540                         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));
12541                 }
12542                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
12543                 if (r->in.client_account) {
12544                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12545                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12546                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12547                         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));
12548                 }
12549                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.mask));
12550                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12551                 if (r->in.domain_name) {
12552                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12553                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12554                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12555                         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));
12556                 }
12557                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
12558                 if (r->in.domain_guid) {
12559                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
12560                 }
12561                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
12562                 if (r->in.site_name) {
12563                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12564                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12565                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12566                         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));
12567                 }
12568                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
12569         }
12570         if (flags & NDR_OUT) {
12571                 if (r->out.info == NULL) {
12572                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12573                 }
12574                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12575                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12576         }
12577         return NDR_ERR_SUCCESS;
12578 }
12579
12580 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
12581 {
12582         uint32_t _ptr_server_unc;
12583         uint32_t _ptr_client_account;
12584         uint32_t _ptr_domain_name;
12585         uint32_t _ptr_domain_guid;
12586         uint32_t _ptr_site_name;
12587         TALLOC_CTX *_mem_save_server_unc_0;
12588         TALLOC_CTX *_mem_save_client_account_0;
12589         TALLOC_CTX *_mem_save_domain_name_0;
12590         TALLOC_CTX *_mem_save_domain_guid_0;
12591         TALLOC_CTX *_mem_save_site_name_0;
12592         TALLOC_CTX *_mem_save_info_0;
12593         if (flags & NDR_IN) {
12594                 ZERO_STRUCT(r->out);
12595
12596                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12597                 if (_ptr_server_unc) {
12598                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
12599                 } else {
12600                         r->in.server_unc = NULL;
12601                 }
12602                 if (r->in.server_unc) {
12603                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12604                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12605                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12606                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12607                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12608                                 return 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));
12609                         }
12610                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12611                         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));
12612                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12613                 }
12614                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
12615                 if (_ptr_client_account) {
12616                         NDR_PULL_ALLOC(ndr, r->in.client_account);
12617                 } else {
12618                         r->in.client_account = NULL;
12619                 }
12620                 if (r->in.client_account) {
12621                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
12622                         NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
12623                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
12624                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
12625                         if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
12626                                 return 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));
12627                         }
12628                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
12629                         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));
12630                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
12631                 }
12632                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask));
12633                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12634                 if (_ptr_domain_name) {
12635                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12636                 } else {
12637                         r->in.domain_name = NULL;
12638                 }
12639                 if (r->in.domain_name) {
12640                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12641                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12642                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12643                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12644                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12645                                 return 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));
12646                         }
12647                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12648                         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));
12649                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12650                 }
12651                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12652                 if (_ptr_domain_guid) {
12653                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12654                 } else {
12655                         r->in.domain_guid = NULL;
12656                 }
12657                 if (r->in.domain_guid) {
12658                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12659                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12660                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
12661                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12662                 }
12663                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
12664                 if (_ptr_site_name) {
12665                         NDR_PULL_ALLOC(ndr, r->in.site_name);
12666                 } else {
12667                         r->in.site_name = NULL;
12668                 }
12669                 if (r->in.site_name) {
12670                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12671                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
12672                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
12673                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
12674                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
12675                                 return 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));
12676                         }
12677                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
12678                         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));
12679                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
12680                 }
12681                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12682                 NDR_PULL_ALLOC(ndr, r->out.info);
12683                 ZERO_STRUCTP(r->out.info);
12684         }
12685         if (flags & NDR_OUT) {
12686                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12687                         NDR_PULL_ALLOC(ndr, r->out.info);
12688                 }
12689                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12690                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12691                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12692                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12693                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12694         }
12695         return NDR_ERR_SUCCESS;
12696 }
12697
12698 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
12699 {
12700         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
12701         ndr->depth++;
12702         if (flags & NDR_SET_VALUES) {
12703                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12704         }
12705         if (flags & NDR_IN) {
12706                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
12707                 ndr->depth++;
12708                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
12709                 ndr->depth++;
12710                 if (r->in.server_unc) {
12711                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
12712                 }
12713                 ndr->depth--;
12714                 ndr_print_ptr(ndr, "client_account", r->in.client_account);
12715                 ndr->depth++;
12716                 if (r->in.client_account) {
12717                         ndr_print_string(ndr, "client_account", r->in.client_account);
12718                 }
12719                 ndr->depth--;
12720                 ndr_print_samr_AcctFlags(ndr, "mask", r->in.mask);
12721                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12722                 ndr->depth++;
12723                 if (r->in.domain_name) {
12724                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12725                 }
12726                 ndr->depth--;
12727                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
12728                 ndr->depth++;
12729                 if (r->in.domain_guid) {
12730                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
12731                 }
12732                 ndr->depth--;
12733                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
12734                 ndr->depth++;
12735                 if (r->in.site_name) {
12736                         ndr_print_string(ndr, "site_name", r->in.site_name);
12737                 }
12738                 ndr->depth--;
12739                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
12740                 ndr->depth--;
12741         }
12742         if (flags & NDR_OUT) {
12743                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
12744                 ndr->depth++;
12745                 ndr_print_ptr(ndr, "info", r->out.info);
12746                 ndr->depth++;
12747                 ndr_print_netr_DsRGetDCNameInfo(ndr, "info", r->out.info);
12748                 ndr->depth--;
12749                 ndr_print_WERROR(ndr, "result", r->out.result);
12750                 ndr->depth--;
12751         }
12752         ndr->depth--;
12753 }
12754
12755 static enum ndr_err_code ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
12756 {
12757         if (flags & NDR_IN) {
12758         }
12759         if (flags & NDR_OUT) {
12760                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12761         }
12762         return NDR_ERR_SUCCESS;
12763 }
12764
12765 static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
12766 {
12767         if (flags & NDR_IN) {
12768         }
12769         if (flags & NDR_OUT) {
12770                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12771         }
12772         return NDR_ERR_SUCCESS;
12773 }
12774
12775 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
12776 {
12777         ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
12778         ndr->depth++;
12779         if (flags & NDR_SET_VALUES) {
12780                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12781         }
12782         if (flags & NDR_IN) {
12783                 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
12784                 ndr->depth++;
12785                 ndr->depth--;
12786         }
12787         if (flags & NDR_OUT) {
12788                 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
12789                 ndr->depth++;
12790                 ndr_print_WERROR(ndr, "result", r->out.result);
12791                 ndr->depth--;
12792         }
12793         ndr->depth--;
12794 }
12795
12796 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
12797 {
12798         if (flags & NDR_IN) {
12799                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12800                 if (r->in.server_name) {
12801                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12802                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12803                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12804                         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));
12805                 }
12806         }
12807         if (flags & NDR_OUT) {
12808                 if (r->out.dom_trust_list == NULL) {
12809                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12810                 }
12811                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
12812                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12813         }
12814         return NDR_ERR_SUCCESS;
12815 }
12816
12817 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r)
12818 {
12819         uint32_t _ptr_server_name;
12820         TALLOC_CTX *_mem_save_server_name_0;
12821         TALLOC_CTX *_mem_save_dom_trust_list_0;
12822         if (flags & NDR_IN) {
12823                 ZERO_STRUCT(r->out);
12824
12825                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12826                 if (_ptr_server_name) {
12827                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12828                 } else {
12829                         r->in.server_name = NULL;
12830                 }
12831                 if (r->in.server_name) {
12832                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12833                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12834                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12835                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12836                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12837                                 return 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));
12838                         }
12839                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12840                         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));
12841                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12842                 }
12843                 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
12844                 ZERO_STRUCTP(r->out.dom_trust_list);
12845         }
12846         if (flags & NDR_OUT) {
12847                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12848                         NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
12849                 }
12850                 _mem_save_dom_trust_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
12851                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dom_trust_list, LIBNDR_FLAG_REF_ALLOC);
12852                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
12853                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_trust_list_0, LIBNDR_FLAG_REF_ALLOC);
12854                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12855         }
12856         return NDR_ERR_SUCCESS;
12857 }
12858
12859 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
12860 {
12861         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomainsEx");
12862         ndr->depth++;
12863         if (flags & NDR_SET_VALUES) {
12864                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12865         }
12866         if (flags & NDR_IN) {
12867                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomainsEx");
12868                 ndr->depth++;
12869                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12870                 ndr->depth++;
12871                 if (r->in.server_name) {
12872                         ndr_print_string(ndr, "server_name", r->in.server_name);
12873                 }
12874                 ndr->depth--;
12875                 ndr->depth--;
12876         }
12877         if (flags & NDR_OUT) {
12878                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomainsEx");
12879                 ndr->depth++;
12880                 ndr_print_ptr(ndr, "dom_trust_list", r->out.dom_trust_list);
12881                 ndr->depth++;
12882                 ndr_print_netr_DomainTrustList(ndr, "dom_trust_list", r->out.dom_trust_list);
12883                 ndr->depth--;
12884                 ndr_print_WERROR(ndr, "result", r->out.result);
12885                 ndr->depth--;
12886         }
12887         ndr->depth--;
12888 }
12889
12890 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesExW *r)
12891 {
12892         uint32_t cntr_addresses_1;
12893         if (flags & NDR_IN) {
12894                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12895                 if (r->in.server_name) {
12896                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12897                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12898                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12899                         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));
12900                 }
12901                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12902                 if (r->in.addresses == NULL) {
12903                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12904                 }
12905                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12906                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12907                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12908                 }
12909                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12910                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12911                 }
12912         }
12913         if (flags & NDR_OUT) {
12914                 if (r->out.ctr == NULL) {
12915                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12916                 }
12917                 if (*r->out.ctr == NULL) {
12918                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12919                 }
12920                 NDR_CHECK(ndr_push_ref_ptr(ndr));
12921                 NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12922                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12923         }
12924         return NDR_ERR_SUCCESS;
12925 }
12926
12927 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r)
12928 {
12929         uint32_t _ptr_server_name;
12930         uint32_t cntr_addresses_1;
12931         uint32_t _ptr_ctr;
12932         TALLOC_CTX *_mem_save_server_name_0;
12933         TALLOC_CTX *_mem_save_addresses_1;
12934         TALLOC_CTX *_mem_save_ctr_0;
12935         TALLOC_CTX *_mem_save_ctr_1;
12936         if (flags & NDR_IN) {
12937                 ZERO_STRUCT(r->out);
12938
12939                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12940                 if (_ptr_server_name) {
12941                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12942                 } else {
12943                         r->in.server_name = NULL;
12944                 }
12945                 if (r->in.server_name) {
12946                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12947                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12948                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12949                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12950                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12951                                 return 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));
12952                         }
12953                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12954                         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));
12955                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12956                 }
12957                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
12958                 if (r->in.count < 0 || r->in.count > 32000) {
12959                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
12960                 }
12961                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
12962                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12963                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
12964                 }
12965                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
12966                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
12967                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12968                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12969                 }
12970                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12971                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12972                 }
12973                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
12974                 NDR_PULL_ALLOC(ndr, r->out.ctr);
12975                 ZERO_STRUCTP(r->out.ctr);
12976                 if (r->in.addresses) {
12977                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
12978                 }
12979         }
12980         if (flags & NDR_OUT) {
12981                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12982                         NDR_PULL_ALLOC(ndr, r->out.ctr);
12983                 }
12984                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
12985                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12986                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_ctr));
12987                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12988                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
12989                 }
12990                 _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
12991                 NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12992                 NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12993                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, LIBNDR_FLAG_REF_ALLOC);
12994                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
12995                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12996         }
12997         return NDR_ERR_SUCCESS;
12998 }
12999
13000 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesExW *r)
13001 {
13002         uint32_t cntr_addresses_1;
13003         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExW");
13004         ndr->depth++;
13005         if (flags & NDR_SET_VALUES) {
13006                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13007         }
13008         if (flags & NDR_IN) {
13009                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesExW");
13010                 ndr->depth++;
13011                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13012                 ndr->depth++;
13013                 if (r->in.server_name) {
13014                         ndr_print_string(ndr, "server_name", r->in.server_name);
13015                 }
13016                 ndr->depth--;
13017                 ndr_print_uint32(ndr, "count", r->in.count);
13018                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
13019                 ndr->depth++;
13020                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", r->in.count);
13021                 ndr->depth++;
13022                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
13023                         char *idx_1=NULL;
13024                         asprintf(&idx_1, "[%d]", cntr_addresses_1);
13025                         if (idx_1) {
13026                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
13027                                 free(idx_1);
13028                         }
13029                 }
13030                 ndr->depth--;
13031                 ndr->depth--;
13032                 ndr->depth--;
13033         }
13034         if (flags & NDR_OUT) {
13035                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesExW");
13036                 ndr->depth++;
13037                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13038                 ndr->depth++;
13039                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
13040                 ndr->depth++;
13041                 ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr, "ctr", *r->out.ctr);
13042                 ndr->depth--;
13043                 ndr->depth--;
13044                 ndr_print_WERROR(ndr, "result", r->out.result);
13045                 ndr->depth--;
13046         }
13047         ndr->depth--;
13048 }
13049
13050 static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *ndr, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13051 {
13052         if (flags & NDR_IN) {
13053                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13054                 if (r->in.server_name) {
13055                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13056                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13057                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13058                         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));
13059                 }
13060         }
13061         if (flags & NDR_OUT) {
13062                 if (r->out.ctr == NULL) {
13063                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13064                 }
13065                 NDR_CHECK(ndr_push_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13066                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13067         }
13068         return NDR_ERR_SUCCESS;
13069 }
13070
13071 static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r)
13072 {
13073         uint32_t _ptr_server_name;
13074         TALLOC_CTX *_mem_save_server_name_0;
13075         TALLOC_CTX *_mem_save_ctr_0;
13076         if (flags & NDR_IN) {
13077                 ZERO_STRUCT(r->out);
13078
13079                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13080                 if (_ptr_server_name) {
13081                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13082                 } else {
13083                         r->in.server_name = NULL;
13084                 }
13085                 if (r->in.server_name) {
13086                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13087                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13088                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13089                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13090                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13091                                 return 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));
13092                         }
13093                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13094                         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));
13095                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13096                 }
13097                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13098                 ZERO_STRUCTP(r->out.ctr);
13099         }
13100         if (flags & NDR_OUT) {
13101                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13102                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13103                 }
13104                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13105                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13106                 NDR_CHECK(ndr_pull_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13107                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13108                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13109         }
13110         return NDR_ERR_SUCCESS;
13111 }
13112
13113 _PUBLIC_ void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13114 {
13115         ndr_print_struct(ndr, name, "netr_DsrGetDcSiteCoverageW");
13116         ndr->depth++;
13117         if (flags & NDR_SET_VALUES) {
13118                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13119         }
13120         if (flags & NDR_IN) {
13121                 ndr_print_struct(ndr, "in", "netr_DsrGetDcSiteCoverageW");
13122                 ndr->depth++;
13123                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13124                 ndr->depth++;
13125                 if (r->in.server_name) {
13126                         ndr_print_string(ndr, "server_name", r->in.server_name);
13127                 }
13128                 ndr->depth--;
13129                 ndr->depth--;
13130         }
13131         if (flags & NDR_OUT) {
13132                 ndr_print_struct(ndr, "out", "netr_DsrGetDcSiteCoverageW");
13133                 ndr->depth++;
13134                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13135                 ndr->depth++;
13136                 ndr_print_DcSitesCtr(ndr, "ctr", r->out.ctr);
13137                 ndr->depth--;
13138                 ndr_print_WERROR(ndr, "result", r->out.result);
13139                 ndr->depth--;
13140         }
13141         ndr->depth--;
13142 }
13143
13144 static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
13145 {
13146         if (flags & NDR_IN) {
13147                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13148                 if (r->in.server_name) {
13149                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13150                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13151                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13152                         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));
13153                 }
13154                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13155                 if (r->in.computer_name) {
13156                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13157                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13158                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13159                         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));
13160                 }
13161                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
13162                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
13163                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
13164                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
13165                 if (r->in.flags == NULL) {
13166                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13167                 }
13168                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
13169         }
13170         if (flags & NDR_OUT) {
13171                 if (r->out.validation == NULL) {
13172                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13173                 }
13174                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13175                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13176                 if (r->out.authoritative == NULL) {
13177                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13178                 }
13179                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
13180                 if (r->out.flags == NULL) {
13181                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13182                 }
13183                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
13184                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13185         }
13186         return NDR_ERR_SUCCESS;
13187 }
13188
13189 static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
13190 {
13191         uint32_t _ptr_server_name;
13192         uint32_t _ptr_computer_name;
13193         TALLOC_CTX *_mem_save_server_name_0;
13194         TALLOC_CTX *_mem_save_computer_name_0;
13195         TALLOC_CTX *_mem_save_validation_0;
13196         TALLOC_CTX *_mem_save_authoritative_0;
13197         TALLOC_CTX *_mem_save_flags_0;
13198         if (flags & NDR_IN) {
13199                 ZERO_STRUCT(r->out);
13200
13201                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13202                 if (_ptr_server_name) {
13203                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13204                 } else {
13205                         r->in.server_name = NULL;
13206                 }
13207                 if (r->in.server_name) {
13208                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13209                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13210                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13211                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13212                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13213                                 return 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));
13214                         }
13215                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13216                         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));
13217                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13218                 }
13219                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13220                 if (_ptr_computer_name) {
13221                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13222                 } else {
13223                         r->in.computer_name = NULL;
13224                 }
13225                 if (r->in.computer_name) {
13226                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13227                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13228                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13229                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13230                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13231                                 return 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));
13232                         }
13233                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13234                         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));
13235                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13236                 }
13237                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
13238                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
13239                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
13240                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
13241                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13242                         NDR_PULL_ALLOC(ndr, r->in.flags);
13243                 }
13244                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13245                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
13246                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
13247                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13248                 NDR_PULL_ALLOC(ndr, r->out.validation);
13249                 ZERO_STRUCTP(r->out.validation);
13250                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
13251                 ZERO_STRUCTP(r->out.authoritative);
13252                 NDR_PULL_ALLOC(ndr, r->out.flags);
13253                 *r->out.flags = *r->in.flags;
13254         }
13255         if (flags & NDR_OUT) {
13256                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13257                         NDR_PULL_ALLOC(ndr, r->out.validation);
13258                 }
13259                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
13260                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
13261                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13262                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13263                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
13264                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13265                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
13266                 }
13267                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
13268                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
13269                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
13270                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
13271                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13272                         NDR_PULL_ALLOC(ndr, r->out.flags);
13273                 }
13274                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13275                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
13276                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
13277                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13278                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13279         }
13280         return NDR_ERR_SUCCESS;
13281 }
13282
13283 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
13284 {
13285         ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
13286         ndr->depth++;
13287         if (flags & NDR_SET_VALUES) {
13288                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13289         }
13290         if (flags & NDR_IN) {
13291                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
13292                 ndr->depth++;
13293                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13294                 ndr->depth++;
13295                 if (r->in.server_name) {
13296                         ndr_print_string(ndr, "server_name", r->in.server_name);
13297                 }
13298                 ndr->depth--;
13299                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13300                 ndr->depth++;
13301                 if (r->in.computer_name) {
13302                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
13303                 }
13304                 ndr->depth--;
13305                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
13306                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
13307                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
13308                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
13309                 ndr_print_ptr(ndr, "flags", r->in.flags);
13310                 ndr->depth++;
13311                 ndr_print_uint32(ndr, "flags", *r->in.flags);
13312                 ndr->depth--;
13313                 ndr->depth--;
13314         }
13315         if (flags & NDR_OUT) {
13316                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
13317                 ndr->depth++;
13318                 ndr_print_ptr(ndr, "validation", r->out.validation);
13319                 ndr->depth++;
13320                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
13321                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
13322                 ndr->depth--;
13323                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
13324                 ndr->depth++;
13325                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
13326                 ndr->depth--;
13327                 ndr_print_ptr(ndr, "flags", r->out.flags);
13328                 ndr->depth++;
13329                 ndr_print_uint32(ndr, "flags", *r->out.flags);
13330                 ndr->depth--;
13331                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13332                 ndr->depth--;
13333         }
13334         ndr->depth--;
13335 }
13336
13337 static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13338 {
13339         if (flags & NDR_IN) {
13340                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13341                 if (r->in.server_name) {
13342                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13343                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13344                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13345                         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));
13346                 }
13347                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
13348         }
13349         if (flags & NDR_OUT) {
13350                 if (r->out.trusts == NULL) {
13351                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13352                 }
13353                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13354                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13355         }
13356         return NDR_ERR_SUCCESS;
13357 }
13358
13359 static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
13360 {
13361         uint32_t _ptr_server_name;
13362         TALLOC_CTX *_mem_save_server_name_0;
13363         TALLOC_CTX *_mem_save_trusts_0;
13364         if (flags & NDR_IN) {
13365                 ZERO_STRUCT(r->out);
13366
13367                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13368                 if (_ptr_server_name) {
13369                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13370                 } else {
13371                         r->in.server_name = NULL;
13372                 }
13373                 if (r->in.server_name) {
13374                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13375                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13376                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13377                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13378                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13379                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
13380                         }
13381                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13382                         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));
13383                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13384                 }
13385                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
13386                 NDR_PULL_ALLOC(ndr, r->out.trusts);
13387                 ZERO_STRUCTP(r->out.trusts);
13388         }
13389         if (flags & NDR_OUT) {
13390                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13391                         NDR_PULL_ALLOC(ndr, r->out.trusts);
13392                 }
13393                 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
13394                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
13395                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13396                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, LIBNDR_FLAG_REF_ALLOC);
13397                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13398         }
13399         return NDR_ERR_SUCCESS;
13400 }
13401
13402 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13403 {
13404         ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
13405         ndr->depth++;
13406         if (flags & NDR_SET_VALUES) {
13407                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13408         }
13409         if (flags & NDR_IN) {
13410                 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
13411                 ndr->depth++;
13412                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13413                 ndr->depth++;
13414                 if (r->in.server_name) {
13415                         ndr_print_string(ndr, "server_name", r->in.server_name);
13416                 }
13417                 ndr->depth--;
13418                 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
13419                 ndr->depth--;
13420         }
13421         if (flags & NDR_OUT) {
13422                 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
13423                 ndr->depth++;
13424                 ndr_print_ptr(ndr, "trusts", r->out.trusts);
13425                 ndr->depth++;
13426                 ndr_print_netr_DomainTrustList(ndr, "trusts", r->out.trusts);
13427                 ndr->depth--;
13428                 ndr_print_WERROR(ndr, "result", r->out.result);
13429                 ndr->depth--;
13430         }
13431         ndr->depth--;
13432 }
13433
13434 static enum ndr_err_code ndr_push_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_push *ndr, int flags, const struct netr_DSRDEREGISTERDNSHOSTRECORDS *r)
13435 {
13436         if (flags & NDR_IN) {
13437         }
13438         if (flags & NDR_OUT) {
13439                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13440         }
13441         return NDR_ERR_SUCCESS;
13442 }
13443
13444 static enum ndr_err_code ndr_pull_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_pull *ndr, int flags, struct netr_DSRDEREGISTERDNSHOSTRECORDS *r)
13445 {
13446         if (flags & NDR_IN) {
13447         }
13448         if (flags & NDR_OUT) {
13449                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13450         }
13451         return NDR_ERR_SUCCESS;
13452 }
13453
13454 _PUBLIC_ void ndr_print_netr_DSRDEREGISTERDNSHOSTRECORDS(struct ndr_print *ndr, const char *name, int flags, const struct netr_DSRDEREGISTERDNSHOSTRECORDS *r)
13455 {
13456         ndr_print_struct(ndr, name, "netr_DSRDEREGISTERDNSHOSTRECORDS");
13457         ndr->depth++;
13458         if (flags & NDR_SET_VALUES) {
13459                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13460         }
13461         if (flags & NDR_IN) {
13462                 ndr_print_struct(ndr, "in", "netr_DSRDEREGISTERDNSHOSTRECORDS");
13463                 ndr->depth++;
13464                 ndr->depth--;
13465         }
13466         if (flags & NDR_OUT) {
13467                 ndr_print_struct(ndr, "out", "netr_DSRDEREGISTERDNSHOSTRECORDS");
13468                 ndr->depth++;
13469                 ndr_print_WERROR(ndr, "result", r->out.result);
13470                 ndr->depth--;
13471         }
13472         ndr->depth--;
13473 }
13474
13475 static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push *ndr, int flags, const struct netr_ServerTrustPasswordsGet *r)
13476 {
13477         if (flags & NDR_IN) {
13478                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13479                 if (r->in.server_name) {
13480                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13481                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13482                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13483                         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));
13484                 }
13485                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13486                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13487                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13488                 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));
13489                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13490                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13491                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13492                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13493                 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));
13494                 if (r->in.credential == NULL) {
13495                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13496                 }
13497                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13498         }
13499         if (flags & NDR_OUT) {
13500                 if (r->out.return_authenticator == NULL) {
13501                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13502                 }
13503                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13504                 if (r->out.password == NULL) {
13505                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13506                 }
13507                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
13508                 if (r->out.password2 == NULL) {
13509                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13510                 }
13511                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password2));
13512                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13513         }
13514         return NDR_ERR_SUCCESS;
13515 }
13516
13517 static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r)
13518 {
13519         uint32_t _ptr_server_name;
13520         TALLOC_CTX *_mem_save_server_name_0;
13521         TALLOC_CTX *_mem_save_credential_0;
13522         TALLOC_CTX *_mem_save_return_authenticator_0;
13523         TALLOC_CTX *_mem_save_password_0;
13524         TALLOC_CTX *_mem_save_password2_0;
13525         if (flags & NDR_IN) {
13526                 ZERO_STRUCT(r->out);
13527
13528                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13529                 if (_ptr_server_name) {
13530                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13531                 } else {
13532                         r->in.server_name = NULL;
13533                 }
13534                 if (r->in.server_name) {
13535                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13536                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13537                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13538                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13539                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13540                                 return 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));
13541                         }
13542                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13543                         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));
13544                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13545                 }
13546                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13547                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13548                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13549                         return 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));
13550                 }
13551                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13552                 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));
13553                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13554                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13555                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13556                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13557                         return 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));
13558                 }
13559                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13560                 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));
13561                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13562                         NDR_PULL_ALLOC(ndr, r->in.credential);
13563                 }
13564                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13565                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13566                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13567                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13568                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13569                 ZERO_STRUCTP(r->out.return_authenticator);
13570                 NDR_PULL_ALLOC(ndr, r->out.password);
13571                 ZERO_STRUCTP(r->out.password);
13572                 NDR_PULL_ALLOC(ndr, r->out.password2);
13573                 ZERO_STRUCTP(r->out.password2);
13574         }
13575         if (flags & NDR_OUT) {
13576                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13577                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13578                 }
13579                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13580                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13581                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13582                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13583                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13584                         NDR_PULL_ALLOC(ndr, r->out.password);
13585                 }
13586                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
13587                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
13588                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
13589                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
13590                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13591                         NDR_PULL_ALLOC(ndr, r->out.password2);
13592                 }
13593                 _mem_save_password2_0 = NDR_PULL_GET_MEM_CTX(ndr);
13594                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password2, LIBNDR_FLAG_REF_ALLOC);
13595                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password2));
13596                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password2_0, LIBNDR_FLAG_REF_ALLOC);
13597                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13598         }
13599         return NDR_ERR_SUCCESS;
13600 }
13601
13602 _PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerTrustPasswordsGet *r)
13603 {
13604         ndr_print_struct(ndr, name, "netr_ServerTrustPasswordsGet");
13605         ndr->depth++;
13606         if (flags & NDR_SET_VALUES) {
13607                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13608         }
13609         if (flags & NDR_IN) {
13610                 ndr_print_struct(ndr, "in", "netr_ServerTrustPasswordsGet");
13611                 ndr->depth++;
13612                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13613                 ndr->depth++;
13614                 if (r->in.server_name) {
13615                         ndr_print_string(ndr, "server_name", r->in.server_name);
13616                 }
13617                 ndr->depth--;
13618                 ndr_print_string(ndr, "account_name", r->in.account_name);
13619                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
13620                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13621                 ndr_print_ptr(ndr, "credential", r->in.credential);
13622                 ndr->depth++;
13623                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13624                 ndr->depth--;
13625                 ndr->depth--;
13626         }
13627         if (flags & NDR_OUT) {
13628                 ndr_print_struct(ndr, "out", "netr_ServerTrustPasswordsGet");
13629                 ndr->depth++;
13630                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13631                 ndr->depth++;
13632                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13633                 ndr->depth--;
13634                 ndr_print_ptr(ndr, "password", r->out.password);
13635                 ndr->depth++;
13636                 ndr_print_samr_Password(ndr, "password", r->out.password);
13637                 ndr->depth--;
13638                 ndr_print_ptr(ndr, "password2", r->out.password2);
13639                 ndr->depth++;
13640                 ndr_print_samr_Password(ndr, "password2", r->out.password2);
13641                 ndr->depth--;
13642                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13643                 ndr->depth--;
13644         }
13645         ndr->depth--;
13646 }
13647
13648 static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_DsRGetForestTrustInformation *r)
13649 {
13650         if (flags & NDR_IN) {
13651                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13652                 if (r->in.server_name) {
13653                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13654                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13655                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13656                         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));
13657                 }
13658                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.trusted_domain_name));
13659                 if (r->in.trusted_domain_name) {
13660                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
13661                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13662                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
13663                         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));
13664                 }
13665                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
13666         }
13667         if (flags & NDR_OUT) {
13668                 if (r->out.forest_trust_info == NULL) {
13669                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13670                 }
13671                 if (*r->out.forest_trust_info == NULL) {
13672                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13673                 }
13674                 NDR_CHECK(ndr_push_ref_ptr(ndr));
13675                 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
13676                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13677         }
13678         return NDR_ERR_SUCCESS;
13679 }
13680
13681 static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r)
13682 {
13683         uint32_t _ptr_server_name;
13684         uint32_t _ptr_trusted_domain_name;
13685         uint32_t _ptr_forest_trust_info;
13686         TALLOC_CTX *_mem_save_server_name_0;
13687         TALLOC_CTX *_mem_save_trusted_domain_name_0;
13688         TALLOC_CTX *_mem_save_forest_trust_info_0;
13689         TALLOC_CTX *_mem_save_forest_trust_info_1;
13690         if (flags & NDR_IN) {
13691                 ZERO_STRUCT(r->out);
13692
13693                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13694                 if (_ptr_server_name) {
13695                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13696                 } else {
13697                         r->in.server_name = NULL;
13698                 }
13699                 if (r->in.server_name) {
13700                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13701                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13702                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13703                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13704                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13705                                 return 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));
13706                         }
13707                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13708                         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));
13709                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13710                 }
13711                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
13712                 if (_ptr_trusted_domain_name) {
13713                         NDR_PULL_ALLOC(ndr, r->in.trusted_domain_name);
13714                 } else {
13715                         r->in.trusted_domain_name = NULL;
13716                 }
13717                 if (r->in.trusted_domain_name) {
13718                         _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13719                         NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0);
13720                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
13721                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
13722                         if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
13723                                 return 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));
13724                         }
13725                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
13726                         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));
13727                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
13728                 }
13729                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
13730                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
13731                 ZERO_STRUCTP(r->out.forest_trust_info);
13732         }
13733         if (flags & NDR_OUT) {
13734                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13735                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
13736                 }
13737                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13738                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
13739                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_forest_trust_info));
13740                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13741                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
13742                 }
13743                 _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
13744                 NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
13745                 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
13746                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, LIBNDR_FLAG_REF_ALLOC);
13747                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
13748                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13749         }
13750         return NDR_ERR_SUCCESS;
13751 }
13752
13753 _PUBLIC_ void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r)
13754 {
13755         ndr_print_struct(ndr, name, "netr_DsRGetForestTrustInformation");
13756         ndr->depth++;
13757         if (flags & NDR_SET_VALUES) {
13758                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13759         }
13760         if (flags & NDR_IN) {
13761                 ndr_print_struct(ndr, "in", "netr_DsRGetForestTrustInformation");
13762                 ndr->depth++;
13763                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13764                 ndr->depth++;
13765                 if (r->in.server_name) {
13766                         ndr_print_string(ndr, "server_name", r->in.server_name);
13767                 }
13768                 ndr->depth--;
13769                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
13770                 ndr->depth++;
13771                 if (r->in.trusted_domain_name) {
13772                         ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
13773                 }
13774                 ndr->depth--;
13775                 ndr_print_uint32(ndr, "flags", r->in.flags);
13776                 ndr->depth--;
13777         }
13778         if (flags & NDR_OUT) {
13779                 ndr_print_struct(ndr, "out", "netr_DsRGetForestTrustInformation");
13780                 ndr->depth++;
13781                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
13782                 ndr->depth++;
13783                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
13784                 ndr->depth++;
13785                 ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
13786                 ndr->depth--;
13787                 ndr->depth--;
13788                 ndr_print_WERROR(ndr, "result", r->out.result);
13789                 ndr->depth--;
13790         }
13791         ndr->depth--;
13792 }
13793
13794 static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_GetForestTrustInformation *r)
13795 {
13796         if (flags & NDR_IN) {
13797                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13798                 if (r->in.server_name) {
13799                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13800                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13801                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13802                         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));
13803                 }
13804                 if (r->in.trusted_domain_name == NULL) {
13805                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13806                 }
13807                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
13808                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13809                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
13810                 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));
13811                 if (r->in.credential == NULL) {
13812                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13813                 }
13814                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13815                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
13816         }
13817         if (flags & NDR_OUT) {
13818                 if (r->out.return_authenticator == NULL) {
13819                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13820                 }
13821                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13822                 if (r->out.forest_trust_info == NULL) {
13823                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13824                 }
13825                 if (*r->out.forest_trust_info == NULL) {
13826                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13827                 }
13828                 NDR_CHECK(ndr_push_ref_ptr(ndr));
13829                 NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
13830                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13831         }
13832         return NDR_ERR_SUCCESS;
13833 }
13834
13835 static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r)
13836 {
13837         uint32_t _ptr_server_name;
13838         uint32_t _ptr_forest_trust_info;
13839         TALLOC_CTX *_mem_save_server_name_0;
13840         TALLOC_CTX *_mem_save_credential_0;
13841         TALLOC_CTX *_mem_save_return_authenticator_0;
13842         TALLOC_CTX *_mem_save_forest_trust_info_0;
13843         TALLOC_CTX *_mem_save_forest_trust_info_1;
13844         if (flags & NDR_IN) {
13845                 ZERO_STRUCT(r->out);
13846
13847                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13848                 if (_ptr_server_name) {
13849                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13850                 } else {
13851                         r->in.server_name = NULL;
13852                 }
13853                 if (r->in.server_name) {
13854                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13855                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13856                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13857                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13858                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13859                                 return 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));
13860                         }
13861                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13862                         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));
13863                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13864                 }
13865                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
13866                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
13867                 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
13868                         return 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));
13869                 }
13870                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
13871                 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));
13872                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13873                         NDR_PULL_ALLOC(ndr, r->in.credential);
13874                 }
13875                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13876                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13877                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13878                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13879                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
13880                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13881                 ZERO_STRUCTP(r->out.return_authenticator);
13882                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
13883                 ZERO_STRUCTP(r->out.forest_trust_info);
13884         }
13885         if (flags & NDR_OUT) {
13886                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13887                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13888                 }
13889                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13890                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13891                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13892                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13893                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13894                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
13895                 }
13896                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13897                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
13898                 NDR_CHECK(ndr_pull_ref_ptr(ndr, &_ptr_forest_trust_info));
13899                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13900                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
13901                 }
13902                 _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
13903                 NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
13904                 NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
13905                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, LIBNDR_FLAG_REF_ALLOC);
13906                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
13907                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13908         }
13909         return NDR_ERR_SUCCESS;
13910 }
13911
13912 _PUBLIC_ void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r)
13913 {
13914         ndr_print_struct(ndr, name, "netr_GetForestTrustInformation");
13915         ndr->depth++;
13916         if (flags & NDR_SET_VALUES) {
13917                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13918         }
13919         if (flags & NDR_IN) {
13920                 ndr_print_struct(ndr, "in", "netr_GetForestTrustInformation");
13921                 ndr->depth++;
13922                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13923                 ndr->depth++;
13924                 if (r->in.server_name) {
13925                         ndr_print_string(ndr, "server_name", r->in.server_name);
13926                 }
13927                 ndr->depth--;
13928                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
13929                 ndr->depth++;
13930                 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
13931                 ndr->depth--;
13932                 ndr_print_ptr(ndr, "credential", r->in.credential);
13933                 ndr->depth++;
13934                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13935                 ndr->depth--;
13936                 ndr_print_uint32(ndr, "flags", r->in.flags);
13937                 ndr->depth--;
13938         }
13939         if (flags & NDR_OUT) {
13940                 ndr_print_struct(ndr, "out", "netr_GetForestTrustInformation");
13941                 ndr->depth++;
13942                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13943                 ndr->depth++;
13944                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13945                 ndr->depth--;
13946                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
13947                 ndr->depth++;
13948                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
13949                 ndr->depth++;
13950                 ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
13951                 ndr->depth--;
13952                 ndr->depth--;
13953                 ndr_print_WERROR(ndr, "result", r->out.result);
13954                 ndr->depth--;
13955         }
13956         ndr->depth--;
13957 }
13958
13959 static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
13960 {
13961         if (flags & NDR_IN) {
13962                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13963                 if (r->in.server_name) {
13964                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13965                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13966                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13967                         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));
13968                 }
13969                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13970                 if (r->in.computer_name) {
13971                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13972                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13973                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13974                         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));
13975                 }
13976                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
13977                 if (r->in.credential) {
13978                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13979                 }
13980                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
13981                 if (r->in.return_authenticator) {
13982                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
13983                 }
13984                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
13985                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
13986                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
13987                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
13988                 if (r->in.flags == NULL) {
13989                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13990                 }
13991                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
13992         }
13993         if (flags & NDR_OUT) {
13994                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
13995                 if (r->out.return_authenticator) {
13996                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13997                 }
13998                 if (r->out.validation == NULL) {
13999                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14000                 }
14001                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14002                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14003                 if (r->out.authoritative == NULL) {
14004                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14005                 }
14006                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
14007                 if (r->out.flags == NULL) {
14008                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14009                 }
14010                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
14011                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
14012         }
14013         return NDR_ERR_SUCCESS;
14014 }
14015
14016 static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
14017 {
14018         uint32_t _ptr_server_name;
14019         uint32_t _ptr_computer_name;
14020         uint32_t _ptr_credential;
14021         uint32_t _ptr_return_authenticator;
14022         TALLOC_CTX *_mem_save_server_name_0;
14023         TALLOC_CTX *_mem_save_computer_name_0;
14024         TALLOC_CTX *_mem_save_credential_0;
14025         TALLOC_CTX *_mem_save_return_authenticator_0;
14026         TALLOC_CTX *_mem_save_validation_0;
14027         TALLOC_CTX *_mem_save_authoritative_0;
14028         TALLOC_CTX *_mem_save_flags_0;
14029         if (flags & NDR_IN) {
14030                 ZERO_STRUCT(r->out);
14031
14032                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14033                 if (_ptr_server_name) {
14034                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14035                 } else {
14036                         r->in.server_name = NULL;
14037                 }
14038                 if (r->in.server_name) {
14039                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14040                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14041                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14042                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14043                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14044                                 return 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));
14045                         }
14046                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14047                         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));
14048                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14049                 }
14050                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
14051                 if (_ptr_computer_name) {
14052                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
14053                 } else {
14054                         r->in.computer_name = NULL;
14055                 }
14056                 if (r->in.computer_name) {
14057                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14058                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
14059                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14060                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14061                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14062                                 return 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));
14063                         }
14064                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14065                         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));
14066                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
14067                 }
14068                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
14069                 if (_ptr_credential) {
14070                         NDR_PULL_ALLOC(ndr, r->in.credential);
14071                 } else {
14072                         r->in.credential = NULL;
14073                 }
14074                 if (r->in.credential) {
14075                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14076                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
14077                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14078                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
14079                 }
14080                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14081                 if (_ptr_return_authenticator) {
14082                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
14083                 } else {
14084                         r->in.return_authenticator = NULL;
14085                 }
14086                 if (r->in.return_authenticator) {
14087                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14088                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
14089                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14090                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14091                 }
14092                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
14093                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14094                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14095                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
14096                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14097                         NDR_PULL_ALLOC(ndr, r->in.flags);
14098                 }
14099                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14100                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
14101                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
14102                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14103                 NDR_PULL_ALLOC(ndr, r->out.validation);
14104                 ZERO_STRUCTP(r->out.validation);
14105                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
14106                 ZERO_STRUCTP(r->out.authoritative);
14107                 NDR_PULL_ALLOC(ndr, r->out.flags);
14108                 *r->out.flags = *r->in.flags;
14109         }
14110         if (flags & NDR_OUT) {
14111                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14112                 if (_ptr_return_authenticator) {
14113                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14114                 } else {
14115                         r->out.return_authenticator = NULL;
14116                 }
14117                 if (r->out.return_authenticator) {
14118                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14119                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
14120                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14121                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14122                 }
14123                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14124                         NDR_PULL_ALLOC(ndr, r->out.validation);
14125                 }
14126                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
14127                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
14128                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14129                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14130                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
14131                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14132                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
14133                 }
14134                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
14135                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
14136                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
14137                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
14138                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14139                         NDR_PULL_ALLOC(ndr, r->out.flags);
14140                 }
14141                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14142                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
14143                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
14144                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14145                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14146         }
14147         return NDR_ERR_SUCCESS;
14148 }
14149
14150 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
14151 {
14152         ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
14153         ndr->depth++;
14154         if (flags & NDR_SET_VALUES) {
14155                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14156         }
14157         if (flags & NDR_IN) {
14158                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
14159                 ndr->depth++;
14160                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14161                 ndr->depth++;
14162                 if (r->in.server_name) {
14163                         ndr_print_string(ndr, "server_name", r->in.server_name);
14164                 }
14165                 ndr->depth--;
14166                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14167                 ndr->depth++;
14168                 if (r->in.computer_name) {
14169                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
14170                 }
14171                 ndr->depth--;
14172                 ndr_print_ptr(ndr, "credential", r->in.credential);
14173                 ndr->depth++;
14174                 if (r->in.credential) {
14175                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14176                 }
14177                 ndr->depth--;
14178                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
14179                 ndr->depth++;
14180                 if (r->in.return_authenticator) {
14181                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
14182                 }
14183                 ndr->depth--;
14184                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
14185                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
14186                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
14187                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
14188                 ndr_print_ptr(ndr, "flags", r->in.flags);
14189                 ndr->depth++;
14190                 ndr_print_uint32(ndr, "flags", *r->in.flags);
14191                 ndr->depth--;
14192                 ndr->depth--;
14193         }
14194         if (flags & NDR_OUT) {
14195                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
14196                 ndr->depth++;
14197                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14198                 ndr->depth++;
14199                 if (r->out.return_authenticator) {
14200                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14201                 }
14202                 ndr->depth--;
14203                 ndr_print_ptr(ndr, "validation", r->out.validation);
14204                 ndr->depth++;
14205                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
14206                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
14207                 ndr->depth--;
14208                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
14209                 ndr->depth++;
14210                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
14211                 ndr->depth--;
14212                 ndr_print_ptr(ndr, "flags", r->out.flags);
14213                 ndr->depth++;
14214                 ndr_print_uint32(ndr, "flags", *r->out.flags);
14215                 ndr->depth--;
14216                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14217                 ndr->depth--;
14218         }
14219         ndr->depth--;
14220 }
14221
14222 static enum ndr_err_code ndr_push_netr_NETRSERVERGETTRUSTINFO(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14223 {
14224         if (flags & NDR_IN) {
14225         }
14226         if (flags & NDR_OUT) {
14227                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14228         }
14229         return NDR_ERR_SUCCESS;
14230 }
14231
14232 static enum ndr_err_code ndr_pull_netr_NETRSERVERGETTRUSTINFO(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERGETTRUSTINFO *r)
14233 {
14234         if (flags & NDR_IN) {
14235         }
14236         if (flags & NDR_OUT) {
14237                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14238         }
14239         return NDR_ERR_SUCCESS;
14240 }
14241
14242 _PUBLIC_ void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14243 {
14244         ndr_print_struct(ndr, name, "netr_NETRSERVERGETTRUSTINFO");
14245         ndr->depth++;
14246         if (flags & NDR_SET_VALUES) {
14247                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14248         }
14249         if (flags & NDR_IN) {
14250                 ndr_print_struct(ndr, "in", "netr_NETRSERVERGETTRUSTINFO");
14251                 ndr->depth++;
14252                 ndr->depth--;
14253         }
14254         if (flags & NDR_OUT) {
14255                 ndr_print_struct(ndr, "out", "netr_NETRSERVERGETTRUSTINFO");
14256                 ndr->depth++;
14257                 ndr_print_WERROR(ndr, "result", r->out.result);
14258                 ndr->depth--;
14259         }
14260         ndr->depth--;
14261 }
14262
14263 static const struct ndr_interface_call netlogon_calls[] = {
14264         {
14265                 "netr_LogonUasLogon",
14266                 sizeof(struct netr_LogonUasLogon),
14267                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
14268                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
14269                 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
14270                 false,
14271         },
14272         {
14273                 "netr_LogonUasLogoff",
14274                 sizeof(struct netr_LogonUasLogoff),
14275                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
14276                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
14277                 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
14278                 false,
14279         },
14280         {
14281                 "netr_LogonSamLogon",
14282                 sizeof(struct netr_LogonSamLogon),
14283                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
14284                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
14285                 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
14286                 false,
14287         },
14288         {
14289                 "netr_LogonSamLogoff",
14290                 sizeof(struct netr_LogonSamLogoff),
14291                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
14292                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
14293                 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
14294                 false,
14295         },
14296         {
14297                 "netr_ServerReqChallenge",
14298                 sizeof(struct netr_ServerReqChallenge),
14299                 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
14300                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
14301                 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
14302                 false,
14303         },
14304         {
14305                 "netr_ServerAuthenticate",
14306                 sizeof(struct netr_ServerAuthenticate),
14307                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
14308                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
14309                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
14310                 false,
14311         },
14312         {
14313                 "netr_ServerPasswordSet",
14314                 sizeof(struct netr_ServerPasswordSet),
14315                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
14316                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
14317                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
14318                 false,
14319         },
14320         {
14321                 "netr_DatabaseDeltas",
14322                 sizeof(struct netr_DatabaseDeltas),
14323                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
14324                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
14325                 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
14326                 false,
14327         },
14328         {
14329                 "netr_DatabaseSync",
14330                 sizeof(struct netr_DatabaseSync),
14331                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
14332                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
14333                 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
14334                 false,
14335         },
14336         {
14337                 "netr_AccountDeltas",
14338                 sizeof(struct netr_AccountDeltas),
14339                 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
14340                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
14341                 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
14342                 false,
14343         },
14344         {
14345                 "netr_AccountSync",
14346                 sizeof(struct netr_AccountSync),
14347                 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
14348                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
14349                 (ndr_print_function_t) ndr_print_netr_AccountSync,
14350                 false,
14351         },
14352         {
14353                 "netr_GetDcName",
14354                 sizeof(struct netr_GetDcName),
14355                 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
14356                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
14357                 (ndr_print_function_t) ndr_print_netr_GetDcName,
14358                 false,
14359         },
14360         {
14361                 "netr_LogonControl",
14362                 sizeof(struct netr_LogonControl),
14363                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
14364                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
14365                 (ndr_print_function_t) ndr_print_netr_LogonControl,
14366                 false,
14367         },
14368         {
14369                 "netr_GetAnyDCName",
14370                 sizeof(struct netr_GetAnyDCName),
14371                 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
14372                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
14373                 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
14374                 false,
14375         },
14376         {
14377                 "netr_LogonControl2",
14378                 sizeof(struct netr_LogonControl2),
14379                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
14380                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
14381                 (ndr_print_function_t) ndr_print_netr_LogonControl2,
14382                 false,
14383         },
14384         {
14385                 "netr_ServerAuthenticate2",
14386                 sizeof(struct netr_ServerAuthenticate2),
14387                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
14388                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
14389                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
14390                 false,
14391         },
14392         {
14393                 "netr_DatabaseSync2",
14394                 sizeof(struct netr_DatabaseSync2),
14395                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
14396                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
14397                 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
14398                 false,
14399         },
14400         {
14401                 "netr_DatabaseRedo",
14402                 sizeof(struct netr_DatabaseRedo),
14403                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
14404                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
14405                 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
14406                 false,
14407         },
14408         {
14409                 "netr_LogonControl2Ex",
14410                 sizeof(struct netr_LogonControl2Ex),
14411                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
14412                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
14413                 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
14414                 false,
14415         },
14416         {
14417                 "netr_NetrEnumerateTrustedDomains",
14418                 sizeof(struct netr_NetrEnumerateTrustedDomains),
14419                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomains,
14420                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomains,
14421                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomains,
14422                 false,
14423         },
14424         {
14425                 "netr_DsRGetDCName",
14426                 sizeof(struct netr_DsRGetDCName),
14427                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
14428                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
14429                 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
14430                 false,
14431         },
14432         {
14433                 "netr_NETRLOGONDUMMYROUTINE1",
14434                 sizeof(struct netr_NETRLOGONDUMMYROUTINE1),
14435                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONDUMMYROUTINE1,
14436                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONDUMMYROUTINE1,
14437                 (ndr_print_function_t) ndr_print_netr_NETRLOGONDUMMYROUTINE1,
14438                 false,
14439         },
14440         {
14441                 "netr_NETRLOGONSETSERVICEBITS",
14442                 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
14443                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
14444                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
14445                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
14446                 false,
14447         },
14448         {
14449                 "netr_LogonGetTrustRid",
14450                 sizeof(struct netr_LogonGetTrustRid),
14451                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetTrustRid,
14452                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetTrustRid,
14453                 (ndr_print_function_t) ndr_print_netr_LogonGetTrustRid,
14454                 false,
14455         },
14456         {
14457                 "netr_NETRLOGONCOMPUTESERVERDIGEST",
14458                 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
14459                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
14460                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
14461                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
14462                 false,
14463         },
14464         {
14465                 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
14466                 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
14467                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14468                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14469                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14470                 false,
14471         },
14472         {
14473                 "netr_ServerAuthenticate3",
14474                 sizeof(struct netr_ServerAuthenticate3),
14475                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
14476                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
14477                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
14478                 false,
14479         },
14480         {
14481                 "netr_DsRGetDCNameEx",
14482                 sizeof(struct netr_DsRGetDCNameEx),
14483                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
14484                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
14485                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
14486                 false,
14487         },
14488         {
14489                 "netr_DsRGetSiteName",
14490                 sizeof(struct netr_DsRGetSiteName),
14491                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
14492                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
14493                 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
14494                 false,
14495         },
14496         {
14497                 "netr_LogonGetDomainInfo",
14498                 sizeof(struct netr_LogonGetDomainInfo),
14499                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
14500                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
14501                 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
14502                 false,
14503         },
14504         {
14505                 "netr_ServerPasswordSet2",
14506                 sizeof(struct netr_ServerPasswordSet2),
14507                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
14508                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
14509                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
14510                 false,
14511         },
14512         {
14513                 "netr_ServerPasswordGet",
14514                 sizeof(struct netr_ServerPasswordGet),
14515                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordGet,
14516                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordGet,
14517                 (ndr_print_function_t) ndr_print_netr_ServerPasswordGet,
14518                 false,
14519         },
14520         {
14521                 "netr_NETRLOGONSENDTOSAM",
14522                 sizeof(struct netr_NETRLOGONSENDTOSAM),
14523                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
14524                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
14525                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
14526                 false,
14527         },
14528         {
14529                 "netr_DsRAddressToSitenamesW",
14530                 sizeof(struct netr_DsRAddressToSitenamesW),
14531                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesW,
14532                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesW,
14533                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesW,
14534                 false,
14535         },
14536         {
14537                 "netr_DsRGetDCNameEx2",
14538                 sizeof(struct netr_DsRGetDCNameEx2),
14539                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
14540                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
14541                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
14542                 false,
14543         },
14544         {
14545                 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
14546                 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
14547                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14548                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14549                 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14550                 false,
14551         },
14552         {
14553                 "netr_NetrEnumerateTrustedDomainsEx",
14554                 sizeof(struct netr_NetrEnumerateTrustedDomainsEx),
14555                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomainsEx,
14556                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomainsEx,
14557                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomainsEx,
14558                 false,
14559         },
14560         {
14561                 "netr_DsRAddressToSitenamesExW",
14562                 sizeof(struct netr_DsRAddressToSitenamesExW),
14563                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesExW,
14564                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesExW,
14565                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesExW,
14566                 false,
14567         },
14568         {
14569                 "netr_DsrGetDcSiteCoverageW",
14570                 sizeof(struct netr_DsrGetDcSiteCoverageW),
14571                 (ndr_push_flags_fn_t) ndr_push_netr_DsrGetDcSiteCoverageW,
14572                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrGetDcSiteCoverageW,
14573                 (ndr_print_function_t) ndr_print_netr_DsrGetDcSiteCoverageW,
14574                 false,
14575         },
14576         {
14577                 "netr_LogonSamLogonEx",
14578                 sizeof(struct netr_LogonSamLogonEx),
14579                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
14580                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
14581                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
14582                 false,
14583         },
14584         {
14585                 "netr_DsrEnumerateDomainTrusts",
14586                 sizeof(struct netr_DsrEnumerateDomainTrusts),
14587                 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
14588                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
14589                 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
14590                 false,
14591         },
14592         {
14593                 "netr_DSRDEREGISTERDNSHOSTRECORDS",
14594                 sizeof(struct netr_DSRDEREGISTERDNSHOSTRECORDS),
14595                 (ndr_push_flags_fn_t) ndr_push_netr_DSRDEREGISTERDNSHOSTRECORDS,
14596                 (ndr_pull_flags_fn_t) ndr_pull_netr_DSRDEREGISTERDNSHOSTRECORDS,
14597                 (ndr_print_function_t) ndr_print_netr_DSRDEREGISTERDNSHOSTRECORDS,
14598                 false,
14599         },
14600         {
14601                 "netr_ServerTrustPasswordsGet",
14602                 sizeof(struct netr_ServerTrustPasswordsGet),
14603                 (ndr_push_flags_fn_t) ndr_push_netr_ServerTrustPasswordsGet,
14604                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerTrustPasswordsGet,
14605                 (ndr_print_function_t) ndr_print_netr_ServerTrustPasswordsGet,
14606                 false,
14607         },
14608         {
14609                 "netr_DsRGetForestTrustInformation",
14610                 sizeof(struct netr_DsRGetForestTrustInformation),
14611                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetForestTrustInformation,
14612                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetForestTrustInformation,
14613                 (ndr_print_function_t) ndr_print_netr_DsRGetForestTrustInformation,
14614                 false,
14615         },
14616         {
14617                 "netr_GetForestTrustInformation",
14618                 sizeof(struct netr_GetForestTrustInformation),
14619                 (ndr_push_flags_fn_t) ndr_push_netr_GetForestTrustInformation,
14620                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetForestTrustInformation,
14621                 (ndr_print_function_t) ndr_print_netr_GetForestTrustInformation,
14622                 false,
14623         },
14624         {
14625                 "netr_LogonSamLogonWithFlags",
14626                 sizeof(struct netr_LogonSamLogonWithFlags),
14627                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
14628                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
14629                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
14630                 false,
14631         },
14632         {
14633                 "netr_NETRSERVERGETTRUSTINFO",
14634                 sizeof(struct netr_NETRSERVERGETTRUSTINFO),
14635                 (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERGETTRUSTINFO,
14636                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERGETTRUSTINFO,
14637                 (ndr_print_function_t) ndr_print_netr_NETRSERVERGETTRUSTINFO,
14638                 false,
14639         },
14640         { NULL, 0, NULL, NULL, NULL, false }
14641 };
14642
14643 static const char * const netlogon_endpoint_strings[] = {
14644         "ncacn_np:[\\pipe\\netlogon]", 
14645         "ncacn_ip_tcp:", 
14646         "ncalrpc:", 
14647 };
14648
14649 static const struct ndr_interface_string_array netlogon_endpoints = {
14650         .count  = 3,
14651         .names  = netlogon_endpoint_strings
14652 };
14653
14654 static const char * const netlogon_authservice_strings[] = {
14655         "host", 
14656 };
14657
14658 static const struct ndr_interface_string_array netlogon_authservices = {
14659         .count  = 3,
14660         .names  = netlogon_authservice_strings
14661 };
14662
14663
14664 const struct ndr_interface_table ndr_table_netlogon = {
14665         .name           = "netlogon",
14666         .syntax_id      = {
14667                 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
14668                 NDR_NETLOGON_VERSION
14669         },
14670         .helpstring     = NDR_NETLOGON_HELPSTRING,
14671         .num_calls      = 47,
14672         .calls          = netlogon_calls,
14673         .endpoints      = &netlogon_endpoints,
14674         .authservices   = &netlogon_authservices
14675 };
14676