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