Re-run make idl.
[sfrench/samba-autobuild/.git] / source3 / librpc / gen_ndr / ndr_netlogon.c
1 /* parser auto-generated by pidl */
2
3 #include "includes.h"
4 #include "librpc/gen_ndr/ndr_netlogon.h"
5
6 #include "librpc/gen_ndr/ndr_lsa.h"
7 #include "librpc/gen_ndr/ndr_samr.h"
8 #include "librpc/gen_ndr/ndr_security.h"
9 static enum ndr_err_code ndr_push_netr_UasInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasInfo *r)
10 {
11         if (ndr_flags & NDR_SCALARS) {
12                 NDR_CHECK(ndr_push_align(ndr, 4));
13                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
14                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priv));
15                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_flags));
16                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_count));
17                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_pw_count));
18                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logon));
19                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logoff));
20                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->logoff_time));
21                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->kickoff_time));
22                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->password_age));
23                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_can_change));
24                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_must_change));
25                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer));
26                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
27                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->script_path));
28                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
29         }
30         if (ndr_flags & NDR_BUFFERS) {
31                 if (r->account_name) {
32                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
33                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
34                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
35                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
36                 }
37                 if (r->computer) {
38                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
39                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
40                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
41                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer, ndr_charset_length(r->computer, CH_UTF16), sizeof(uint16_t), CH_UTF16));
42                 }
43                 if (r->domain) {
44                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
45                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
46                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
47                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
48                 }
49                 if (r->script_path) {
50                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
51                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
52                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
53                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->script_path, ndr_charset_length(r->script_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
54                 }
55         }
56         return NDR_ERR_SUCCESS;
57 }
58
59 static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasInfo *r)
60 {
61         uint32_t _ptr_account_name;
62         TALLOC_CTX *_mem_save_account_name_0;
63         uint32_t _ptr_computer;
64         TALLOC_CTX *_mem_save_computer_0;
65         uint32_t _ptr_domain;
66         TALLOC_CTX *_mem_save_domain_0;
67         uint32_t _ptr_script_path;
68         TALLOC_CTX *_mem_save_script_path_0;
69         if (ndr_flags & NDR_SCALARS) {
70                 NDR_CHECK(ndr_pull_align(ndr, 4));
71                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
72                 if (_ptr_account_name) {
73                         NDR_PULL_ALLOC(ndr, r->account_name);
74                 } else {
75                         r->account_name = NULL;
76                 }
77                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priv));
78                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_flags));
79                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_count));
80                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_pw_count));
81                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logon));
82                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logoff));
83                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->logoff_time));
84                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->kickoff_time));
85                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->password_age));
86                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_can_change));
87                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_must_change));
88                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer));
89                 if (_ptr_computer) {
90                         NDR_PULL_ALLOC(ndr, r->computer);
91                 } else {
92                         r->computer = NULL;
93                 }
94                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
95                 if (_ptr_domain) {
96                         NDR_PULL_ALLOC(ndr, r->domain);
97                 } else {
98                         r->domain = NULL;
99                 }
100                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_script_path));
101                 if (_ptr_script_path) {
102                         NDR_PULL_ALLOC(ndr, r->script_path);
103                 } else {
104                         r->script_path = NULL;
105                 }
106                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
107         }
108         if (ndr_flags & NDR_BUFFERS) {
109                 if (r->account_name) {
110                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
111                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
112                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
113                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
114                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
115                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name));
116                         }
117                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
118                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
119                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
120                 }
121                 if (r->computer) {
122                         _mem_save_computer_0 = NDR_PULL_GET_MEM_CTX(ndr);
123                         NDR_PULL_SET_MEM_CTX(ndr, r->computer, 0);
124                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer));
125                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer));
126                         if (ndr_get_array_length(ndr, &r->computer) > ndr_get_array_size(ndr, &r->computer)) {
127                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer), ndr_get_array_length(ndr, &r->computer));
128                         }
129                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t)));
130                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t), CH_UTF16));
131                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_0, 0);
132                 }
133                 if (r->domain) {
134                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
135                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
136                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
137                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
138                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
139                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
140                         }
141                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
142                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
143                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
144                 }
145                 if (r->script_path) {
146                         _mem_save_script_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
147                         NDR_PULL_SET_MEM_CTX(ndr, r->script_path, 0);
148                         NDR_CHECK(ndr_pull_array_size(ndr, &r->script_path));
149                         NDR_CHECK(ndr_pull_array_length(ndr, &r->script_path));
150                         if (ndr_get_array_length(ndr, &r->script_path) > ndr_get_array_size(ndr, &r->script_path)) {
151                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->script_path), ndr_get_array_length(ndr, &r->script_path));
152                         }
153                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t)));
154                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->script_path, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t), CH_UTF16));
155                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_script_path_0, 0);
156                 }
157         }
158         return NDR_ERR_SUCCESS;
159 }
160
161 _PUBLIC_ void ndr_print_netr_UasInfo(struct ndr_print *ndr, const char *name, const struct netr_UasInfo *r)
162 {
163         ndr_print_struct(ndr, name, "netr_UasInfo");
164         ndr->depth++;
165         ndr_print_ptr(ndr, "account_name", r->account_name);
166         ndr->depth++;
167         if (r->account_name) {
168                 ndr_print_string(ndr, "account_name", r->account_name);
169         }
170         ndr->depth--;
171         ndr_print_uint32(ndr, "priv", r->priv);
172         ndr_print_uint32(ndr, "auth_flags", r->auth_flags);
173         ndr_print_uint32(ndr, "logon_count", r->logon_count);
174         ndr_print_uint32(ndr, "bad_pw_count", r->bad_pw_count);
175         ndr_print_time_t(ndr, "last_logon", r->last_logon);
176         ndr_print_time_t(ndr, "last_logoff", r->last_logoff);
177         ndr_print_time_t(ndr, "logoff_time", r->logoff_time);
178         ndr_print_time_t(ndr, "kickoff_time", r->kickoff_time);
179         ndr_print_uint32(ndr, "password_age", r->password_age);
180         ndr_print_time_t(ndr, "pw_can_change", r->pw_can_change);
181         ndr_print_time_t(ndr, "pw_must_change", r->pw_must_change);
182         ndr_print_ptr(ndr, "computer", r->computer);
183         ndr->depth++;
184         if (r->computer) {
185                 ndr_print_string(ndr, "computer", r->computer);
186         }
187         ndr->depth--;
188         ndr_print_ptr(ndr, "domain", r->domain);
189         ndr->depth++;
190         if (r->domain) {
191                 ndr_print_string(ndr, "domain", r->domain);
192         }
193         ndr->depth--;
194         ndr_print_ptr(ndr, "script_path", r->script_path);
195         ndr->depth++;
196         if (r->script_path) {
197                 ndr_print_string(ndr, "script_path", r->script_path);
198         }
199         ndr->depth--;
200         ndr_print_uint32(ndr, "unknown", r->unknown);
201         ndr->depth--;
202 }
203
204 static enum ndr_err_code ndr_push_netr_UasLogoffInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasLogoffInfo *r)
205 {
206         if (ndr_flags & NDR_SCALARS) {
207                 NDR_CHECK(ndr_push_align(ndr, 4));
208                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->duration));
209                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
210         }
211         if (ndr_flags & NDR_BUFFERS) {
212         }
213         return NDR_ERR_SUCCESS;
214 }
215
216 static enum ndr_err_code ndr_pull_netr_UasLogoffInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasLogoffInfo *r)
217 {
218         if (ndr_flags & NDR_SCALARS) {
219                 NDR_CHECK(ndr_pull_align(ndr, 4));
220                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->duration));
221                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
222         }
223         if (ndr_flags & NDR_BUFFERS) {
224         }
225         return NDR_ERR_SUCCESS;
226 }
227
228 _PUBLIC_ void ndr_print_netr_UasLogoffInfo(struct ndr_print *ndr, const char *name, const struct netr_UasLogoffInfo *r)
229 {
230         ndr_print_struct(ndr, name, "netr_UasLogoffInfo");
231         ndr->depth++;
232         ndr_print_uint32(ndr, "duration", r->duration);
233         ndr_print_uint16(ndr, "logon_count", r->logon_count);
234         ndr->depth--;
235 }
236
237 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                         if (asprintf(&idx_1, "[%d]", cntr_bindata_1) != -1) {
319                                 ndr_print_uint16(ndr, "bindata", r->bindata[cntr_bindata_1]);
320                                 free(idx_1);
321                         }
322                 }
323                 ndr->depth--;
324         }
325         ndr->depth--;
326         ndr->depth--;
327 }
328
329 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonParameterControl(struct ndr_push *ndr, int ndr_flags, uint32_t r)
330 {
331         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
332         return NDR_ERR_SUCCESS;
333 }
334
335 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonParameterControl(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
336 {
337         uint32_t v;
338         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
339         *r = v;
340         return NDR_ERR_SUCCESS;
341 }
342
343 _PUBLIC_ void ndr_print_netr_LogonParameterControl(struct ndr_print *ndr, const char *name, uint32_t r)
344 {
345         ndr_print_uint32(ndr, name, r);
346         ndr->depth++;
347         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED, r);
348         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS, r);
349         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS, r);
350         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT, r);
351         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH, r);
352         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT, r);
353         ndr->depth--;
354 }
355
356 static enum ndr_err_code ndr_push_netr_IdentityInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_IdentityInfo *r)
357 {
358         if (ndr_flags & NDR_SCALARS) {
359                 NDR_CHECK(ndr_push_align(ndr, 4));
360                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
361                 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr, NDR_SCALARS, r->parameter_control));
362                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_low));
363                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_high));
364                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
365                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstation));
366         }
367         if (ndr_flags & NDR_BUFFERS) {
368                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
369                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
370                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
371         }
372         return NDR_ERR_SUCCESS;
373 }
374
375 static enum ndr_err_code ndr_pull_netr_IdentityInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_IdentityInfo *r)
376 {
377         if (ndr_flags & NDR_SCALARS) {
378                 NDR_CHECK(ndr_pull_align(ndr, 4));
379                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
380                 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr, NDR_SCALARS, &r->parameter_control));
381                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_low));
382                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_high));
383                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
384                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstation));
385         }
386         if (ndr_flags & NDR_BUFFERS) {
387                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
388                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
389                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
390         }
391         return NDR_ERR_SUCCESS;
392 }
393
394 _PUBLIC_ void ndr_print_netr_IdentityInfo(struct ndr_print *ndr, const char *name, const struct netr_IdentityInfo *r)
395 {
396         ndr_print_struct(ndr, name, "netr_IdentityInfo");
397         ndr->depth++;
398         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
399         ndr_print_netr_LogonParameterControl(ndr, "parameter_control", r->parameter_control);
400         ndr_print_uint32(ndr, "logon_id_low", r->logon_id_low);
401         ndr_print_uint32(ndr, "logon_id_high", r->logon_id_high);
402         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
403         ndr_print_lsa_String(ndr, "workstation", &r->workstation);
404         ndr->depth--;
405 }
406
407 static enum ndr_err_code ndr_push_netr_PasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordInfo *r)
408 {
409         if (ndr_flags & NDR_SCALARS) {
410                 NDR_CHECK(ndr_push_align(ndr, 4));
411                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
412                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
413                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
414         }
415         if (ndr_flags & NDR_BUFFERS) {
416                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
417                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
418                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
419         }
420         return NDR_ERR_SUCCESS;
421 }
422
423 static enum ndr_err_code ndr_pull_netr_PasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordInfo *r)
424 {
425         if (ndr_flags & NDR_SCALARS) {
426                 NDR_CHECK(ndr_pull_align(ndr, 4));
427                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
428                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
429                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
430         }
431         if (ndr_flags & NDR_BUFFERS) {
432                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
433                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
434                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
435         }
436         return NDR_ERR_SUCCESS;
437 }
438
439 _PUBLIC_ void ndr_print_netr_PasswordInfo(struct ndr_print *ndr, const char *name, const struct netr_PasswordInfo *r)
440 {
441         ndr_print_struct(ndr, name, "netr_PasswordInfo");
442         ndr->depth++;
443         ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
444         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
445         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
446         ndr->depth--;
447 }
448
449 static enum ndr_err_code ndr_push_netr_ChallengeResponse(struct ndr_push *ndr, int ndr_flags, const struct netr_ChallengeResponse *r)
450 {
451         {
452                 uint32_t _flags_save_STRUCT = ndr->flags;
453                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
454                 if (ndr_flags & NDR_SCALARS) {
455                         NDR_CHECK(ndr_push_align(ndr, 4));
456                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
457                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
458                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
459                 }
460                 if (ndr_flags & NDR_BUFFERS) {
461                         if (r->data) {
462                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
463                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
464                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
465                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
466                         }
467                 }
468                 ndr->flags = _flags_save_STRUCT;
469         }
470         return NDR_ERR_SUCCESS;
471 }
472
473 static enum ndr_err_code ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, int ndr_flags, struct netr_ChallengeResponse *r)
474 {
475         uint32_t _ptr_data;
476         TALLOC_CTX *_mem_save_data_0;
477         {
478                 uint32_t _flags_save_STRUCT = ndr->flags;
479                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
480                 if (ndr_flags & NDR_SCALARS) {
481                         NDR_CHECK(ndr_pull_align(ndr, 4));
482                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
483                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
484                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
485                         if (_ptr_data) {
486                                 NDR_PULL_ALLOC(ndr, r->data);
487                         } else {
488                                 r->data = NULL;
489                         }
490                 }
491                 if (ndr_flags & NDR_BUFFERS) {
492                         if (r->data) {
493                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
494                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
495                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
496                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
497                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
498                                         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));
499                                 }
500                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
501                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
502                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
503                         }
504                         if (r->data) {
505                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
506                         }
507                         if (r->data) {
508                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length));
509                         }
510                 }
511                 ndr->flags = _flags_save_STRUCT;
512         }
513         return NDR_ERR_SUCCESS;
514 }
515
516 _PUBLIC_ void ndr_print_netr_ChallengeResponse(struct ndr_print *ndr, const char *name, const struct netr_ChallengeResponse *r)
517 {
518         ndr_print_struct(ndr, name, "netr_ChallengeResponse");
519         {
520                 uint32_t _flags_save_STRUCT = ndr->flags;
521                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
522                 ndr->depth++;
523                 ndr_print_uint16(ndr, "length", r->length);
524                 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
525                 ndr_print_ptr(ndr, "data", r->data);
526                 ndr->depth++;
527                 if (r->data) {
528                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
529                 }
530                 ndr->depth--;
531                 ndr->depth--;
532                 ndr->flags = _flags_save_STRUCT;
533         }
534 }
535
536 static enum ndr_err_code ndr_push_netr_NetworkInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_NetworkInfo *r)
537 {
538         {
539                 uint32_t _flags_save_STRUCT = ndr->flags;
540                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
541                 if (ndr_flags & NDR_SCALARS) {
542                         NDR_CHECK(ndr_push_align(ndr, 4));
543                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
544                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
545                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
546                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
547                 }
548                 if (ndr_flags & NDR_BUFFERS) {
549                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
550                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
551                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
552                 }
553                 ndr->flags = _flags_save_STRUCT;
554         }
555         return NDR_ERR_SUCCESS;
556 }
557
558 static enum ndr_err_code ndr_pull_netr_NetworkInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_NetworkInfo *r)
559 {
560         {
561                 uint32_t _flags_save_STRUCT = ndr->flags;
562                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
563                 if (ndr_flags & NDR_SCALARS) {
564                         NDR_CHECK(ndr_pull_align(ndr, 4));
565                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
566                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
567                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
568                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
569                 }
570                 if (ndr_flags & NDR_BUFFERS) {
571                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
572                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
573                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
574                 }
575                 ndr->flags = _flags_save_STRUCT;
576         }
577         return NDR_ERR_SUCCESS;
578 }
579
580 _PUBLIC_ void ndr_print_netr_NetworkInfo(struct ndr_print *ndr, const char *name, const struct netr_NetworkInfo *r)
581 {
582         ndr_print_struct(ndr, name, "netr_NetworkInfo");
583         {
584                 uint32_t _flags_save_STRUCT = ndr->flags;
585                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
586                 ndr->depth++;
587                 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
588                 ndr_print_array_uint8(ndr, "challenge", r->challenge, 8);
589                 ndr_print_netr_ChallengeResponse(ndr, "nt", &r->nt);
590                 ndr_print_netr_ChallengeResponse(ndr, "lm", &r->lm);
591                 ndr->depth--;
592                 ndr->flags = _flags_save_STRUCT;
593         }
594 }
595
596 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonLevel(struct ndr_push *ndr, int ndr_flags, const union netr_LogonLevel *r)
597 {
598         if (ndr_flags & NDR_SCALARS) {
599                 int level = ndr_push_get_switch_value(ndr, r);
600                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
601                 switch (level) {
602                         case 1: {
603                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
604                         break; }
605
606                         case 2: {
607                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
608                         break; }
609
610                         case 3: {
611                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
612                         break; }
613
614                         case 5: {
615                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
616                         break; }
617
618                         case 6: {
619                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
620                         break; }
621
622                         default:
623                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
624                 }
625         }
626         if (ndr_flags & NDR_BUFFERS) {
627                 int level = ndr_push_get_switch_value(ndr, r);
628                 switch (level) {
629                         case 1:
630                                 if (r->password) {
631                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
632                                 }
633                         break;
634
635                         case 2:
636                                 if (r->network) {
637                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
638                                 }
639                         break;
640
641                         case 3:
642                                 if (r->password) {
643                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
644                                 }
645                         break;
646
647                         case 5:
648                                 if (r->password) {
649                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
650                                 }
651                         break;
652
653                         case 6:
654                                 if (r->network) {
655                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
656                                 }
657                         break;
658
659                         default:
660                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
661                 }
662         }
663         return NDR_ERR_SUCCESS;
664 }
665
666 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonLevel(struct ndr_pull *ndr, int ndr_flags, union netr_LogonLevel *r)
667 {
668         int level;
669         uint16_t _level;
670         TALLOC_CTX *_mem_save_password_0;
671         TALLOC_CTX *_mem_save_network_0;
672         level = ndr_pull_get_switch_value(ndr, r);
673         if (ndr_flags & NDR_SCALARS) {
674                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
675                 if (_level != level) {
676                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
677                 }
678                 switch (level) {
679                         case 1: {
680                                 uint32_t _ptr_password;
681                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
682                                 if (_ptr_password) {
683                                         NDR_PULL_ALLOC(ndr, r->password);
684                                 } else {
685                                         r->password = NULL;
686                                 }
687                         break; }
688
689                         case 2: {
690                                 uint32_t _ptr_network;
691                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
692                                 if (_ptr_network) {
693                                         NDR_PULL_ALLOC(ndr, r->network);
694                                 } else {
695                                         r->network = NULL;
696                                 }
697                         break; }
698
699                         case 3: {
700                                 uint32_t _ptr_password;
701                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
702                                 if (_ptr_password) {
703                                         NDR_PULL_ALLOC(ndr, r->password);
704                                 } else {
705                                         r->password = NULL;
706                                 }
707                         break; }
708
709                         case 5: {
710                                 uint32_t _ptr_password;
711                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
712                                 if (_ptr_password) {
713                                         NDR_PULL_ALLOC(ndr, r->password);
714                                 } else {
715                                         r->password = NULL;
716                                 }
717                         break; }
718
719                         case 6: {
720                                 uint32_t _ptr_network;
721                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
722                                 if (_ptr_network) {
723                                         NDR_PULL_ALLOC(ndr, r->network);
724                                 } else {
725                                         r->network = NULL;
726                                 }
727                         break; }
728
729                         default:
730                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
731                 }
732         }
733         if (ndr_flags & NDR_BUFFERS) {
734                 switch (level) {
735                         case 1:
736                                 if (r->password) {
737                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
738                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
739                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
740                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
741                                 }
742                         break;
743
744                         case 2:
745                                 if (r->network) {
746                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
747                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
748                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
749                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
750                                 }
751                         break;
752
753                         case 3:
754                                 if (r->password) {
755                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
756                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
757                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
758                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
759                                 }
760                         break;
761
762                         case 5:
763                                 if (r->password) {
764                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
765                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
766                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
767                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
768                                 }
769                         break;
770
771                         case 6:
772                                 if (r->network) {
773                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
774                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
775                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
776                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
777                                 }
778                         break;
779
780                         default:
781                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
782                 }
783         }
784         return NDR_ERR_SUCCESS;
785 }
786
787 _PUBLIC_ void ndr_print_netr_LogonLevel(struct ndr_print *ndr, const char *name, const union netr_LogonLevel *r)
788 {
789         int level;
790         level = ndr_print_get_switch_value(ndr, r);
791         ndr_print_union(ndr, name, level, "netr_LogonLevel");
792         switch (level) {
793                 case 1:
794                         ndr_print_ptr(ndr, "password", r->password);
795                         ndr->depth++;
796                         if (r->password) {
797                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
798                         }
799                         ndr->depth--;
800                 break;
801
802                 case 2:
803                         ndr_print_ptr(ndr, "network", r->network);
804                         ndr->depth++;
805                         if (r->network) {
806                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
807                         }
808                         ndr->depth--;
809                 break;
810
811                 case 3:
812                         ndr_print_ptr(ndr, "password", r->password);
813                         ndr->depth++;
814                         if (r->password) {
815                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
816                         }
817                         ndr->depth--;
818                 break;
819
820                 case 5:
821                         ndr_print_ptr(ndr, "password", r->password);
822                         ndr->depth++;
823                         if (r->password) {
824                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
825                         }
826                         ndr->depth--;
827                 break;
828
829                 case 6:
830                         ndr_print_ptr(ndr, "network", r->network);
831                         ndr->depth++;
832                         if (r->network) {
833                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
834                         }
835                         ndr->depth--;
836                 break;
837
838                 default:
839                         ndr_print_bad_level(ndr, name, level);
840         }
841 }
842
843 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_UserSessionKey *r)
844 {
845         {
846                 uint32_t _flags_save_STRUCT = ndr->flags;
847                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
848                 if (ndr_flags & NDR_SCALARS) {
849                         NDR_CHECK(ndr_push_align(ndr, 1));
850                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 16));
851                 }
852                 if (ndr_flags & NDR_BUFFERS) {
853                 }
854                 ndr->flags = _flags_save_STRUCT;
855         }
856         return NDR_ERR_SUCCESS;
857 }
858
859 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r)
860 {
861         {
862                 uint32_t _flags_save_STRUCT = ndr->flags;
863                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
864                 if (ndr_flags & NDR_SCALARS) {
865                         NDR_CHECK(ndr_pull_align(ndr, 1));
866                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16));
867                 }
868                 if (ndr_flags & NDR_BUFFERS) {
869                 }
870                 ndr->flags = _flags_save_STRUCT;
871         }
872         return NDR_ERR_SUCCESS;
873 }
874
875 _PUBLIC_ void ndr_print_netr_UserSessionKey(struct ndr_print *ndr, const char *name, const struct netr_UserSessionKey *r)
876 {
877         ndr_print_struct(ndr, name, "netr_UserSessionKey");
878         {
879                 uint32_t _flags_save_STRUCT = ndr->flags;
880                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
881                 ndr->depth++;
882                 ndr_print_array_uint8(ndr, "key", r->key, 16);
883                 ndr->depth--;
884                 ndr->flags = _flags_save_STRUCT;
885         }
886 }
887
888 _PUBLIC_ enum ndr_err_code ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_LMSessionKey *r)
889 {
890         {
891                 uint32_t _flags_save_STRUCT = ndr->flags;
892                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
893                 if (ndr_flags & NDR_SCALARS) {
894                         NDR_CHECK(ndr_push_align(ndr, 1));
895                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 8));
896                 }
897                 if (ndr_flags & NDR_BUFFERS) {
898                 }
899                 ndr->flags = _flags_save_STRUCT;
900         }
901         return NDR_ERR_SUCCESS;
902 }
903
904 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r)
905 {
906         {
907                 uint32_t _flags_save_STRUCT = ndr->flags;
908                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
909                 if (ndr_flags & NDR_SCALARS) {
910                         NDR_CHECK(ndr_pull_align(ndr, 1));
911                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8));
912                 }
913                 if (ndr_flags & NDR_BUFFERS) {
914                 }
915                 ndr->flags = _flags_save_STRUCT;
916         }
917         return NDR_ERR_SUCCESS;
918 }
919
920 _PUBLIC_ void ndr_print_netr_LMSessionKey(struct ndr_print *ndr, const char *name, const struct netr_LMSessionKey *r)
921 {
922         ndr_print_struct(ndr, name, "netr_LMSessionKey");
923         {
924                 uint32_t _flags_save_STRUCT = ndr->flags;
925                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
926                 ndr->depth++;
927                 ndr_print_array_uint8(ndr, "key", r->key, 8);
928                 ndr->depth--;
929                 ndr->flags = _flags_save_STRUCT;
930         }
931 }
932
933 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
934 {
935         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
936         return NDR_ERR_SUCCESS;
937 }
938
939 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
940 {
941         uint32_t v;
942         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
943         *r = v;
944         return NDR_ERR_SUCCESS;
945 }
946
947 _PUBLIC_ void ndr_print_netr_UserFlags(struct ndr_print *ndr, const char *name, uint32_t r)
948 {
949         ndr_print_uint32(ndr, name, r);
950         ndr->depth++;
951         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST, r);
952         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION, r);
953         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT, r);
954         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD, r);
955         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS, r);
956         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY, r);
957         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT, r);
958         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED, r);
959         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS, r);
960         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED, r);
961         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON, r);
962         ndr->depth--;
963 }
964
965 static enum ndr_err_code ndr_push_netr_SamBaseInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_SamBaseInfo *r)
966 {
967         uint32_t cntr_unknown_0;
968         if (ndr_flags & NDR_SCALARS) {
969                 NDR_CHECK(ndr_push_align(ndr, 4));
970                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
971                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
972                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
973                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
974                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
975                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
976                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
977                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
978                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
979                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
980                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
981                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
982                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
983                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
984                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
985                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
986                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
987                 NDR_CHECK(ndr_push_netr_UserFlags(ndr, NDR_SCALARS, r->user_flags));
988                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
989                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
990                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
991                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
992                 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
993                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
994                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
995                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
996                 }
997         }
998         if (ndr_flags & NDR_BUFFERS) {
999                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1000                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1001                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1002                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1003                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1004                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1005                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1006                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1007                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1008                 if (r->domain_sid) {
1009                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1010                 }
1011         }
1012         return NDR_ERR_SUCCESS;
1013 }
1014
1015 static enum ndr_err_code ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_SamBaseInfo *r)
1016 {
1017         uint32_t _ptr_domain_sid;
1018         TALLOC_CTX *_mem_save_domain_sid_0;
1019         uint32_t cntr_unknown_0;
1020         if (ndr_flags & NDR_SCALARS) {
1021                 NDR_CHECK(ndr_pull_align(ndr, 4));
1022                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
1023                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
1024                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
1025                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
1026                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
1027                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
1028                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1029                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1030                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
1031                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
1032                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
1033                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
1034                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
1035                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
1036                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
1037                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
1038                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1039                 NDR_CHECK(ndr_pull_netr_UserFlags(ndr, NDR_SCALARS, &r->user_flags));
1040                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
1041                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
1042                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
1043                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
1044                 if (_ptr_domain_sid) {
1045                         NDR_PULL_ALLOC(ndr, r->domain_sid);
1046                 } else {
1047                         r->domain_sid = NULL;
1048                 }
1049                 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
1050                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
1051                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1052                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
1053                 }
1054         }
1055         if (ndr_flags & NDR_BUFFERS) {
1056                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1057                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1058                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1059                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1060                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1061                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1062                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1063                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1064                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1065                 if (r->domain_sid) {
1066                         _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1067                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1068                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1069                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1070                 }
1071         }
1072         return NDR_ERR_SUCCESS;
1073 }
1074
1075 _PUBLIC_ void ndr_print_netr_SamBaseInfo(struct ndr_print *ndr, const char *name, const struct netr_SamBaseInfo *r)
1076 {
1077         uint32_t cntr_unknown_0;
1078         ndr_print_struct(ndr, name, "netr_SamBaseInfo");
1079         ndr->depth++;
1080         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
1081         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
1082         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
1083         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
1084         ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
1085         ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
1086         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
1087         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
1088         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
1089         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
1090         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
1091         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
1092         ndr_print_uint16(ndr, "logon_count", r->logon_count);
1093         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
1094         ndr_print_uint32(ndr, "rid", r->rid);
1095         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
1096         ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
1097         ndr_print_netr_UserFlags(ndr, "user_flags", r->user_flags);
1098         ndr_print_netr_UserSessionKey(ndr, "key", &r->key);
1099         ndr_print_lsa_StringLarge(ndr, "logon_server", &r->logon_server);
1100         ndr_print_lsa_StringLarge(ndr, "domain", &r->domain);
1101         ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
1102         ndr->depth++;
1103         if (r->domain_sid) {
1104                 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
1105         }
1106         ndr->depth--;
1107         ndr_print_netr_LMSessionKey(ndr, "LMSessKey", &r->LMSessKey);
1108         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
1109         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 7);
1110         ndr->depth++;
1111         for (cntr_unknown_0=0;cntr_unknown_0<7;cntr_unknown_0++) {
1112                 char *idx_0=NULL;
1113                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
1114                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
1115                         free(idx_0);
1116                 }
1117         }
1118         ndr->depth--;
1119         ndr->depth--;
1120 }
1121
1122 static enum ndr_err_code ndr_push_netr_SamInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo2 *r)
1123 {
1124         if (ndr_flags & NDR_SCALARS) {
1125                 NDR_CHECK(ndr_push_align(ndr, 4));
1126                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1127         }
1128         if (ndr_flags & NDR_BUFFERS) {
1129                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1130         }
1131         return NDR_ERR_SUCCESS;
1132 }
1133
1134 static enum ndr_err_code ndr_pull_netr_SamInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo2 *r)
1135 {
1136         if (ndr_flags & NDR_SCALARS) {
1137                 NDR_CHECK(ndr_pull_align(ndr, 4));
1138                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1139         }
1140         if (ndr_flags & NDR_BUFFERS) {
1141                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1142         }
1143         return NDR_ERR_SUCCESS;
1144 }
1145
1146 _PUBLIC_ void ndr_print_netr_SamInfo2(struct ndr_print *ndr, const char *name, const struct netr_SamInfo2 *r)
1147 {
1148         ndr_print_struct(ndr, name, "netr_SamInfo2");
1149         ndr->depth++;
1150         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1151         ndr->depth--;
1152 }
1153
1154 static enum ndr_err_code ndr_push_netr_SidAttr(struct ndr_push *ndr, int ndr_flags, const struct netr_SidAttr *r)
1155 {
1156         if (ndr_flags & NDR_SCALARS) {
1157                 NDR_CHECK(ndr_push_align(ndr, 4));
1158                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
1159                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
1160         }
1161         if (ndr_flags & NDR_BUFFERS) {
1162                 if (r->sid) {
1163                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1164                 }
1165         }
1166         return NDR_ERR_SUCCESS;
1167 }
1168
1169 static enum ndr_err_code ndr_pull_netr_SidAttr(struct ndr_pull *ndr, int ndr_flags, struct netr_SidAttr *r)
1170 {
1171         uint32_t _ptr_sid;
1172         TALLOC_CTX *_mem_save_sid_0;
1173         if (ndr_flags & NDR_SCALARS) {
1174                 NDR_CHECK(ndr_pull_align(ndr, 4));
1175                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
1176                 if (_ptr_sid) {
1177                         NDR_PULL_ALLOC(ndr, r->sid);
1178                 } else {
1179                         r->sid = NULL;
1180                 }
1181                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
1182         }
1183         if (ndr_flags & NDR_BUFFERS) {
1184                 if (r->sid) {
1185                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1186                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
1187                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1188                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
1189                 }
1190         }
1191         return NDR_ERR_SUCCESS;
1192 }
1193
1194 _PUBLIC_ void ndr_print_netr_SidAttr(struct ndr_print *ndr, const char *name, const struct netr_SidAttr *r)
1195 {
1196         ndr_print_struct(ndr, name, "netr_SidAttr");
1197         ndr->depth++;
1198         ndr_print_ptr(ndr, "sid", r->sid);
1199         ndr->depth++;
1200         if (r->sid) {
1201                 ndr_print_dom_sid2(ndr, "sid", r->sid);
1202         }
1203         ndr->depth--;
1204         ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
1205         ndr->depth--;
1206 }
1207
1208 _PUBLIC_ enum ndr_err_code ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo3 *r)
1209 {
1210         uint32_t cntr_sids_1;
1211         if (ndr_flags & NDR_SCALARS) {
1212                 NDR_CHECK(ndr_push_align(ndr, 4));
1213                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1214                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1215                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1216         }
1217         if (ndr_flags & NDR_BUFFERS) {
1218                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1219                 if (r->sids) {
1220                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1221                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1222                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1223                         }
1224                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1225                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1226                         }
1227                 }
1228         }
1229         return NDR_ERR_SUCCESS;
1230 }
1231
1232 _PUBLIC_ enum ndr_err_code ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r)
1233 {
1234         uint32_t _ptr_sids;
1235         uint32_t cntr_sids_1;
1236         TALLOC_CTX *_mem_save_sids_0;
1237         TALLOC_CTX *_mem_save_sids_1;
1238         if (ndr_flags & NDR_SCALARS) {
1239                 NDR_CHECK(ndr_pull_align(ndr, 4));
1240                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1241                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1242                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1243                 if (_ptr_sids) {
1244                         NDR_PULL_ALLOC(ndr, r->sids);
1245                 } else {
1246                         r->sids = NULL;
1247                 }
1248         }
1249         if (ndr_flags & NDR_BUFFERS) {
1250                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1251                 if (r->sids) {
1252                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1253                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1254                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1255                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1256                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1257                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1258                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1259                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1260                         }
1261                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1262                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1263                         }
1264                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1265                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1266                 }
1267                 if (r->sids) {
1268                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1269                 }
1270         }
1271         return NDR_ERR_SUCCESS;
1272 }
1273
1274 _PUBLIC_ void ndr_print_netr_SamInfo3(struct ndr_print *ndr, const char *name, const struct netr_SamInfo3 *r)
1275 {
1276         uint32_t cntr_sids_1;
1277         ndr_print_struct(ndr, name, "netr_SamInfo3");
1278         ndr->depth++;
1279         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1280         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1281         ndr_print_ptr(ndr, "sids", r->sids);
1282         ndr->depth++;
1283         if (r->sids) {
1284                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", r->sidcount);
1285                 ndr->depth++;
1286                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1287                         char *idx_1=NULL;
1288                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1289                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1290                                 free(idx_1);
1291                         }
1292                 }
1293                 ndr->depth--;
1294         }
1295         ndr->depth--;
1296         ndr->depth--;
1297 }
1298
1299 static enum ndr_err_code ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo6 *r)
1300 {
1301         uint32_t cntr_sids_1;
1302         uint32_t cntr_unknown4_0;
1303         if (ndr_flags & NDR_SCALARS) {
1304                 NDR_CHECK(ndr_push_align(ndr, 4));
1305                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1306                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1307                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1308                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
1309                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principle));
1310                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1311                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4[cntr_unknown4_0]));
1312                 }
1313         }
1314         if (ndr_flags & NDR_BUFFERS) {
1315                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1316                 if (r->sids) {
1317                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1318                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1319                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1320                         }
1321                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1322                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1323                         }
1324                 }
1325                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1326                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1327         }
1328         return NDR_ERR_SUCCESS;
1329 }
1330
1331 static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r)
1332 {
1333         uint32_t _ptr_sids;
1334         uint32_t cntr_sids_1;
1335         TALLOC_CTX *_mem_save_sids_0;
1336         TALLOC_CTX *_mem_save_sids_1;
1337         uint32_t cntr_unknown4_0;
1338         if (ndr_flags & NDR_SCALARS) {
1339                 NDR_CHECK(ndr_pull_align(ndr, 4));
1340                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1341                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1342                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1343                 if (_ptr_sids) {
1344                         NDR_PULL_ALLOC(ndr, r->sids);
1345                 } else {
1346                         r->sids = NULL;
1347                 }
1348                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
1349                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle));
1350                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1351                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0]));
1352                 }
1353         }
1354         if (ndr_flags & NDR_BUFFERS) {
1355                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1356                 if (r->sids) {
1357                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1358                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1359                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1360                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1361                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1362                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1363                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1364                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1365                         }
1366                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1367                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1368                         }
1369                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1370                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1371                 }
1372                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1373                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1374                 if (r->sids) {
1375                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1376                 }
1377         }
1378         return NDR_ERR_SUCCESS;
1379 }
1380
1381 _PUBLIC_ void ndr_print_netr_SamInfo6(struct ndr_print *ndr, const char *name, const struct netr_SamInfo6 *r)
1382 {
1383         uint32_t cntr_sids_1;
1384         uint32_t cntr_unknown4_0;
1385         ndr_print_struct(ndr, name, "netr_SamInfo6");
1386         ndr->depth++;
1387         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1388         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1389         ndr_print_ptr(ndr, "sids", r->sids);
1390         ndr->depth++;
1391         if (r->sids) {
1392                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", r->sidcount);
1393                 ndr->depth++;
1394                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1395                         char *idx_1=NULL;
1396                         if (asprintf(&idx_1, "[%d]", cntr_sids_1) != -1) {
1397                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1398                                 free(idx_1);
1399                         }
1400                 }
1401                 ndr->depth--;
1402         }
1403         ndr->depth--;
1404         ndr_print_lsa_String(ndr, "forest", &r->forest);
1405         ndr_print_lsa_String(ndr, "principle", &r->principle);
1406         ndr->print(ndr, "%s: ARRAY(%d)", "unknown4", 20);
1407         ndr->depth++;
1408         for (cntr_unknown4_0=0;cntr_unknown4_0<20;cntr_unknown4_0++) {
1409                 char *idx_0=NULL;
1410                 if (asprintf(&idx_0, "[%d]", cntr_unknown4_0) != -1) {
1411                         ndr_print_uint32(ndr, "unknown4", r->unknown4[cntr_unknown4_0]);
1412                         free(idx_0);
1413                 }
1414         }
1415         ndr->depth--;
1416         ndr->depth--;
1417 }
1418
1419 static enum ndr_err_code ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PacInfo *r)
1420 {
1421         uint32_t cntr_expansionroom_0;
1422         if (ndr_flags & NDR_SCALARS) {
1423                 NDR_CHECK(ndr_push_align(ndr, 4));
1424                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1425                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1426                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1427                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1428                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1429                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1430                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth));
1431                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1432                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1433                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->expansionroom[cntr_expansionroom_0]));
1434                 }
1435                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1436                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1437                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1438                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1439         }
1440         if (ndr_flags & NDR_BUFFERS) {
1441                 if (r->pac) {
1442                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1443                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pac, r->pac_size));
1444                 }
1445                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1446                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1447                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1448                 if (r->auth) {
1449                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1450                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->auth, r->auth_size));
1451                 }
1452                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1453                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1454                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1455                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1456         }
1457         return NDR_ERR_SUCCESS;
1458 }
1459
1460 static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r)
1461 {
1462         uint32_t _ptr_pac;
1463         TALLOC_CTX *_mem_save_pac_0;
1464         uint32_t _ptr_auth;
1465         TALLOC_CTX *_mem_save_auth_0;
1466         uint32_t cntr_expansionroom_0;
1467         if (ndr_flags & NDR_SCALARS) {
1468                 NDR_CHECK(ndr_pull_align(ndr, 4));
1469                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pac_size));
1470                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1471                 if (_ptr_pac) {
1472                         NDR_PULL_ALLOC(ndr, r->pac);
1473                 } else {
1474                         r->pac = NULL;
1475                 }
1476                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1477                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1478                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1479                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_size));
1480                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_auth));
1481                 if (_ptr_auth) {
1482                         NDR_PULL_ALLOC(ndr, r->auth);
1483                 } else {
1484                         r->auth = NULL;
1485                 }
1486                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1487                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1488                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0]));
1489                 }
1490                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1491                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1492                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1493                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1494         }
1495         if (ndr_flags & NDR_BUFFERS) {
1496                 if (r->pac) {
1497                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1498                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1499                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pac));
1500                         NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac));
1501                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac)));
1502                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1503                 }
1504                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1505                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1506                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1507                 if (r->auth) {
1508                         _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr);
1509                         NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0);
1510                         NDR_CHECK(ndr_pull_array_size(ndr, &r->auth));
1511                         NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth));
1512                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth)));
1513                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0);
1514                 }
1515                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1516                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1517                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1518                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1519                 if (r->pac) {
1520                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pac, r->pac_size));
1521                 }
1522                 if (r->auth) {
1523                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->auth, r->auth_size));
1524                 }
1525         }
1526         return NDR_ERR_SUCCESS;
1527 }
1528
1529 _PUBLIC_ void ndr_print_netr_PacInfo(struct ndr_print *ndr, const char *name, const struct netr_PacInfo *r)
1530 {
1531         uint32_t cntr_expansionroom_0;
1532         ndr_print_struct(ndr, name, "netr_PacInfo");
1533         ndr->depth++;
1534         ndr_print_uint32(ndr, "pac_size", r->pac_size);
1535         ndr_print_ptr(ndr, "pac", r->pac);
1536         ndr->depth++;
1537         if (r->pac) {
1538                 ndr_print_array_uint8(ndr, "pac", r->pac, r->pac_size);
1539         }
1540         ndr->depth--;
1541         ndr_print_lsa_String(ndr, "logon_domain", &r->logon_domain);
1542         ndr_print_lsa_String(ndr, "logon_server", &r->logon_server);
1543         ndr_print_lsa_String(ndr, "principal_name", &r->principal_name);
1544         ndr_print_uint32(ndr, "auth_size", r->auth_size);
1545         ndr_print_ptr(ndr, "auth", r->auth);
1546         ndr->depth++;
1547         if (r->auth) {
1548                 ndr_print_array_uint8(ndr, "auth", r->auth, r->auth_size);
1549         }
1550         ndr->depth--;
1551         ndr_print_netr_UserSessionKey(ndr, "user_session_key", &r->user_session_key);
1552         ndr->print(ndr, "%s: ARRAY(%d)", "expansionroom", 10);
1553         ndr->depth++;
1554         for (cntr_expansionroom_0=0;cntr_expansionroom_0<10;cntr_expansionroom_0++) {
1555                 char *idx_0=NULL;
1556                 if (asprintf(&idx_0, "[%d]", cntr_expansionroom_0) != -1) {
1557                         ndr_print_uint32(ndr, "expansionroom", r->expansionroom[cntr_expansionroom_0]);
1558                         free(idx_0);
1559                 }
1560         }
1561         ndr->depth--;
1562         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1563         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1564         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1565         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1566         ndr->depth--;
1567 }
1568
1569 _PUBLIC_ enum ndr_err_code ndr_push_netr_Validation(struct ndr_push *ndr, int ndr_flags, const union netr_Validation *r)
1570 {
1571         if (ndr_flags & NDR_SCALARS) {
1572                 int level = ndr_push_get_switch_value(ndr, r);
1573                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
1574                 switch (level) {
1575                         case 2: {
1576                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam2));
1577                         break; }
1578
1579                         case 3: {
1580                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam3));
1581                         break; }
1582
1583                         case 4: {
1584                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1585                         break; }
1586
1587                         case 5: {
1588                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1589                         break; }
1590
1591                         case 6: {
1592                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam6));
1593                         break; }
1594
1595                         default:
1596                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1597                 }
1598         }
1599         if (ndr_flags & NDR_BUFFERS) {
1600                 int level = ndr_push_get_switch_value(ndr, r);
1601                 switch (level) {
1602                         case 2:
1603                                 if (r->sam2) {
1604                                         NDR_CHECK(ndr_push_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1605                                 }
1606                         break;
1607
1608                         case 3:
1609                                 if (r->sam3) {
1610                                         NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1611                                 }
1612                         break;
1613
1614                         case 4:
1615                                 if (r->pac) {
1616                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1617                                 }
1618                         break;
1619
1620                         case 5:
1621                                 if (r->pac) {
1622                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1623                                 }
1624                         break;
1625
1626                         case 6:
1627                                 if (r->sam6) {
1628                                         NDR_CHECK(ndr_push_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1629                                 }
1630                         break;
1631
1632                         default:
1633                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1634                 }
1635         }
1636         return NDR_ERR_SUCCESS;
1637 }
1638
1639 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int ndr_flags, union netr_Validation *r)
1640 {
1641         int level;
1642         uint16_t _level;
1643         TALLOC_CTX *_mem_save_sam2_0;
1644         TALLOC_CTX *_mem_save_sam3_0;
1645         TALLOC_CTX *_mem_save_pac_0;
1646         TALLOC_CTX *_mem_save_sam6_0;
1647         level = ndr_pull_get_switch_value(ndr, r);
1648         if (ndr_flags & NDR_SCALARS) {
1649                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1650                 if (_level != level) {
1651                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1652                 }
1653                 switch (level) {
1654                         case 2: {
1655                                 uint32_t _ptr_sam2;
1656                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2));
1657                                 if (_ptr_sam2) {
1658                                         NDR_PULL_ALLOC(ndr, r->sam2);
1659                                 } else {
1660                                         r->sam2 = NULL;
1661                                 }
1662                         break; }
1663
1664                         case 3: {
1665                                 uint32_t _ptr_sam3;
1666                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3));
1667                                 if (_ptr_sam3) {
1668                                         NDR_PULL_ALLOC(ndr, r->sam3);
1669                                 } else {
1670                                         r->sam3 = NULL;
1671                                 }
1672                         break; }
1673
1674                         case 4: {
1675                                 uint32_t _ptr_pac;
1676                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1677                                 if (_ptr_pac) {
1678                                         NDR_PULL_ALLOC(ndr, r->pac);
1679                                 } else {
1680                                         r->pac = NULL;
1681                                 }
1682                         break; }
1683
1684                         case 5: {
1685                                 uint32_t _ptr_pac;
1686                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1687                                 if (_ptr_pac) {
1688                                         NDR_PULL_ALLOC(ndr, r->pac);
1689                                 } else {
1690                                         r->pac = NULL;
1691                                 }
1692                         break; }
1693
1694                         case 6: {
1695                                 uint32_t _ptr_sam6;
1696                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6));
1697                                 if (_ptr_sam6) {
1698                                         NDR_PULL_ALLOC(ndr, r->sam6);
1699                                 } else {
1700                                         r->sam6 = NULL;
1701                                 }
1702                         break; }
1703
1704                         default:
1705                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1706                 }
1707         }
1708         if (ndr_flags & NDR_BUFFERS) {
1709                 switch (level) {
1710                         case 2:
1711                                 if (r->sam2) {
1712                                         _mem_save_sam2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1713                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam2, 0);
1714                                         NDR_CHECK(ndr_pull_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1715                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam2_0, 0);
1716                                 }
1717                         break;
1718
1719                         case 3:
1720                                 if (r->sam3) {
1721                                         _mem_save_sam3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1722                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam3, 0);
1723                                         NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1724                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam3_0, 0);
1725                                 }
1726                         break;
1727
1728                         case 4:
1729                                 if (r->pac) {
1730                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1731                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1732                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1733                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1734                                 }
1735                         break;
1736
1737                         case 5:
1738                                 if (r->pac) {
1739                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1740                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1741                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1742                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1743                                 }
1744                         break;
1745
1746                         case 6:
1747                                 if (r->sam6) {
1748                                         _mem_save_sam6_0 = NDR_PULL_GET_MEM_CTX(ndr);
1749                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam6, 0);
1750                                         NDR_CHECK(ndr_pull_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1751                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam6_0, 0);
1752                                 }
1753                         break;
1754
1755                         default:
1756                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1757                 }
1758         }
1759         return NDR_ERR_SUCCESS;
1760 }
1761
1762 _PUBLIC_ void ndr_print_netr_Validation(struct ndr_print *ndr, const char *name, const union netr_Validation *r)
1763 {
1764         int level;
1765         level = ndr_print_get_switch_value(ndr, r);
1766         ndr_print_union(ndr, name, level, "netr_Validation");
1767         switch (level) {
1768                 case 2:
1769                         ndr_print_ptr(ndr, "sam2", r->sam2);
1770                         ndr->depth++;
1771                         if (r->sam2) {
1772                                 ndr_print_netr_SamInfo2(ndr, "sam2", r->sam2);
1773                         }
1774                         ndr->depth--;
1775                 break;
1776
1777                 case 3:
1778                         ndr_print_ptr(ndr, "sam3", r->sam3);
1779                         ndr->depth++;
1780                         if (r->sam3) {
1781                                 ndr_print_netr_SamInfo3(ndr, "sam3", r->sam3);
1782                         }
1783                         ndr->depth--;
1784                 break;
1785
1786                 case 4:
1787                         ndr_print_ptr(ndr, "pac", r->pac);
1788                         ndr->depth++;
1789                         if (r->pac) {
1790                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1791                         }
1792                         ndr->depth--;
1793                 break;
1794
1795                 case 5:
1796                         ndr_print_ptr(ndr, "pac", r->pac);
1797                         ndr->depth++;
1798                         if (r->pac) {
1799                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1800                         }
1801                         ndr->depth--;
1802                 break;
1803
1804                 case 6:
1805                         ndr_print_ptr(ndr, "sam6", r->sam6);
1806                         ndr->depth++;
1807                         if (r->sam6) {
1808                                 ndr_print_netr_SamInfo6(ndr, "sam6", r->sam6);
1809                         }
1810                         ndr->depth--;
1811                 break;
1812
1813                 default:
1814                         ndr_print_bad_level(ndr, name, level);
1815         }
1816 }
1817
1818 _PUBLIC_ enum ndr_err_code ndr_push_netr_Credential(struct ndr_push *ndr, int ndr_flags, const struct netr_Credential *r)
1819 {
1820         {
1821                 uint32_t _flags_save_STRUCT = ndr->flags;
1822                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1823                 if (ndr_flags & NDR_SCALARS) {
1824                         NDR_CHECK(ndr_push_align(ndr, 1));
1825                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1826                 }
1827                 if (ndr_flags & NDR_BUFFERS) {
1828                 }
1829                 ndr->flags = _flags_save_STRUCT;
1830         }
1831         return NDR_ERR_SUCCESS;
1832 }
1833
1834 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r)
1835 {
1836         {
1837                 uint32_t _flags_save_STRUCT = ndr->flags;
1838                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1839                 if (ndr_flags & NDR_SCALARS) {
1840                         NDR_CHECK(ndr_pull_align(ndr, 1));
1841                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1842                 }
1843                 if (ndr_flags & NDR_BUFFERS) {
1844                 }
1845                 ndr->flags = _flags_save_STRUCT;
1846         }
1847         return NDR_ERR_SUCCESS;
1848 }
1849
1850 _PUBLIC_ void ndr_print_netr_Credential(struct ndr_print *ndr, const char *name, const struct netr_Credential *r)
1851 {
1852         ndr_print_struct(ndr, name, "netr_Credential");
1853         {
1854                 uint32_t _flags_save_STRUCT = ndr->flags;
1855                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1856                 ndr->depth++;
1857                 ndr_print_array_uint8(ndr, "data", r->data, 8);
1858                 ndr->depth--;
1859                 ndr->flags = _flags_save_STRUCT;
1860         }
1861 }
1862
1863 _PUBLIC_ enum ndr_err_code ndr_push_netr_Authenticator(struct ndr_push *ndr, int ndr_flags, const struct netr_Authenticator *r)
1864 {
1865         if (ndr_flags & NDR_SCALARS) {
1866                 NDR_CHECK(ndr_push_align(ndr, 4));
1867                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1868                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
1869         }
1870         if (ndr_flags & NDR_BUFFERS) {
1871         }
1872         return NDR_ERR_SUCCESS;
1873 }
1874
1875 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Authenticator(struct ndr_pull *ndr, int ndr_flags, struct netr_Authenticator *r)
1876 {
1877         if (ndr_flags & NDR_SCALARS) {
1878                 NDR_CHECK(ndr_pull_align(ndr, 4));
1879                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1880                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
1881         }
1882         if (ndr_flags & NDR_BUFFERS) {
1883         }
1884         return NDR_ERR_SUCCESS;
1885 }
1886
1887 _PUBLIC_ void ndr_print_netr_Authenticator(struct ndr_print *ndr, const char *name, const struct netr_Authenticator *r)
1888 {
1889         ndr_print_struct(ndr, name, "netr_Authenticator");
1890         ndr->depth++;
1891         ndr_print_netr_Credential(ndr, "cred", &r->cred);
1892         ndr_print_time_t(ndr, "timestamp", r->timestamp);
1893         ndr->depth--;
1894 }
1895
1896 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)
1897 {
1898         if (ndr_flags & NDR_SCALARS) {
1899                 NDR_CHECK(ndr_push_align(ndr, 4));
1900                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
1901                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1902                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1903                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1904                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1905                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
1906                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
1907                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
1908                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
1909         }
1910         if (ndr_flags & NDR_BUFFERS) {
1911                 if (r->account_name) {
1912                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1913                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1914                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1915                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
1916                 }
1917                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1918                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1919                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1920                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1921         }
1922         return NDR_ERR_SUCCESS;
1923 }
1924
1925 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r)
1926 {
1927         uint32_t _ptr_account_name;
1928         TALLOC_CTX *_mem_save_account_name_0;
1929         if (ndr_flags & NDR_SCALARS) {
1930                 NDR_CHECK(ndr_pull_align(ndr, 4));
1931                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
1932                 if (_ptr_account_name) {
1933                         NDR_PULL_ALLOC(ndr, r->account_name);
1934                 } else {
1935                         r->account_name = NULL;
1936                 }
1937                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1938                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1939                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1940                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1941                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
1942                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
1943                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
1944                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
1945         }
1946         if (ndr_flags & NDR_BUFFERS) {
1947                 if (r->account_name) {
1948                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1949                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
1950                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
1951                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
1952                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
1953                                 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));
1954                         }
1955                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
1956                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
1957                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
1958                 }
1959                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1960                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1961                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1962                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1963         }
1964         return NDR_ERR_SUCCESS;
1965 }
1966
1967 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_USER *r)
1968 {
1969         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_USER");
1970         ndr->depth++;
1971         ndr_print_ptr(ndr, "account_name", r->account_name);
1972         ndr->depth++;
1973         if (r->account_name) {
1974                 ndr_print_string(ndr, "account_name", r->account_name);
1975         }
1976         ndr->depth--;
1977         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1978         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1979         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1980         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1981         ndr_print_uint32(ndr, "unknown5", r->unknown5);
1982         ndr_print_uint32(ndr, "unknown6", r->unknown6);
1983         ndr_print_uint32(ndr, "unknown7", r->unknown7);
1984         ndr_print_uint32(ndr, "unknown8", r->unknown8);
1985         ndr->depth--;
1986 }
1987
1988 static enum ndr_err_code ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY16 *r)
1989 {
1990         if (ndr_flags & NDR_SCALARS) {
1991                 NDR_CHECK(ndr_push_align(ndr, 4));
1992                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1993                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1994                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
1995                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd));
1996         }
1997         if (ndr_flags & NDR_BUFFERS) {
1998                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
1999         }
2000         return NDR_ERR_SUCCESS;
2001 }
2002
2003 static enum ndr_err_code ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY16 *r)
2004 {
2005         if (ndr_flags & NDR_SCALARS) {
2006                 NDR_CHECK(ndr_pull_align(ndr, 4));
2007                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
2008                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
2009                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
2010                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2011         }
2012         if (ndr_flags & NDR_BUFFERS) {
2013                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
2014         }
2015         return NDR_ERR_SUCCESS;
2016 }
2017
2018 _PUBLIC_ void ndr_print_netr_USER_KEY16(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY16 *r)
2019 {
2020         ndr_print_struct(ndr, name, "netr_USER_KEY16");
2021         ndr->depth++;
2022         ndr_print_uint16(ndr, "length", r->length);
2023         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
2024         ndr_print_uint32(ndr, "flags", r->flags);
2025         ndr_print_samr_Password(ndr, "pwd", &r->pwd);
2026         ndr->depth--;
2027 }
2028
2029 static enum ndr_err_code ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordHistory *r)
2030 {
2031         if (ndr_flags & NDR_SCALARS) {
2032                 NDR_CHECK(ndr_push_align(ndr, 4));
2033                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2034                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2035                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_flags));
2036                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2037                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2038                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lm_flags));
2039                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2040                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2041         }
2042         if (ndr_flags & NDR_BUFFERS) {
2043         }
2044         return NDR_ERR_SUCCESS;
2045 }
2046
2047 static enum ndr_err_code ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *r)
2048 {
2049         if (ndr_flags & NDR_SCALARS) {
2050                 NDR_CHECK(ndr_pull_align(ndr, 4));
2051                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_length));
2052                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_size));
2053                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_flags));
2054                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length));
2055                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size));
2056                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags));
2057                 NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length);
2058                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2059                 NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length);
2060                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2061         }
2062         if (ndr_flags & NDR_BUFFERS) {
2063         }
2064         return NDR_ERR_SUCCESS;
2065 }
2066
2067 _PUBLIC_ void ndr_print_netr_PasswordHistory(struct ndr_print *ndr, const char *name, const struct netr_PasswordHistory *r)
2068 {
2069         ndr_print_struct(ndr, name, "netr_PasswordHistory");
2070         ndr->depth++;
2071         ndr_print_uint16(ndr, "nt_length", r->nt_length);
2072         ndr_print_uint16(ndr, "nt_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->nt_length:r->nt_size);
2073         ndr_print_uint32(ndr, "nt_flags", r->nt_flags);
2074         ndr_print_uint16(ndr, "lm_length", r->lm_length);
2075         ndr_print_uint16(ndr, "lm_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->lm_length:r->lm_size);
2076         ndr_print_uint32(ndr, "lm_flags", r->lm_flags);
2077         ndr_print_array_uint8(ndr, "nt_history", r->nt_history, r->nt_length);
2078         ndr_print_array_uint8(ndr, "lm_history", r->lm_history, r->lm_length);
2079         ndr->depth--;
2080 }
2081
2082 static enum ndr_err_code ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS2 *r)
2083 {
2084         if (ndr_flags & NDR_SCALARS) {
2085                 NDR_CHECK(ndr_push_align(ndr, 4));
2086                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2087                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2088                 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2089         }
2090         if (ndr_flags & NDR_BUFFERS) {
2091                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
2092                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
2093         }
2094         return NDR_ERR_SUCCESS;
2095 }
2096
2097 static enum ndr_err_code ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS2 *r)
2098 {
2099         if (ndr_flags & NDR_SCALARS) {
2100                 NDR_CHECK(ndr_pull_align(ndr, 4));
2101                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2102                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2103                 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2104         }
2105         if (ndr_flags & NDR_BUFFERS) {
2106                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
2107                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
2108         }
2109         return NDR_ERR_SUCCESS;
2110 }
2111
2112 _PUBLIC_ void ndr_print_netr_USER_KEYS2(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS2 *r)
2113 {
2114         ndr_print_struct(ndr, name, "netr_USER_KEYS2");
2115         ndr->depth++;
2116         ndr_print_netr_USER_KEY16(ndr, "lmpassword", &r->lmpassword);
2117         ndr_print_netr_USER_KEY16(ndr, "ntpassword", &r->ntpassword);
2118         ndr_print_netr_PasswordHistory(ndr, "history", &r->history);
2119         ndr->depth--;
2120 }
2121
2122 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)
2123 {
2124         if (ndr_flags & NDR_SCALARS) {
2125                 NDR_CHECK(ndr_push_align(ndr, 4));
2126                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2127         }
2128         if (ndr_flags & NDR_BUFFERS) {
2129                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
2130         }
2131         return NDR_ERR_SUCCESS;
2132 }
2133
2134 static enum ndr_err_code ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY_UNION *r)
2135 {
2136         if (ndr_flags & NDR_SCALARS) {
2137                 NDR_CHECK(ndr_pull_align(ndr, 4));
2138                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2139         }
2140         if (ndr_flags & NDR_BUFFERS) {
2141                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
2142         }
2143         return NDR_ERR_SUCCESS;
2144 }
2145
2146 _PUBLIC_ void ndr_print_netr_USER_KEY_UNION(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY_UNION *r)
2147 {
2148         ndr_print_struct(ndr, name, "netr_USER_KEY_UNION");
2149         ndr->depth++;
2150         ndr_print_netr_USER_KEYS2(ndr, "keys2", &r->keys2);
2151         ndr->depth--;
2152 }
2153
2154 _PUBLIC_ enum ndr_err_code ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS *r)
2155 {
2156         if (ndr_flags & NDR_SCALARS) {
2157                 NDR_CHECK(ndr_push_align(ndr, 4));
2158                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2159                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2160         }
2161         if (ndr_flags & NDR_BUFFERS) {
2162                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
2163         }
2164         return NDR_ERR_SUCCESS;
2165 }
2166
2167 _PUBLIC_ enum ndr_err_code ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS *r)
2168 {
2169         if (ndr_flags & NDR_SCALARS) {
2170                 NDR_CHECK(ndr_pull_align(ndr, 4));
2171                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2172                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2173         }
2174         if (ndr_flags & NDR_BUFFERS) {
2175                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
2176         }
2177         return NDR_ERR_SUCCESS;
2178 }
2179
2180 _PUBLIC_ void ndr_print_netr_USER_KEYS(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS *r)
2181 {
2182         ndr_print_struct(ndr, name, "netr_USER_KEYS");
2183         ndr->depth++;
2184         ndr_print_uint32(ndr, "version", r->version);
2185         ndr_print_netr_USER_KEY_UNION(ndr, "keys", &r->keys);
2186         ndr->depth--;
2187 }
2188
2189 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)
2190 {
2191         if (ndr_flags & NDR_SCALARS) {
2192                 NDR_CHECK(ndr_push_align(ndr, 4));
2193                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->SensitiveDataFlag));
2194                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2195                 {
2196                         uint32_t _flags_save_uint8 = ndr->flags;
2197                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2198                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->SensitiveData));
2199                         ndr->flags = _flags_save_uint8;
2200                 }
2201         }
2202         if (ndr_flags & NDR_BUFFERS) {
2203                 {
2204                         uint32_t _flags_save_uint8 = ndr->flags;
2205                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2206                         if (r->SensitiveData) {
2207                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2208                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, r->DataLength));
2209                         }
2210                         ndr->flags = _flags_save_uint8;
2211                 }
2212         }
2213         return NDR_ERR_SUCCESS;
2214 }
2215
2216 static enum ndr_err_code ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r)
2217 {
2218         uint32_t _ptr_SensitiveData;
2219         TALLOC_CTX *_mem_save_SensitiveData_0;
2220         if (ndr_flags & NDR_SCALARS) {
2221                 NDR_CHECK(ndr_pull_align(ndr, 4));
2222                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->SensitiveDataFlag));
2223                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataLength));
2224                 {
2225                         uint32_t _flags_save_uint8 = ndr->flags;
2226                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2227                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_SensitiveData));
2228                         if (_ptr_SensitiveData) {
2229                                 NDR_PULL_ALLOC(ndr, r->SensitiveData);
2230                         } else {
2231                                 r->SensitiveData = NULL;
2232                         }
2233                         ndr->flags = _flags_save_uint8;
2234                 }
2235         }
2236         if (ndr_flags & NDR_BUFFERS) {
2237                 {
2238                         uint32_t _flags_save_uint8 = ndr->flags;
2239                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2240                         if (r->SensitiveData) {
2241                                 _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr);
2242                                 NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0);
2243                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData));
2244                                 NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData));
2245                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)));
2246                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0);
2247                         }
2248                         ndr->flags = _flags_save_uint8;
2249                 }
2250                 if (r->SensitiveData) {
2251                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->SensitiveData, r->DataLength));
2252                 }
2253         }
2254         return NDR_ERR_SUCCESS;
2255 }
2256
2257 _PUBLIC_ void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print *ndr, const char *name, const struct netr_USER_PRIVATE_INFO *r)
2258 {
2259         ndr_print_struct(ndr, name, "netr_USER_PRIVATE_INFO");
2260         ndr->depth++;
2261         ndr_print_uint8(ndr, "SensitiveDataFlag", r->SensitiveDataFlag);
2262         ndr_print_uint32(ndr, "DataLength", r->DataLength);
2263         ndr_print_ptr(ndr, "SensitiveData", r->SensitiveData);
2264         ndr->depth++;
2265         if (r->SensitiveData) {
2266                 ndr_print_array_uint8(ndr, "SensitiveData", r->SensitiveData, r->DataLength);
2267         }
2268         ndr->depth--;
2269         ndr->depth--;
2270 }
2271
2272 static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_USER *r)
2273 {
2274         if (ndr_flags & NDR_SCALARS) {
2275                 NDR_CHECK(ndr_push_align(ndr, 4));
2276                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2277                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2278                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2279                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2280                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2281                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2282                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2283                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2284                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2285                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2286                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2287                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2288                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2289                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2290                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2291                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2292                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2293                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2294                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2295                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_present));
2296                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present));
2297                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2298                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2299                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2300                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2301                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2302                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2303                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2304                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2305                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2306                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2307                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2308                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2309                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2310                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2311                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2312                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2313         }
2314         if (ndr_flags & NDR_BUFFERS) {
2315                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2316                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2317                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2318                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2319                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2320                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2321                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2322                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2323                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
2324                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
2325                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2326                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2327                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2328                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2329                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2330                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2331                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2332                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2333         }
2334         return NDR_ERR_SUCCESS;
2335 }
2336
2337 static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_USER *r)
2338 {
2339         if (ndr_flags & NDR_SCALARS) {
2340                 NDR_CHECK(ndr_pull_align(ndr, 4));
2341                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2342                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2343                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2344                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2345                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2346                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2347                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2348                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2349                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2350                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2351                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2352                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2353                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2354                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2355                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2356                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2357                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2358                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2359                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2360                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_present));
2361                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present));
2362                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
2363                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2364                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2365                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
2366                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
2367                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2368                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2369                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2370                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2371                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2372                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2373                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2374                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2375                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2376                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2377                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2378         }
2379         if (ndr_flags & NDR_BUFFERS) {
2380                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2381                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2382                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2383                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2384                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2385                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2386                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2387                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2388                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
2389                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
2390                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2391                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2392                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2393                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2394                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2395                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2396                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2397                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2398         }
2399         return NDR_ERR_SUCCESS;
2400 }
2401
2402 _PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_USER *r)
2403 {
2404         ndr_print_struct(ndr, name, "netr_DELTA_USER");
2405         ndr->depth++;
2406         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2407         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2408         ndr_print_uint32(ndr, "rid", r->rid);
2409         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2410         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2411         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2412         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2413         ndr_print_lsa_String(ndr, "description", &r->description);
2414         ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2415         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2416         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2417         ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2418         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2419         ndr_print_uint16(ndr, "logon_count", r->logon_count);
2420         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2421         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2422         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2423         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
2424         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
2425         ndr_print_uint8(ndr, "nt_password_present", r->nt_password_present);
2426         ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present);
2427         ndr_print_uint8(ndr, "password_expired", r->password_expired);
2428         ndr_print_lsa_String(ndr, "comment", &r->comment);
2429         ndr_print_lsa_String(ndr, "parameters", &r->parameters);
2430         ndr_print_uint16(ndr, "country_code", r->country_code);
2431         ndr_print_uint16(ndr, "code_page", r->code_page);
2432         ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info);
2433         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2434         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2435         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2436         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2437         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2438         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2439         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2440         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2441         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2442         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2443         ndr->depth--;
2444 }
2445
2446 static enum ndr_err_code ndr_push_netr_DELTA_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DOMAIN *r)
2447 {
2448         if (ndr_flags & NDR_SCALARS) {
2449                 NDR_CHECK(ndr_push_align(ndr, 4));
2450                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2451                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2452                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->force_logoff_time));
2453                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
2454                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
2455                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
2456                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
2457                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2458                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
2459                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2460                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2461                 NDR_CHECK(ndr_push_netr_AcctLockStr(ndr, NDR_SCALARS, &r->account_lockout));
2462                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2463                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2464                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2465                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_to_chgpass));
2466                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2467                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2468                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2469         }
2470         if (ndr_flags & NDR_BUFFERS) {
2471                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2472                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2473                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2474                 NDR_CHECK(ndr_push_netr_AcctLockStr(ndr, NDR_BUFFERS, &r->account_lockout));
2475                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2476                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2477                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2478         }
2479         return NDR_ERR_SUCCESS;
2480 }
2481
2482 static enum ndr_err_code ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DOMAIN *r)
2483 {
2484         if (ndr_flags & NDR_SCALARS) {
2485                 NDR_CHECK(ndr_pull_align(ndr, 4));
2486                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2487                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2488                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->force_logoff_time));
2489                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
2490                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
2491                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
2492                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
2493                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
2494                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
2495                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2496                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2497                 NDR_CHECK(ndr_pull_netr_AcctLockStr(ndr, NDR_SCALARS, &r->account_lockout));
2498                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2499                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2500                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2501                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_to_chgpass));
2502                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2503                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2504                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2505         }
2506         if (ndr_flags & NDR_BUFFERS) {
2507                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2508                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2509                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2510                 NDR_CHECK(ndr_pull_netr_AcctLockStr(ndr, NDR_BUFFERS, &r->account_lockout));
2511                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2512                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2513                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2514         }
2515         return NDR_ERR_SUCCESS;
2516 }
2517
2518 _PUBLIC_ void ndr_print_netr_DELTA_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DOMAIN *r)
2519 {
2520         ndr_print_struct(ndr, name, "netr_DELTA_DOMAIN");
2521         ndr->depth++;
2522         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
2523         ndr_print_lsa_String(ndr, "comment", &r->comment);
2524         ndr_print_dlong(ndr, "force_logoff_time", r->force_logoff_time);
2525         ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
2526         ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
2527         ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
2528         ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
2529         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
2530         ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
2531         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2532         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2533         ndr_print_netr_AcctLockStr(ndr, "account_lockout", &r->account_lockout);
2534         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2535         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2536         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2537         ndr_print_uint32(ndr, "logon_to_chgpass", r->logon_to_chgpass);
2538         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2539         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2540         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2541         ndr->depth--;
2542 }
2543
2544 static enum ndr_err_code ndr_push_netr_DELTA_GROUP(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP *r)
2545 {
2546         if (ndr_flags & NDR_SCALARS) {
2547                 NDR_CHECK(ndr_push_align(ndr, 4));
2548                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2549                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2550                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
2551                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2552                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2553                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2554                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2555                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2556                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2557                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2558                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2559                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2560                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2561                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2562         }
2563         if (ndr_flags & NDR_BUFFERS) {
2564                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2565                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2566                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2567                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2568                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2569                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2570                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2571         }
2572         return NDR_ERR_SUCCESS;
2573 }
2574
2575 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP *r)
2576 {
2577         if (ndr_flags & NDR_SCALARS) {
2578                 NDR_CHECK(ndr_pull_align(ndr, 4));
2579                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2580                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2581                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
2582                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2583                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2584                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2585                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2586                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2587                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2588                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2589                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2590                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2591                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2592                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2593         }
2594         if (ndr_flags & NDR_BUFFERS) {
2595                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2596                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2597                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2598                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2599                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2600                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2601                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2602         }
2603         return NDR_ERR_SUCCESS;
2604 }
2605
2606 _PUBLIC_ void ndr_print_netr_DELTA_GROUP(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP *r)
2607 {
2608         ndr_print_struct(ndr, name, "netr_DELTA_GROUP");
2609         ndr->depth++;
2610         ndr_print_lsa_String(ndr, "group_name", &r->group_name);
2611         ndr_print_uint32(ndr, "rid", r->rid);
2612         ndr_print_uint32(ndr, "attributes", r->attributes);
2613         ndr_print_lsa_String(ndr, "description", &r->description);
2614         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2615         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2616         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2617         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2618         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2619         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2620         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2621         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2622         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2623         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2624         ndr->depth--;
2625 }
2626
2627 static enum ndr_err_code ndr_push_netr_DELTA_RENAME(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_RENAME *r)
2628 {
2629         if (ndr_flags & NDR_SCALARS) {
2630                 NDR_CHECK(ndr_push_align(ndr, 4));
2631                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2632                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2633                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2634                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2635                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2636                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2637                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2638                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2639                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2640                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2641         }
2642         if (ndr_flags & NDR_BUFFERS) {
2643                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2644                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2645                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2646                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2647                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2648                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2649         }
2650         return NDR_ERR_SUCCESS;
2651 }
2652
2653 static enum ndr_err_code ndr_pull_netr_DELTA_RENAME(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_RENAME *r)
2654 {
2655         if (ndr_flags & NDR_SCALARS) {
2656                 NDR_CHECK(ndr_pull_align(ndr, 4));
2657                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2658                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2659                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2660                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2661                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2662                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2663                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2664                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2665                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2666                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2667         }
2668         if (ndr_flags & NDR_BUFFERS) {
2669                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2670                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2671                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2672                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2673                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2674                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2675         }
2676         return NDR_ERR_SUCCESS;
2677 }
2678
2679 _PUBLIC_ void ndr_print_netr_DELTA_RENAME(struct ndr_print *ndr, const char *name, const struct netr_DELTA_RENAME *r)
2680 {
2681         ndr_print_struct(ndr, name, "netr_DELTA_RENAME");
2682         ndr->depth++;
2683         ndr_print_lsa_String(ndr, "OldName", &r->OldName);
2684         ndr_print_lsa_String(ndr, "NewName", &r->NewName);
2685         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2686         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2687         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2688         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2689         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2690         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2691         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2692         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2693         ndr->depth--;
2694 }
2695
2696 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)
2697 {
2698         uint32_t cntr_rids_1;
2699         uint32_t cntr_attribs_1;
2700         if (ndr_flags & NDR_SCALARS) {
2701                 NDR_CHECK(ndr_push_align(ndr, 4));
2702                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
2703                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribs));
2704                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2705                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2706                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2707                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2708                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2709         }
2710         if (ndr_flags & NDR_BUFFERS) {
2711                 if (r->rids) {
2712                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2713                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2714                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
2715                         }
2716                 }
2717                 if (r->attribs) {
2718                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2719                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2720                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribs[cntr_attribs_1]));
2721                         }
2722                 }
2723         }
2724         return NDR_ERR_SUCCESS;
2725 }
2726
2727 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r)
2728 {
2729         uint32_t _ptr_rids;
2730         uint32_t cntr_rids_1;
2731         TALLOC_CTX *_mem_save_rids_0;
2732         TALLOC_CTX *_mem_save_rids_1;
2733         uint32_t _ptr_attribs;
2734         uint32_t cntr_attribs_1;
2735         TALLOC_CTX *_mem_save_attribs_0;
2736         TALLOC_CTX *_mem_save_attribs_1;
2737         if (ndr_flags & NDR_SCALARS) {
2738                 NDR_CHECK(ndr_pull_align(ndr, 4));
2739                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
2740                 if (_ptr_rids) {
2741                         NDR_PULL_ALLOC(ndr, r->rids);
2742                 } else {
2743                         r->rids = NULL;
2744                 }
2745                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribs));
2746                 if (_ptr_attribs) {
2747                         NDR_PULL_ALLOC(ndr, r->attribs);
2748                 } else {
2749                         r->attribs = NULL;
2750                 }
2751                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
2752                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2753                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2754                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2755                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2756         }
2757         if (ndr_flags & NDR_BUFFERS) {
2758                 if (r->rids) {
2759                         _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
2760                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2761                         NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
2762                         NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
2763                         _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
2764                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2765                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2766                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
2767                         }
2768                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
2769                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
2770                 }
2771                 if (r->attribs) {
2772                         _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr);
2773                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2774                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs));
2775                         NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs));
2776                         _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr);
2777                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2778                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2779                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1]));
2780                         }
2781                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0);
2782                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_0, 0);
2783                 }
2784                 if (r->rids) {
2785                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
2786                 }
2787                 if (r->attribs) {
2788                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attribs, r->num_rids));
2789                 }
2790         }
2791         return NDR_ERR_SUCCESS;
2792 }
2793
2794 _PUBLIC_ void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP_MEMBER *r)
2795 {
2796         uint32_t cntr_rids_1;
2797         uint32_t cntr_attribs_1;
2798         ndr_print_struct(ndr, name, "netr_DELTA_GROUP_MEMBER");
2799         ndr->depth++;
2800         ndr_print_ptr(ndr, "rids", r->rids);
2801         ndr->depth++;
2802         if (r->rids) {
2803                 ndr->print(ndr, "%s: ARRAY(%d)", "rids", r->num_rids);
2804                 ndr->depth++;
2805                 for (cntr_rids_1=0;cntr_rids_1<r->num_rids;cntr_rids_1++) {
2806                         char *idx_1=NULL;
2807                         if (asprintf(&idx_1, "[%d]", cntr_rids_1) != -1) {
2808                                 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
2809                                 free(idx_1);
2810                         }
2811                 }
2812                 ndr->depth--;
2813         }
2814         ndr->depth--;
2815         ndr_print_ptr(ndr, "attribs", r->attribs);
2816         ndr->depth++;
2817         if (r->attribs) {
2818                 ndr->print(ndr, "%s: ARRAY(%d)", "attribs", r->num_rids);
2819                 ndr->depth++;
2820                 for (cntr_attribs_1=0;cntr_attribs_1<r->num_rids;cntr_attribs_1++) {
2821                         char *idx_1=NULL;
2822                         if (asprintf(&idx_1, "[%d]", cntr_attribs_1) != -1) {
2823                                 ndr_print_uint32(ndr, "attribs", r->attribs[cntr_attribs_1]);
2824                                 free(idx_1);
2825                         }
2826                 }
2827                 ndr->depth--;
2828         }
2829         ndr->depth--;
2830         ndr_print_uint32(ndr, "num_rids", r->num_rids);
2831         ndr_print_uint32(ndr, "unknown1", r->unknown1);
2832         ndr_print_uint32(ndr, "unknown2", r->unknown2);
2833         ndr_print_uint32(ndr, "unknown3", r->unknown3);
2834         ndr_print_uint32(ndr, "unknown4", r->unknown4);
2835         ndr->depth--;
2836 }
2837
2838 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS *r)
2839 {
2840         if (ndr_flags & NDR_SCALARS) {
2841                 NDR_CHECK(ndr_push_align(ndr, 4));
2842                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2843                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2844                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2845                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2846                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2847                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2848                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2849                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2850                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2851                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2852                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2853                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2854         }
2855         if (ndr_flags & NDR_BUFFERS) {
2856                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2857                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2858                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2859                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2860                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2861                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2862         }
2863         return NDR_ERR_SUCCESS;
2864 }
2865
2866 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS *r)
2867 {
2868         if (ndr_flags & NDR_SCALARS) {
2869                 NDR_CHECK(ndr_pull_align(ndr, 4));
2870                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2871                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2872                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2873                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2874                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2875                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2876                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2877                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2878                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2879                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2880                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2881                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2882         }
2883         if (ndr_flags & NDR_BUFFERS) {
2884                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2885                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2886                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2887                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2888                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2889                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2890         }
2891         return NDR_ERR_SUCCESS;
2892 }
2893
2894 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS *r)
2895 {
2896         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS");
2897         ndr->depth++;
2898         ndr_print_lsa_String(ndr, "alias_name", &r->alias_name);
2899         ndr_print_uint32(ndr, "rid", r->rid);
2900         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2901         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2902         ndr_print_lsa_String(ndr, "description", &r->description);
2903         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2904         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2905         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2906         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2907         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2908         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2909         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2910         ndr->depth--;
2911 }
2912
2913 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)
2914 {
2915         if (ndr_flags & NDR_SCALARS) {
2916                 NDR_CHECK(ndr_push_align(ndr, 4));
2917                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2918                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2919                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2920                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2921                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2922         }
2923         if (ndr_flags & NDR_BUFFERS) {
2924                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2925         }
2926         return NDR_ERR_SUCCESS;
2927 }
2928
2929 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS_MEMBER *r)
2930 {
2931         if (ndr_flags & NDR_SCALARS) {
2932                 NDR_CHECK(ndr_pull_align(ndr, 4));
2933                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2934                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2935                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2936                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2937                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2938         }
2939         if (ndr_flags & NDR_BUFFERS) {
2940                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2941         }
2942         return NDR_ERR_SUCCESS;
2943 }
2944
2945 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS_MEMBER *r)
2946 {
2947         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS_MEMBER");
2948         ndr->depth++;
2949         ndr_print_lsa_SidArray(ndr, "sids", &r->sids);
2950         ndr_print_uint32(ndr, "unknown1", r->unknown1);
2951         ndr_print_uint32(ndr, "unknown2", r->unknown2);
2952         ndr_print_uint32(ndr, "unknown3", r->unknown3);
2953         ndr_print_uint32(ndr, "unknown4", r->unknown4);
2954         ndr->depth--;
2955 }
2956
2957 static enum ndr_err_code ndr_push_netr_QUOTA_LIMITS(struct ndr_push *ndr, int ndr_flags, const struct netr_QUOTA_LIMITS *r)
2958 {
2959         if (ndr_flags & NDR_SCALARS) {
2960                 NDR_CHECK(ndr_push_align(ndr, 4));
2961                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagedpoollimit));
2962                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonpagedpoollimit));
2963                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minimumworkingsetsize));
2964                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maximumworkingsetsize));
2965                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagefilelimit));
2966                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timelimit));
2967         }
2968         if (ndr_flags & NDR_BUFFERS) {
2969         }
2970         return NDR_ERR_SUCCESS;
2971 }
2972
2973 static enum ndr_err_code ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull *ndr, int ndr_flags, struct netr_QUOTA_LIMITS *r)
2974 {
2975         if (ndr_flags & NDR_SCALARS) {
2976                 NDR_CHECK(ndr_pull_align(ndr, 4));
2977                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagedpoollimit));
2978                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonpagedpoollimit));
2979                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minimumworkingsetsize));
2980                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maximumworkingsetsize));
2981                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagefilelimit));
2982                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timelimit));
2983         }
2984         if (ndr_flags & NDR_BUFFERS) {
2985         }
2986         return NDR_ERR_SUCCESS;
2987 }
2988
2989 _PUBLIC_ void ndr_print_netr_QUOTA_LIMITS(struct ndr_print *ndr, const char *name, const struct netr_QUOTA_LIMITS *r)
2990 {
2991         ndr_print_struct(ndr, name, "netr_QUOTA_LIMITS");
2992         ndr->depth++;
2993         ndr_print_uint32(ndr, "pagedpoollimit", r->pagedpoollimit);
2994         ndr_print_uint32(ndr, "nonpagedpoollimit", r->nonpagedpoollimit);
2995         ndr_print_uint32(ndr, "minimumworkingsetsize", r->minimumworkingsetsize);
2996         ndr_print_uint32(ndr, "maximumworkingsetsize", r->maximumworkingsetsize);
2997         ndr_print_uint32(ndr, "pagefilelimit", r->pagefilelimit);
2998         ndr_print_NTTIME(ndr, "timelimit", r->timelimit);
2999         ndr->depth--;
3000 }
3001
3002 static enum ndr_err_code ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_POLICY *r)
3003 {
3004         uint32_t cntr_eventauditoptions_1;
3005         if (ndr_flags & NDR_SCALARS) {
3006                 NDR_CHECK(ndr_push_align(ndr, 4));
3007                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlogsize));
3008                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->auditretentionperiod));
3009                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auditingmode));
3010                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount));
3011                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->eventauditoptions));
3012                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3013                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
3014                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3015                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
3016                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time));
3017                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3018                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3019                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3020                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3021                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3022                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3023                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3024                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3025                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3026                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3027         }
3028         if (ndr_flags & NDR_BUFFERS) {
3029                 if (r->eventauditoptions) {
3030                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount + 1));
3031                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3032                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventauditoptions[cntr_eventauditoptions_1]));
3033                         }
3034                 }
3035                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3036                 if (r->sid) {
3037                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3038                 }
3039                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3040                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3041                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3042                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3043                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3044         }
3045         return NDR_ERR_SUCCESS;
3046 }
3047
3048 static enum ndr_err_code ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r)
3049 {
3050         uint32_t _ptr_eventauditoptions;
3051         uint32_t cntr_eventauditoptions_1;
3052         TALLOC_CTX *_mem_save_eventauditoptions_0;
3053         TALLOC_CTX *_mem_save_eventauditoptions_1;
3054         uint32_t _ptr_sid;
3055         TALLOC_CTX *_mem_save_sid_0;
3056         if (ndr_flags & NDR_SCALARS) {
3057                 NDR_CHECK(ndr_pull_align(ndr, 4));
3058                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlogsize));
3059                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->auditretentionperiod));
3060                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auditingmode));
3061                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxauditeventcount));
3062                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eventauditoptions));
3063                 if (_ptr_eventauditoptions) {
3064                         NDR_PULL_ALLOC(ndr, r->eventauditoptions);
3065                 } else {
3066                         r->eventauditoptions = NULL;
3067                 }
3068                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3069                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
3070                 if (_ptr_sid) {
3071                         NDR_PULL_ALLOC(ndr, r->sid);
3072                 } else {
3073                         r->sid = NULL;
3074                 }
3075                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3076                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
3077                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time));
3078                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3079                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3080                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3081                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3082                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3083                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3084                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3085                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3086                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3087                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3088         }
3089         if (ndr_flags & NDR_BUFFERS) {
3090                 if (r->eventauditoptions) {
3091                         _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr);
3092                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3093                         NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions));
3094                         NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions));
3095                         _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr);
3096                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3097                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3098                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1]));
3099                         }
3100                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0);
3101                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_0, 0);
3102                 }
3103                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3104                 if (r->sid) {
3105                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
3106                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
3107                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3108                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
3109                 }
3110                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3111                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3112                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3113                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3114                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3115                 if (r->eventauditoptions) {
3116                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eventauditoptions, r->maxauditeventcount + 1));
3117                 }
3118         }
3119         return NDR_ERR_SUCCESS;
3120 }
3121
3122 _PUBLIC_ void ndr_print_netr_DELTA_POLICY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_POLICY *r)
3123 {
3124         uint32_t cntr_eventauditoptions_1;
3125         ndr_print_struct(ndr, name, "netr_DELTA_POLICY");
3126         ndr->depth++;
3127         ndr_print_uint32(ndr, "maxlogsize", r->maxlogsize);
3128         ndr_print_NTTIME(ndr, "auditretentionperiod", r->auditretentionperiod);
3129         ndr_print_uint8(ndr, "auditingmode", r->auditingmode);
3130         ndr_print_uint32(ndr, "maxauditeventcount", r->maxauditeventcount);
3131         ndr_print_ptr(ndr, "eventauditoptions", r->eventauditoptions);
3132         ndr->depth++;
3133         if (r->eventauditoptions) {
3134                 ndr->print(ndr, "%s: ARRAY(%d)", "eventauditoptions", r->maxauditeventcount + 1);
3135                 ndr->depth++;
3136                 for (cntr_eventauditoptions_1=0;cntr_eventauditoptions_1<r->maxauditeventcount + 1;cntr_eventauditoptions_1++) {
3137                         char *idx_1=NULL;
3138                         if (asprintf(&idx_1, "[%d]", cntr_eventauditoptions_1) != -1) {
3139                                 ndr_print_uint32(ndr, "eventauditoptions", r->eventauditoptions[cntr_eventauditoptions_1]);
3140                                 free(idx_1);
3141                         }
3142                 }
3143                 ndr->depth--;
3144         }
3145         ndr->depth--;
3146         ndr_print_lsa_String(ndr, "primary_domain_name", &r->primary_domain_name);
3147         ndr_print_ptr(ndr, "sid", r->sid);
3148         ndr->depth++;
3149         if (r->sid) {
3150                 ndr_print_dom_sid2(ndr, "sid", r->sid);
3151         }
3152         ndr->depth--;
3153         ndr_print_netr_QUOTA_LIMITS(ndr, "quota_limits", &r->quota_limits);
3154         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
3155         ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
3156         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3157         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3158         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3159         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3160         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3161         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3162         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3163         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3164         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3165         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3166         ndr->depth--;
3167 }
3168
3169 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)
3170 {
3171         uint32_t cntr_controller_names_1;
3172         if (ndr_flags & NDR_SCALARS) {
3173                 NDR_CHECK(ndr_push_align(ndr, 4));
3174                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3175                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3176                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->controller_names));
3177                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3178                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3179                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3180                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3181                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3182                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3183                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_offset));
3184                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3185                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3186                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3187         }
3188         if (ndr_flags & NDR_BUFFERS) {
3189                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3190                 if (r->controller_names) {
3191                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3192                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3193                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3194                         }
3195                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3196                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3197                         }
3198                 }
3199                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3200                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3201                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3202                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3203                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3204         }
3205         return NDR_ERR_SUCCESS;
3206 }
3207
3208 static enum ndr_err_code ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r)
3209 {
3210         uint32_t _ptr_controller_names;
3211         uint32_t cntr_controller_names_1;
3212         TALLOC_CTX *_mem_save_controller_names_0;
3213         TALLOC_CTX *_mem_save_controller_names_1;
3214         if (ndr_flags & NDR_SCALARS) {
3215                 NDR_CHECK(ndr_pull_align(ndr, 4));
3216                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3217                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_controllers));
3218                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_controller_names));
3219                 if (_ptr_controller_names) {
3220                         NDR_PULL_ALLOC(ndr, r->controller_names);
3221                 } else {
3222                         r->controller_names = NULL;
3223                 }
3224                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3225                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3226                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3227                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3228                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3229                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3230                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_offset));
3231                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3232                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3233                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3234         }
3235         if (ndr_flags & NDR_BUFFERS) {
3236                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3237                 if (r->controller_names) {
3238                         _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
3239                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3240                         NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names));
3241                         NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names));
3242                         _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
3243                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3244                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3245                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3246                         }
3247                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3248                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3249                         }
3250                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0);
3251                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_0, 0);
3252                 }
3253                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3254                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3255                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3256                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3257                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3258                 if (r->controller_names) {
3259                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->controller_names, r->num_controllers));
3260                 }
3261         }
3262         return NDR_ERR_SUCCESS;
3263 }
3264
3265 _PUBLIC_ void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3266 {
3267         uint32_t cntr_controller_names_1;
3268         ndr_print_struct(ndr, name, "netr_DELTA_TRUSTED_DOMAIN");
3269         ndr->depth++;
3270         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
3271         ndr_print_uint32(ndr, "num_controllers", r->num_controllers);
3272         ndr_print_ptr(ndr, "controller_names", r->controller_names);
3273         ndr->depth++;
3274         if (r->controller_names) {
3275                 ndr->print(ndr, "%s: ARRAY(%d)", "controller_names", r->num_controllers);
3276                 ndr->depth++;
3277                 for (cntr_controller_names_1=0;cntr_controller_names_1<r->num_controllers;cntr_controller_names_1++) {
3278                         char *idx_1=NULL;
3279                         if (asprintf(&idx_1, "[%d]", cntr_controller_names_1) != -1) {
3280                                 ndr_print_lsa_String(ndr, "controller_names", &r->controller_names[cntr_controller_names_1]);
3281                                 free(idx_1);
3282                         }
3283                 }
3284                 ndr->depth--;
3285         }
3286         ndr->depth--;
3287         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3288         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3289         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3290         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3291         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3292         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3293         ndr_print_uint32(ndr, "posix_offset", r->posix_offset);
3294         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3295         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3296         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3297         ndr->depth--;
3298 }
3299
3300 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)
3301 {
3302         if (ndr_flags & NDR_SCALARS) {
3303                 NDR_CHECK(ndr_push_align(ndr, 2));
3304                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3305         }
3306         if (ndr_flags & NDR_BUFFERS) {
3307         }
3308         return NDR_ERR_SUCCESS;
3309 }
3310
3311 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_TRUST *r)
3312 {
3313         if (ndr_flags & NDR_SCALARS) {
3314                 NDR_CHECK(ndr_pull_align(ndr, 2));
3315                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3316         }
3317         if (ndr_flags & NDR_BUFFERS) {
3318         }
3319         return NDR_ERR_SUCCESS;
3320 }
3321
3322 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_TRUST *r)
3323 {
3324         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_TRUST");
3325         ndr->depth++;
3326         ndr_print_uint16(ndr, "unknown", r->unknown);
3327         ndr->depth--;
3328 }
3329
3330 static enum ndr_err_code ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ACCOUNT *r)
3331 {
3332         uint32_t cntr_privilege_attrib_1;
3333         uint32_t cntr_privilege_name_1;
3334         if (ndr_flags & NDR_SCALARS) {
3335                 NDR_CHECK(ndr_push_align(ndr, 4));
3336                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3337                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_control));
3338                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_attrib));
3339                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_name));
3340                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3341                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->system_flags));
3342                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3343                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3344                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3345                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3346                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3347                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3348                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3349                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3350                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3351                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3352         }
3353         if (ndr_flags & NDR_BUFFERS) {
3354                 if (r->privilege_attrib) {
3355                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3356                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3357                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_attrib[cntr_privilege_attrib_1]));
3358                         }
3359                 }
3360                 if (r->privilege_name) {
3361                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3362                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3363                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3364                         }
3365                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3366                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3367                         }
3368                 }
3369                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3370                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3371                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3372                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3373                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3374         }
3375         return NDR_ERR_SUCCESS;
3376 }
3377
3378 static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r)
3379 {
3380         uint32_t _ptr_privilege_attrib;
3381         uint32_t cntr_privilege_attrib_1;
3382         TALLOC_CTX *_mem_save_privilege_attrib_0;
3383         TALLOC_CTX *_mem_save_privilege_attrib_1;
3384         uint32_t _ptr_privilege_name;
3385         uint32_t cntr_privilege_name_1;
3386         TALLOC_CTX *_mem_save_privilege_name_0;
3387         TALLOC_CTX *_mem_save_privilege_name_1;
3388         if (ndr_flags & NDR_SCALARS) {
3389                 NDR_CHECK(ndr_pull_align(ndr, 4));
3390                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_entries));
3391                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_control));
3392                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_attrib));
3393                 if (_ptr_privilege_attrib) {
3394                         NDR_PULL_ALLOC(ndr, r->privilege_attrib);
3395                 } else {
3396                         r->privilege_attrib = NULL;
3397                 }
3398                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_name));
3399                 if (_ptr_privilege_name) {
3400                         NDR_PULL_ALLOC(ndr, r->privilege_name);
3401                 } else {
3402                         r->privilege_name = NULL;
3403                 }
3404                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3405                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->system_flags));
3406                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3407                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3408                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3409                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3410                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3411                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3412                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3413                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3414                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3415                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3416         }
3417         if (ndr_flags & NDR_BUFFERS) {
3418                 if (r->privilege_attrib) {
3419                         _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
3420                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3421                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib));
3422                         NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib));
3423                         _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr);
3424                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3425                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3426                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1]));
3427                         }
3428                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0);
3429                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_0, 0);
3430                 }
3431                 if (r->privilege_name) {
3432                         _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3433                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3434                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name));
3435                         NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name));
3436                         _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
3437                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3438                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3439                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3440                         }
3441                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3442                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3443                         }
3444                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0);
3445                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_0, 0);
3446                 }
3447                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3448                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3449                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3450                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3451                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3452                 if (r->privilege_attrib) {
3453                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_attrib, r->privilege_entries));
3454                 }
3455                 if (r->privilege_name) {
3456                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_name, r->privilege_entries));
3457                 }
3458         }
3459         return NDR_ERR_SUCCESS;
3460 }
3461
3462 _PUBLIC_ void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ACCOUNT *r)
3463 {
3464         uint32_t cntr_privilege_attrib_1;
3465         uint32_t cntr_privilege_name_1;
3466         ndr_print_struct(ndr, name, "netr_DELTA_ACCOUNT");
3467         ndr->depth++;
3468         ndr_print_uint32(ndr, "privilege_entries", r->privilege_entries);
3469         ndr_print_uint32(ndr, "privilege_control", r->privilege_control);
3470         ndr_print_ptr(ndr, "privilege_attrib", r->privilege_attrib);
3471         ndr->depth++;
3472         if (r->privilege_attrib) {
3473                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_attrib", r->privilege_entries);
3474                 ndr->depth++;
3475                 for (cntr_privilege_attrib_1=0;cntr_privilege_attrib_1<r->privilege_entries;cntr_privilege_attrib_1++) {
3476                         char *idx_1=NULL;
3477                         if (asprintf(&idx_1, "[%d]", cntr_privilege_attrib_1) != -1) {
3478                                 ndr_print_uint32(ndr, "privilege_attrib", r->privilege_attrib[cntr_privilege_attrib_1]);
3479                                 free(idx_1);
3480                         }
3481                 }
3482                 ndr->depth--;
3483         }
3484         ndr->depth--;
3485         ndr_print_ptr(ndr, "privilege_name", r->privilege_name);
3486         ndr->depth++;
3487         if (r->privilege_name) {
3488                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_name", r->privilege_entries);
3489                 ndr->depth++;
3490                 for (cntr_privilege_name_1=0;cntr_privilege_name_1<r->privilege_entries;cntr_privilege_name_1++) {
3491                         char *idx_1=NULL;
3492                         if (asprintf(&idx_1, "[%d]", cntr_privilege_name_1) != -1) {
3493                                 ndr_print_lsa_String(ndr, "privilege_name", &r->privilege_name[cntr_privilege_name_1]);
3494                                 free(idx_1);
3495                         }
3496                 }
3497                 ndr->depth--;
3498         }
3499         ndr->depth--;
3500         ndr_print_netr_QUOTA_LIMITS(ndr, "quotalimits", &r->quotalimits);
3501         ndr_print_uint32(ndr, "system_flags", r->system_flags);
3502         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3503         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3504         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3505         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3506         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3507         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3508         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3509         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3510         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3511         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3512         ndr->depth--;
3513 }
3514
3515 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)
3516 {
3517         if (ndr_flags & NDR_SCALARS) {
3518                 NDR_CHECK(ndr_push_align(ndr, 2));
3519                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3520         }
3521         if (ndr_flags & NDR_BUFFERS) {
3522         }
3523         return NDR_ERR_SUCCESS;
3524 }
3525
3526 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_ACCOUNT *r)
3527 {
3528         if (ndr_flags & NDR_SCALARS) {
3529                 NDR_CHECK(ndr_pull_align(ndr, 2));
3530                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3531         }
3532         if (ndr_flags & NDR_BUFFERS) {
3533         }
3534         return NDR_ERR_SUCCESS;
3535 }
3536
3537 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_ACCOUNT *r)
3538 {
3539         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_ACCOUNT");
3540         ndr->depth++;
3541         ndr_print_uint16(ndr, "unknown", r->unknown);
3542         ndr->depth--;
3543 }
3544
3545 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)
3546 {
3547         if (ndr_flags & NDR_SCALARS) {
3548                 NDR_CHECK(ndr_push_align(ndr, 2));
3549                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3550         }
3551         if (ndr_flags & NDR_BUFFERS) {
3552         }
3553         return NDR_ERR_SUCCESS;
3554 }
3555
3556 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_SECRET *r)
3557 {
3558         if (ndr_flags & NDR_SCALARS) {
3559                 NDR_CHECK(ndr_pull_align(ndr, 2));
3560                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3561         }
3562         if (ndr_flags & NDR_BUFFERS) {
3563         }
3564         return NDR_ERR_SUCCESS;
3565 }
3566
3567 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_SECRET *r)
3568 {
3569         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_SECRET");
3570         ndr->depth++;
3571         ndr_print_uint16(ndr, "unknown", r->unknown);
3572         ndr->depth--;
3573 }
3574
3575 static enum ndr_err_code ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int ndr_flags, const struct netr_CIPHER_VALUE *r)
3576 {
3577         if (ndr_flags & NDR_SCALARS) {
3578                 NDR_CHECK(ndr_push_align(ndr, 4));
3579                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3580                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3581                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cipher_data));
3582         }
3583         if (ndr_flags & NDR_BUFFERS) {
3584                 if (r->cipher_data) {
3585                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3586                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3587                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3588                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->cipher_data, r->len));
3589                 }
3590         }
3591         return NDR_ERR_SUCCESS;
3592 }
3593
3594 static enum ndr_err_code ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r)
3595 {
3596         uint32_t _ptr_cipher_data;
3597         TALLOC_CTX *_mem_save_cipher_data_0;
3598         if (ndr_flags & NDR_SCALARS) {
3599                 NDR_CHECK(ndr_pull_align(ndr, 4));
3600                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
3601                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlen));
3602                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cipher_data));
3603                 if (_ptr_cipher_data) {
3604                         NDR_PULL_ALLOC(ndr, r->cipher_data);
3605                 } else {
3606                         r->cipher_data = NULL;
3607                 }
3608         }
3609         if (ndr_flags & NDR_BUFFERS) {
3610                 if (r->cipher_data) {
3611                         _mem_save_cipher_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
3612                         NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0);
3613                         NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data));
3614                         NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data));
3615                         if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) {
3616                                 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));
3617                         }
3618                         NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data));
3619                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data)));
3620                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0);
3621                 }
3622                 if (r->cipher_data) {
3623                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cipher_data, r->maxlen));
3624                 }
3625                 if (r->cipher_data) {
3626                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->cipher_data, r->len));
3627                 }
3628         }
3629         return NDR_ERR_SUCCESS;
3630 }
3631
3632 _PUBLIC_ void ndr_print_netr_CIPHER_VALUE(struct ndr_print *ndr, const char *name, const struct netr_CIPHER_VALUE *r)
3633 {
3634         ndr_print_struct(ndr, name, "netr_CIPHER_VALUE");
3635         ndr->depth++;
3636         ndr_print_uint32(ndr, "len", r->len);
3637         ndr_print_uint32(ndr, "maxlen", r->maxlen);
3638         ndr_print_ptr(ndr, "cipher_data", r->cipher_data);
3639         ndr->depth++;
3640         if (r->cipher_data) {
3641                 ndr_print_array_uint8(ndr, "cipher_data", r->cipher_data, r->len);
3642         }
3643         ndr->depth--;
3644         ndr->depth--;
3645 }
3646
3647 static enum ndr_err_code ndr_push_netr_DELTA_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_SECRET *r)
3648 {
3649         if (ndr_flags & NDR_SCALARS) {
3650                 NDR_CHECK(ndr_push_align(ndr, 4));
3651                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3652                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->current_cipher_set_time));
3653                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3654                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_cipher_set_time));
3655                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3656                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3657                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3658                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3659                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3660                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3661                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3662                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3663                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3664                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3665         }
3666         if (ndr_flags & NDR_BUFFERS) {
3667                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3668                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3669                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3670                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3671                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3672                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3673                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3674         }
3675         return NDR_ERR_SUCCESS;
3676 }
3677
3678 static enum ndr_err_code ndr_pull_netr_DELTA_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_SECRET *r)
3679 {
3680         if (ndr_flags & NDR_SCALARS) {
3681                 NDR_CHECK(ndr_pull_align(ndr, 4));
3682                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3683                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->current_cipher_set_time));
3684                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3685                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_cipher_set_time));
3686                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3687                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3688                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3689                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3690                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3691                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3692                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3693                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3694                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3695                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3696         }
3697         if (ndr_flags & NDR_BUFFERS) {
3698                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3699                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3700                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3701                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3702                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3703                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3704                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3705         }
3706         return NDR_ERR_SUCCESS;
3707 }
3708
3709 _PUBLIC_ void ndr_print_netr_DELTA_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_SECRET *r)
3710 {
3711         ndr_print_struct(ndr, name, "netr_DELTA_SECRET");
3712         ndr->depth++;
3713         ndr_print_netr_CIPHER_VALUE(ndr, "current_cipher", &r->current_cipher);
3714         ndr_print_NTTIME(ndr, "current_cipher_set_time", r->current_cipher_set_time);
3715         ndr_print_netr_CIPHER_VALUE(ndr, "old_cipher", &r->old_cipher);
3716         ndr_print_NTTIME(ndr, "old_cipher_set_time", r->old_cipher_set_time);
3717         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3718         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3719         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3720         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3721         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3722         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3723         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3724         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3725         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3726         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3727         ndr->depth--;
3728 }
3729
3730 static enum ndr_err_code ndr_push_netr_DeltaEnum(struct ndr_push *ndr, int ndr_flags, enum netr_DeltaEnum r)
3731 {
3732         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
3733         return NDR_ERR_SUCCESS;
3734 }
3735
3736 static enum ndr_err_code ndr_pull_netr_DeltaEnum(struct ndr_pull *ndr, int ndr_flags, enum netr_DeltaEnum *r)
3737 {
3738         uint16_t v;
3739         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
3740         *r = v;
3741         return NDR_ERR_SUCCESS;
3742 }
3743
3744 _PUBLIC_ void ndr_print_netr_DeltaEnum(struct ndr_print *ndr, const char *name, enum netr_DeltaEnum r)
3745 {
3746         const char *val = NULL;
3747
3748         switch (r) {
3749                 case NETR_DELTA_DOMAIN: val = "NETR_DELTA_DOMAIN"; break;
3750                 case NETR_DELTA_GROUP: val = "NETR_DELTA_GROUP"; break;
3751                 case NETR_DELTA_DELETE_GROUP: val = "NETR_DELTA_DELETE_GROUP"; break;
3752                 case NETR_DELTA_RENAME_GROUP: val = "NETR_DELTA_RENAME_GROUP"; break;
3753                 case NETR_DELTA_USER: val = "NETR_DELTA_USER"; break;
3754                 case NETR_DELTA_DELETE_USER: val = "NETR_DELTA_DELETE_USER"; break;
3755                 case NETR_DELTA_RENAME_USER: val = "NETR_DELTA_RENAME_USER"; break;
3756                 case NETR_DELTA_GROUP_MEMBER: val = "NETR_DELTA_GROUP_MEMBER"; break;
3757                 case NETR_DELTA_ALIAS: val = "NETR_DELTA_ALIAS"; break;
3758                 case NETR_DELTA_DELETE_ALIAS: val = "NETR_DELTA_DELETE_ALIAS"; break;
3759                 case NETR_DELTA_RENAME_ALIAS: val = "NETR_DELTA_RENAME_ALIAS"; break;
3760                 case NETR_DELTA_ALIAS_MEMBER: val = "NETR_DELTA_ALIAS_MEMBER"; break;
3761                 case NETR_DELTA_POLICY: val = "NETR_DELTA_POLICY"; break;
3762                 case NETR_DELTA_TRUSTED_DOMAIN: val = "NETR_DELTA_TRUSTED_DOMAIN"; break;
3763                 case NETR_DELTA_DELETE_TRUST: val = "NETR_DELTA_DELETE_TRUST"; break;
3764                 case NETR_DELTA_ACCOUNT: val = "NETR_DELTA_ACCOUNT"; break;
3765                 case NETR_DELTA_DELETE_ACCOUNT: val = "NETR_DELTA_DELETE_ACCOUNT"; break;
3766                 case NETR_DELTA_SECRET: val = "NETR_DELTA_SECRET"; break;
3767                 case NETR_DELTA_DELETE_SECRET: val = "NETR_DELTA_DELETE_SECRET"; break;
3768                 case NETR_DELTA_DELETE_GROUP2: val = "NETR_DELTA_DELETE_GROUP2"; break;
3769                 case NETR_DELTA_DELETE_USER2: val = "NETR_DELTA_DELETE_USER2"; break;
3770                 case NETR_DELTA_MODIFY_COUNT: val = "NETR_DELTA_MODIFY_COUNT"; break;
3771         }
3772         ndr_print_enum(ndr, name, "ENUM", val, r);
3773 }
3774
3775 static enum ndr_err_code ndr_push_netr_DELTA_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_UNION *r)
3776 {
3777         if (ndr_flags & NDR_SCALARS) {
3778                 int level = ndr_push_get_switch_value(ndr, r);
3779                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
3780                 switch (level) {
3781                         case NETR_DELTA_DOMAIN: {
3782                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
3783                         break; }
3784
3785                         case NETR_DELTA_GROUP: {
3786                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group));
3787                         break; }
3788
3789                         case NETR_DELTA_DELETE_GROUP: {
3790                         break; }
3791
3792                         case NETR_DELTA_RENAME_GROUP: {
3793                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_group));
3794                         break; }
3795
3796                         case NETR_DELTA_USER: {
3797                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
3798                         break; }
3799
3800                         case NETR_DELTA_DELETE_USER: {
3801                         break; }
3802
3803                         case NETR_DELTA_RENAME_USER: {
3804                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_user));
3805                         break; }
3806
3807                         case NETR_DELTA_GROUP_MEMBER: {
3808                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_member));
3809                         break; }
3810
3811                         case NETR_DELTA_ALIAS: {
3812                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias));
3813                         break; }
3814
3815                         case NETR_DELTA_DELETE_ALIAS: {
3816                         break; }
3817
3818                         case NETR_DELTA_RENAME_ALIAS: {
3819                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_alias));
3820                         break; }
3821
3822                         case NETR_DELTA_ALIAS_MEMBER: {
3823                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias_member));
3824                         break; }
3825
3826                         case NETR_DELTA_POLICY: {
3827                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
3828                         break; }
3829
3830                         case NETR_DELTA_TRUSTED_DOMAIN: {
3831                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain));
3832                         break; }
3833
3834                         case NETR_DELTA_DELETE_TRUST: {
3835                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
3836                         break; }
3837
3838                         case NETR_DELTA_ACCOUNT: {
3839                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account));
3840                         break; }
3841
3842                         case NETR_DELTA_DELETE_ACCOUNT: {
3843                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
3844                         break; }
3845
3846                         case NETR_DELTA_SECRET: {
3847                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret));
3848                         break; }
3849
3850                         case NETR_DELTA_DELETE_SECRET: {
3851                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
3852                         break; }
3853
3854                         case NETR_DELTA_DELETE_GROUP2: {
3855                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_group));
3856                         break; }
3857
3858                         case NETR_DELTA_DELETE_USER2: {
3859                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_user));
3860                         break; }
3861
3862                         case NETR_DELTA_MODIFY_COUNT: {
3863                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->modified_count));
3864                         break; }
3865
3866                         default:
3867                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3868                 }
3869         }
3870         if (ndr_flags & NDR_BUFFERS) {
3871                 int level = ndr_push_get_switch_value(ndr, r);
3872                 switch (level) {
3873                         case NETR_DELTA_DOMAIN:
3874                                 if (r->domain) {
3875                                         NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
3876                                 }
3877                         break;
3878
3879                         case NETR_DELTA_GROUP:
3880                                 if (r->group) {
3881                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
3882                                 }
3883                         break;
3884
3885                         case NETR_DELTA_DELETE_GROUP:
3886                         break;
3887
3888                         case NETR_DELTA_RENAME_GROUP:
3889                                 if (r->rename_group) {
3890                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
3891                                 }
3892                         break;
3893
3894                         case NETR_DELTA_USER:
3895                                 if (r->user) {
3896                                         NDR_CHECK(ndr_push_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
3897                                 }
3898                         break;
3899
3900                         case NETR_DELTA_DELETE_USER:
3901                         break;
3902
3903                         case NETR_DELTA_RENAME_USER:
3904                                 if (r->rename_user) {
3905                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
3906                                 }
3907                         break;
3908
3909                         case NETR_DELTA_GROUP_MEMBER:
3910                                 if (r->group_member) {
3911                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
3912                                 }
3913                         break;
3914
3915                         case NETR_DELTA_ALIAS:
3916                                 if (r->alias) {
3917                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
3918                                 }
3919                         break;
3920
3921                         case NETR_DELTA_DELETE_ALIAS:
3922                         break;
3923
3924                         case NETR_DELTA_RENAME_ALIAS:
3925                                 if (r->rename_alias) {
3926                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
3927                                 }
3928                         break;
3929
3930                         case NETR_DELTA_ALIAS_MEMBER:
3931                                 if (r->alias_member) {
3932                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
3933                                 }
3934                         break;
3935
3936                         case NETR_DELTA_POLICY:
3937                                 if (r->policy) {
3938                                         NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
3939                                 }
3940                         break;
3941
3942                         case NETR_DELTA_TRUSTED_DOMAIN:
3943                                 if (r->trusted_domain) {
3944                                         NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
3945                                 }
3946                         break;
3947
3948                         case NETR_DELTA_DELETE_TRUST:
3949                         break;
3950
3951                         case NETR_DELTA_ACCOUNT:
3952                                 if (r->account) {
3953                                         NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
3954                                 }
3955                         break;
3956
3957                         case NETR_DELTA_DELETE_ACCOUNT:
3958                         break;
3959
3960                         case NETR_DELTA_SECRET:
3961                                 if (r->secret) {
3962                                         NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
3963                                 }
3964                         break;
3965
3966                         case NETR_DELTA_DELETE_SECRET:
3967                         break;
3968
3969                         case NETR_DELTA_DELETE_GROUP2:
3970                                 if (r->delete_group) {
3971                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
3972                                 }
3973                         break;
3974
3975                         case NETR_DELTA_DELETE_USER2:
3976                                 if (r->delete_user) {
3977                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
3978                                 }
3979                         break;
3980
3981                         case NETR_DELTA_MODIFY_COUNT:
3982                                 if (r->modified_count) {
3983                                         NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->modified_count));
3984                                 }
3985                         break;
3986
3987                         default:
3988                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3989                 }
3990         }
3991         return NDR_ERR_SUCCESS;
3992 }
3993
3994 static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_UNION *r)
3995 {
3996         int level;
3997         uint16_t _level;
3998         TALLOC_CTX *_mem_save_domain_0;
3999         TALLOC_CTX *_mem_save_group_0;
4000         TALLOC_CTX *_mem_save_rename_group_0;
4001         TALLOC_CTX *_mem_save_user_0;
4002         TALLOC_CTX *_mem_save_rename_user_0;
4003         TALLOC_CTX *_mem_save_group_member_0;
4004         TALLOC_CTX *_mem_save_alias_0;
4005         TALLOC_CTX *_mem_save_rename_alias_0;
4006         TALLOC_CTX *_mem_save_alias_member_0;
4007         TALLOC_CTX *_mem_save_policy_0;
4008         TALLOC_CTX *_mem_save_trusted_domain_0;
4009         TALLOC_CTX *_mem_save_account_0;
4010         TALLOC_CTX *_mem_save_secret_0;
4011         TALLOC_CTX *_mem_save_delete_group_0;
4012         TALLOC_CTX *_mem_save_delete_user_0;
4013         TALLOC_CTX *_mem_save_modified_count_0;
4014         level = ndr_pull_get_switch_value(ndr, r);
4015         if (ndr_flags & NDR_SCALARS) {
4016                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4017                 if (_level != level) {
4018                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4019                 }
4020                 switch (level) {
4021                         case NETR_DELTA_DOMAIN: {
4022                                 uint32_t _ptr_domain;
4023                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
4024                                 if (_ptr_domain) {
4025                                         NDR_PULL_ALLOC(ndr, r->domain);
4026                                 } else {
4027                                         r->domain = NULL;
4028                                 }
4029                         break; }
4030
4031                         case NETR_DELTA_GROUP: {
4032                                 uint32_t _ptr_group;
4033                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group));
4034                                 if (_ptr_group) {
4035                                         NDR_PULL_ALLOC(ndr, r->group);
4036                                 } else {
4037                                         r->group = NULL;
4038                                 }
4039                         break; }
4040
4041                         case NETR_DELTA_DELETE_GROUP: {
4042                         break; }
4043
4044                         case NETR_DELTA_RENAME_GROUP: {
4045                                 uint32_t _ptr_rename_group;
4046                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group));
4047                                 if (_ptr_rename_group) {
4048                                         NDR_PULL_ALLOC(ndr, r->rename_group);
4049                                 } else {
4050                                         r->rename_group = NULL;
4051                                 }
4052                         break; }
4053
4054                         case NETR_DELTA_USER: {
4055                                 uint32_t _ptr_user;
4056                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
4057                                 if (_ptr_user) {
4058                                         NDR_PULL_ALLOC(ndr, r->user);
4059                                 } else {
4060                                         r->user = NULL;
4061                                 }
4062                         break; }
4063
4064                         case NETR_DELTA_DELETE_USER: {
4065                         break; }
4066
4067                         case NETR_DELTA_RENAME_USER: {
4068                                 uint32_t _ptr_rename_user;
4069                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user));
4070                                 if (_ptr_rename_user) {
4071                                         NDR_PULL_ALLOC(ndr, r->rename_user);
4072                                 } else {
4073                                         r->rename_user = NULL;
4074                                 }
4075                         break; }
4076
4077                         case NETR_DELTA_GROUP_MEMBER: {
4078                                 uint32_t _ptr_group_member;
4079                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member));
4080                                 if (_ptr_group_member) {
4081                                         NDR_PULL_ALLOC(ndr, r->group_member);
4082                                 } else {
4083                                         r->group_member = NULL;
4084                                 }
4085                         break; }
4086
4087                         case NETR_DELTA_ALIAS: {
4088                                 uint32_t _ptr_alias;
4089                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias));
4090                                 if (_ptr_alias) {
4091                                         NDR_PULL_ALLOC(ndr, r->alias);
4092                                 } else {
4093                                         r->alias = NULL;
4094                                 }
4095                         break; }
4096
4097                         case NETR_DELTA_DELETE_ALIAS: {
4098                         break; }
4099
4100                         case NETR_DELTA_RENAME_ALIAS: {
4101                                 uint32_t _ptr_rename_alias;
4102                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias));
4103                                 if (_ptr_rename_alias) {
4104                                         NDR_PULL_ALLOC(ndr, r->rename_alias);
4105                                 } else {
4106                                         r->rename_alias = NULL;
4107                                 }
4108                         break; }
4109
4110                         case NETR_DELTA_ALIAS_MEMBER: {
4111                                 uint32_t _ptr_alias_member;
4112                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member));
4113                                 if (_ptr_alias_member) {
4114                                         NDR_PULL_ALLOC(ndr, r->alias_member);
4115                                 } else {
4116                                         r->alias_member = NULL;
4117                                 }
4118                         break; }
4119
4120                         case NETR_DELTA_POLICY: {
4121                                 uint32_t _ptr_policy;
4122                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
4123                                 if (_ptr_policy) {
4124                                         NDR_PULL_ALLOC(ndr, r->policy);
4125                                 } else {
4126                                         r->policy = NULL;
4127                                 }
4128                         break; }
4129
4130                         case NETR_DELTA_TRUSTED_DOMAIN: {
4131                                 uint32_t _ptr_trusted_domain;
4132                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain));
4133                                 if (_ptr_trusted_domain) {
4134                                         NDR_PULL_ALLOC(ndr, r->trusted_domain);
4135                                 } else {
4136                                         r->trusted_domain = NULL;
4137                                 }
4138                         break; }
4139
4140                         case NETR_DELTA_DELETE_TRUST: {
4141                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4142                         break; }
4143
4144                         case NETR_DELTA_ACCOUNT: {
4145                                 uint32_t _ptr_account;
4146                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account));
4147                                 if (_ptr_account) {
4148                                         NDR_PULL_ALLOC(ndr, r->account);
4149                                 } else {
4150                                         r->account = NULL;
4151                                 }
4152                         break; }
4153
4154                         case NETR_DELTA_DELETE_ACCOUNT: {
4155                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4156                         break; }
4157
4158                         case NETR_DELTA_SECRET: {
4159                                 uint32_t _ptr_secret;
4160                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret));
4161                                 if (_ptr_secret) {
4162                                         NDR_PULL_ALLOC(ndr, r->secret);
4163                                 } else {
4164                                         r->secret = NULL;
4165                                 }
4166                         break; }
4167
4168                         case NETR_DELTA_DELETE_SECRET: {
4169                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4170                         break; }
4171
4172                         case NETR_DELTA_DELETE_GROUP2: {
4173                                 uint32_t _ptr_delete_group;
4174                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group));
4175                                 if (_ptr_delete_group) {
4176                                         NDR_PULL_ALLOC(ndr, r->delete_group);
4177                                 } else {
4178                                         r->delete_group = NULL;
4179                                 }
4180                         break; }
4181
4182                         case NETR_DELTA_DELETE_USER2: {
4183                                 uint32_t _ptr_delete_user;
4184                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user));
4185                                 if (_ptr_delete_user) {
4186                                         NDR_PULL_ALLOC(ndr, r->delete_user);
4187                                 } else {
4188                                         r->delete_user = NULL;
4189                                 }
4190                         break; }
4191
4192                         case NETR_DELTA_MODIFY_COUNT: {
4193                                 uint32_t _ptr_modified_count;
4194                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count));
4195                                 if (_ptr_modified_count) {
4196                                         NDR_PULL_ALLOC(ndr, r->modified_count);
4197                                 } else {
4198                                         r->modified_count = NULL;
4199                                 }
4200                         break; }
4201
4202                         default:
4203                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4204                 }
4205         }
4206         if (ndr_flags & NDR_BUFFERS) {
4207                 switch (level) {
4208                         case NETR_DELTA_DOMAIN:
4209                                 if (r->domain) {
4210                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4211                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
4212                                         NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4213                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
4214                                 }
4215                         break;
4216
4217                         case NETR_DELTA_GROUP:
4218                                 if (r->group) {
4219                                         _mem_save_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4220                                         NDR_PULL_SET_MEM_CTX(ndr, r->group, 0);
4221                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4222                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_0, 0);
4223                                 }
4224                         break;
4225
4226                         case NETR_DELTA_DELETE_GROUP:
4227                         break;
4228
4229                         case NETR_DELTA_RENAME_GROUP:
4230                                 if (r->rename_group) {
4231                                         _mem_save_rename_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4232                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_group, 0);
4233                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4234                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_group_0, 0);
4235                                 }
4236                         break;
4237
4238                         case NETR_DELTA_USER:
4239                                 if (r->user) {
4240                                         _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4241                                         NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
4242                                         NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4243                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
4244                                 }
4245                         break;
4246
4247                         case NETR_DELTA_DELETE_USER:
4248                         break;
4249
4250                         case NETR_DELTA_RENAME_USER:
4251                                 if (r->rename_user) {
4252                                         _mem_save_rename_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4253                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_user, 0);
4254                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4255                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_user_0, 0);
4256                                 }
4257                         break;
4258
4259                         case NETR_DELTA_GROUP_MEMBER:
4260                                 if (r->group_member) {
4261                                         _mem_save_group_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4262                                         NDR_PULL_SET_MEM_CTX(ndr, r->group_member, 0);
4263                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4264                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_member_0, 0);
4265                                 }
4266                         break;
4267
4268                         case NETR_DELTA_ALIAS:
4269                                 if (r->alias) {
4270                                         _mem_save_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4271                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias, 0);
4272                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4273                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_0, 0);
4274                                 }
4275                         break;
4276
4277                         case NETR_DELTA_DELETE_ALIAS:
4278                         break;
4279
4280                         case NETR_DELTA_RENAME_ALIAS:
4281                                 if (r->rename_alias) {
4282                                         _mem_save_rename_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4283                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_alias, 0);
4284                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4285                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_alias_0, 0);
4286                                 }
4287                         break;
4288
4289                         case NETR_DELTA_ALIAS_MEMBER:
4290                                 if (r->alias_member) {
4291                                         _mem_save_alias_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4292                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias_member, 0);
4293                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4294                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_member_0, 0);
4295                                 }
4296                         break;
4297
4298                         case NETR_DELTA_POLICY:
4299                                 if (r->policy) {
4300                                         _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
4301                                         NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
4302                                         NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4303                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
4304                                 }
4305                         break;
4306
4307                         case NETR_DELTA_TRUSTED_DOMAIN:
4308                                 if (r->trusted_domain) {
4309                                         _mem_save_trusted_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4310                                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain, 0);
4311                                         NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4312                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_0, 0);
4313                                 }
4314                         break;
4315
4316                         case NETR_DELTA_DELETE_TRUST:
4317                         break;
4318
4319                         case NETR_DELTA_ACCOUNT:
4320                                 if (r->account) {
4321                                         _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
4322                                         NDR_PULL_SET_MEM_CTX(ndr, r->account, 0);
4323                                         NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4324                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0);
4325                                 }
4326                         break;
4327
4328                         case NETR_DELTA_DELETE_ACCOUNT:
4329                         break;
4330
4331                         case NETR_DELTA_SECRET:
4332                                 if (r->secret) {
4333                                         _mem_save_secret_0 = NDR_PULL_GET_MEM_CTX(ndr);
4334                                         NDR_PULL_SET_MEM_CTX(ndr, r->secret, 0);
4335                                         NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4336                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_0, 0);
4337                                 }
4338                         break;
4339
4340                         case NETR_DELTA_DELETE_SECRET:
4341                         break;
4342
4343                         case NETR_DELTA_DELETE_GROUP2:
4344                                 if (r->delete_group) {
4345                                         _mem_save_delete_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4346                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_group, 0);
4347                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4348                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_group_0, 0);
4349                                 }
4350                         break;
4351
4352                         case NETR_DELTA_DELETE_USER2:
4353                                 if (r->delete_user) {
4354                                         _mem_save_delete_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4355                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_user, 0);
4356                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4357                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_user_0, 0);
4358                                 }
4359                         break;
4360
4361                         case NETR_DELTA_MODIFY_COUNT:
4362                                 if (r->modified_count) {
4363                                         _mem_save_modified_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
4364                                         NDR_PULL_SET_MEM_CTX(ndr, r->modified_count, 0);
4365                                         NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->modified_count));
4366                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_modified_count_0, 0);
4367                                 }
4368                         break;
4369
4370                         default:
4371                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4372                 }
4373         }
4374         return NDR_ERR_SUCCESS;
4375 }
4376
4377 _PUBLIC_ void ndr_print_netr_DELTA_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_UNION *r)
4378 {
4379         int level;
4380         level = ndr_print_get_switch_value(ndr, r);
4381         ndr_print_union(ndr, name, level, "netr_DELTA_UNION");
4382         switch (level) {
4383                 case NETR_DELTA_DOMAIN:
4384                         ndr_print_ptr(ndr, "domain", r->domain);
4385                         ndr->depth++;
4386                         if (r->domain) {
4387                                 ndr_print_netr_DELTA_DOMAIN(ndr, "domain", r->domain);
4388                         }
4389                         ndr->depth--;
4390                 break;
4391
4392                 case NETR_DELTA_GROUP:
4393                         ndr_print_ptr(ndr, "group", r->group);
4394                         ndr->depth++;
4395                         if (r->group) {
4396                                 ndr_print_netr_DELTA_GROUP(ndr, "group", r->group);
4397                         }
4398                         ndr->depth--;
4399                 break;
4400
4401                 case NETR_DELTA_DELETE_GROUP:
4402                 break;
4403
4404                 case NETR_DELTA_RENAME_GROUP:
4405                         ndr_print_ptr(ndr, "rename_group", r->rename_group);
4406                         ndr->depth++;
4407                         if (r->rename_group) {
4408                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_group", r->rename_group);
4409                         }
4410                         ndr->depth--;
4411                 break;
4412
4413                 case NETR_DELTA_USER:
4414                         ndr_print_ptr(ndr, "user", r->user);
4415                         ndr->depth++;
4416                         if (r->user) {
4417                                 ndr_print_netr_DELTA_USER(ndr, "user", r->user);
4418                         }
4419                         ndr->depth--;
4420                 break;
4421
4422                 case NETR_DELTA_DELETE_USER:
4423                 break;
4424
4425                 case NETR_DELTA_RENAME_USER:
4426                         ndr_print_ptr(ndr, "rename_user", r->rename_user);
4427                         ndr->depth++;
4428                         if (r->rename_user) {
4429                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_user", r->rename_user);
4430                         }
4431                         ndr->depth--;
4432                 break;
4433
4434                 case NETR_DELTA_GROUP_MEMBER:
4435                         ndr_print_ptr(ndr, "group_member", r->group_member);
4436                         ndr->depth++;
4437                         if (r->group_member) {
4438                                 ndr_print_netr_DELTA_GROUP_MEMBER(ndr, "group_member", r->group_member);
4439                         }
4440                         ndr->depth--;
4441                 break;
4442
4443                 case NETR_DELTA_ALIAS:
4444                         ndr_print_ptr(ndr, "alias", r->alias);
4445                         ndr->depth++;
4446                         if (r->alias) {
4447                                 ndr_print_netr_DELTA_ALIAS(ndr, "alias", r->alias);
4448                         }
4449                         ndr->depth--;
4450                 break;
4451
4452                 case NETR_DELTA_DELETE_ALIAS:
4453                 break;
4454
4455                 case NETR_DELTA_RENAME_ALIAS:
4456                         ndr_print_ptr(ndr, "rename_alias", r->rename_alias);
4457                         ndr->depth++;
4458                         if (r->rename_alias) {
4459                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_alias", r->rename_alias);
4460                         }
4461                         ndr->depth--;
4462                 break;
4463
4464                 case NETR_DELTA_ALIAS_MEMBER:
4465                         ndr_print_ptr(ndr, "alias_member", r->alias_member);
4466                         ndr->depth++;
4467                         if (r->alias_member) {
4468                                 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr, "alias_member", r->alias_member);
4469                         }
4470                         ndr->depth--;
4471                 break;
4472
4473                 case NETR_DELTA_POLICY:
4474                         ndr_print_ptr(ndr, "policy", r->policy);
4475                         ndr->depth++;
4476                         if (r->policy) {
4477                                 ndr_print_netr_DELTA_POLICY(ndr, "policy", r->policy);
4478                         }
4479                         ndr->depth--;
4480                 break;
4481
4482                 case NETR_DELTA_TRUSTED_DOMAIN:
4483                         ndr_print_ptr(ndr, "trusted_domain", r->trusted_domain);
4484                         ndr->depth++;
4485                         if (r->trusted_domain) {
4486                                 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr, "trusted_domain", r->trusted_domain);
4487                         }
4488                         ndr->depth--;
4489                 break;
4490
4491                 case NETR_DELTA_DELETE_TRUST:
4492                         ndr_print_netr_DELTA_DELETE_TRUST(ndr, "delete_trust", &r->delete_trust);
4493                 break;
4494
4495                 case NETR_DELTA_ACCOUNT:
4496                         ndr_print_ptr(ndr, "account", r->account);
4497                         ndr->depth++;
4498                         if (r->account) {
4499                                 ndr_print_netr_DELTA_ACCOUNT(ndr, "account", r->account);
4500                         }
4501                         ndr->depth--;
4502                 break;
4503
4504                 case NETR_DELTA_DELETE_ACCOUNT:
4505                         ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr, "delete_account", &r->delete_account);
4506                 break;
4507
4508                 case NETR_DELTA_SECRET:
4509                         ndr_print_ptr(ndr, "secret", r->secret);
4510                         ndr->depth++;
4511                         if (r->secret) {
4512                                 ndr_print_netr_DELTA_SECRET(ndr, "secret", r->secret);
4513                         }
4514                         ndr->depth--;
4515                 break;
4516
4517                 case NETR_DELTA_DELETE_SECRET:
4518                         ndr_print_netr_DELTA_DELETE_SECRET(ndr, "delete_secret", &r->delete_secret);
4519                 break;
4520
4521                 case NETR_DELTA_DELETE_GROUP2:
4522                         ndr_print_ptr(ndr, "delete_group", r->delete_group);
4523                         ndr->depth++;
4524                         if (r->delete_group) {
4525                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_group", r->delete_group);
4526                         }
4527                         ndr->depth--;
4528                 break;
4529
4530                 case NETR_DELTA_DELETE_USER2:
4531                         ndr_print_ptr(ndr, "delete_user", r->delete_user);
4532                         ndr->depth++;
4533                         if (r->delete_user) {
4534                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_user", r->delete_user);
4535                         }
4536                         ndr->depth--;
4537                 break;
4538
4539                 case NETR_DELTA_MODIFY_COUNT:
4540                         ndr_print_ptr(ndr, "modified_count", r->modified_count);
4541                         ndr->depth++;
4542                         if (r->modified_count) {
4543                                 ndr_print_udlong(ndr, "modified_count", *r->modified_count);
4544                         }
4545                         ndr->depth--;
4546                 break;
4547
4548                 default:
4549                         ndr_print_bad_level(ndr, name, level);
4550         }
4551 }
4552
4553 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)
4554 {
4555         if (ndr_flags & NDR_SCALARS) {
4556                 int level = ndr_push_get_switch_value(ndr, r);
4557                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
4558                 switch (level) {
4559                         case NETR_DELTA_DOMAIN: {
4560                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4561                         break; }
4562
4563                         case NETR_DELTA_GROUP: {
4564                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4565                         break; }
4566
4567                         case NETR_DELTA_DELETE_GROUP: {
4568                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4569                         break; }
4570
4571                         case NETR_DELTA_RENAME_GROUP: {
4572                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4573                         break; }
4574
4575                         case NETR_DELTA_USER: {
4576                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4577                         break; }
4578
4579                         case NETR_DELTA_DELETE_USER: {
4580                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4581                         break; }
4582
4583                         case NETR_DELTA_RENAME_USER: {
4584                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4585                         break; }
4586
4587                         case NETR_DELTA_GROUP_MEMBER: {
4588                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4589                         break; }
4590
4591                         case NETR_DELTA_ALIAS: {
4592                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4593                         break; }
4594
4595                         case NETR_DELTA_DELETE_ALIAS: {
4596                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4597                         break; }
4598
4599                         case NETR_DELTA_RENAME_ALIAS: {
4600                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4601                         break; }
4602
4603                         case NETR_DELTA_ALIAS_MEMBER: {
4604                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4605                         break; }
4606
4607                         case NETR_DELTA_POLICY: {
4608                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4609                         break; }
4610
4611                         case NETR_DELTA_TRUSTED_DOMAIN: {
4612                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4613                         break; }
4614
4615                         case NETR_DELTA_DELETE_TRUST: {
4616                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4617                         break; }
4618
4619                         case NETR_DELTA_ACCOUNT: {
4620                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4621                         break; }
4622
4623                         case NETR_DELTA_DELETE_ACCOUNT: {
4624                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4625                         break; }
4626
4627                         case NETR_DELTA_SECRET: {
4628                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4629                         break; }
4630
4631                         case NETR_DELTA_DELETE_SECRET: {
4632                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4633                         break; }
4634
4635                         case NETR_DELTA_DELETE_GROUP2: {
4636                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4637                         break; }
4638
4639                         case NETR_DELTA_DELETE_USER2: {
4640                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4641                         break; }
4642
4643                         case NETR_DELTA_MODIFY_COUNT: {
4644                         break; }
4645
4646                         default:
4647                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4648                 }
4649         }
4650         if (ndr_flags & NDR_BUFFERS) {
4651                 int level = ndr_push_get_switch_value(ndr, r);
4652                 switch (level) {
4653                         case NETR_DELTA_DOMAIN:
4654                         break;
4655
4656                         case NETR_DELTA_GROUP:
4657                         break;
4658
4659                         case NETR_DELTA_DELETE_GROUP:
4660                         break;
4661
4662                         case NETR_DELTA_RENAME_GROUP:
4663                         break;
4664
4665                         case NETR_DELTA_USER:
4666                         break;
4667
4668                         case NETR_DELTA_DELETE_USER:
4669                         break;
4670
4671                         case NETR_DELTA_RENAME_USER:
4672                         break;
4673
4674                         case NETR_DELTA_GROUP_MEMBER:
4675                         break;
4676
4677                         case NETR_DELTA_ALIAS:
4678                         break;
4679
4680                         case NETR_DELTA_DELETE_ALIAS:
4681                         break;
4682
4683                         case NETR_DELTA_RENAME_ALIAS:
4684                         break;
4685
4686                         case NETR_DELTA_ALIAS_MEMBER:
4687                         break;
4688
4689                         case NETR_DELTA_POLICY:
4690                                 if (r->sid) {
4691                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4692                                 }
4693                         break;
4694
4695                         case NETR_DELTA_TRUSTED_DOMAIN:
4696                                 if (r->sid) {
4697                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4698                                 }
4699                         break;
4700
4701                         case NETR_DELTA_DELETE_TRUST:
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_ACCOUNT:
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_ACCOUNT:
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_SECRET:
4720                                 if (r->name) {
4721                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4722                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4723                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4724                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4725                                 }
4726                         break;
4727
4728                         case NETR_DELTA_DELETE_SECRET:
4729                                 if (r->name) {
4730                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4731                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4732                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4733                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4734                                 }
4735                         break;
4736
4737                         case NETR_DELTA_DELETE_GROUP2:
4738                         break;
4739
4740                         case NETR_DELTA_DELETE_USER2:
4741                         break;
4742
4743                         case NETR_DELTA_MODIFY_COUNT:
4744                         break;
4745
4746                         default:
4747                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4748                 }
4749         }
4750         return NDR_ERR_SUCCESS;
4751 }
4752
4753 static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_ID_UNION *r)
4754 {
4755         int level;
4756         uint16_t _level;
4757         TALLOC_CTX *_mem_save_sid_0;
4758         TALLOC_CTX *_mem_save_name_0;
4759         level = ndr_pull_get_switch_value(ndr, r);
4760         if (ndr_flags & NDR_SCALARS) {
4761                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4762                 if (_level != level) {
4763                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4764                 }
4765                 switch (level) {
4766                         case NETR_DELTA_DOMAIN: {
4767                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4768                         break; }
4769
4770                         case NETR_DELTA_GROUP: {
4771                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4772                         break; }
4773
4774                         case NETR_DELTA_DELETE_GROUP: {
4775                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4776                         break; }
4777
4778                         case NETR_DELTA_RENAME_GROUP: {
4779                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4780                         break; }
4781
4782                         case NETR_DELTA_USER: {
4783                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4784                         break; }
4785
4786                         case NETR_DELTA_DELETE_USER: {
4787                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4788                         break; }
4789
4790                         case NETR_DELTA_RENAME_USER: {
4791                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4792                         break; }
4793
4794                         case NETR_DELTA_GROUP_MEMBER: {
4795                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4796                         break; }
4797
4798                         case NETR_DELTA_ALIAS: {
4799                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4800                         break; }
4801
4802                         case NETR_DELTA_DELETE_ALIAS: {
4803                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4804                         break; }
4805
4806                         case NETR_DELTA_RENAME_ALIAS: {
4807                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4808                         break; }
4809
4810                         case NETR_DELTA_ALIAS_MEMBER: {
4811                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4812                         break; }
4813
4814                         case NETR_DELTA_POLICY: {
4815                                 uint32_t _ptr_sid;
4816                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4817                                 if (_ptr_sid) {
4818                                         NDR_PULL_ALLOC(ndr, r->sid);
4819                                 } else {
4820                                         r->sid = NULL;
4821                                 }
4822                         break; }
4823
4824                         case NETR_DELTA_TRUSTED_DOMAIN: {
4825                                 uint32_t _ptr_sid;
4826                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4827                                 if (_ptr_sid) {
4828                                         NDR_PULL_ALLOC(ndr, r->sid);
4829                                 } else {
4830                                         r->sid = NULL;
4831                                 }
4832                         break; }
4833
4834                         case NETR_DELTA_DELETE_TRUST: {
4835                                 uint32_t _ptr_sid;
4836                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4837                                 if (_ptr_sid) {
4838                                         NDR_PULL_ALLOC(ndr, r->sid);
4839                                 } else {
4840                                         r->sid = NULL;
4841                                 }
4842                         break; }
4843
4844                         case NETR_DELTA_ACCOUNT: {
4845                                 uint32_t _ptr_sid;
4846                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4847                                 if (_ptr_sid) {
4848                                         NDR_PULL_ALLOC(ndr, r->sid);
4849                                 } else {
4850                                         r->sid = NULL;
4851                                 }
4852                         break; }
4853
4854                         case NETR_DELTA_DELETE_ACCOUNT: {
4855                                 uint32_t _ptr_sid;
4856                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4857                                 if (_ptr_sid) {
4858                                         NDR_PULL_ALLOC(ndr, r->sid);
4859                                 } else {
4860                                         r->sid = NULL;
4861                                 }
4862                         break; }
4863
4864                         case NETR_DELTA_SECRET: {
4865                                 uint32_t _ptr_name;
4866                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4867                                 if (_ptr_name) {
4868                                         NDR_PULL_ALLOC(ndr, r->name);
4869                                 } else {
4870                                         r->name = NULL;
4871                                 }
4872                         break; }
4873
4874                         case NETR_DELTA_DELETE_SECRET: {
4875                                 uint32_t _ptr_name;
4876                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4877                                 if (_ptr_name) {
4878                                         NDR_PULL_ALLOC(ndr, r->name);
4879                                 } else {
4880                                         r->name = NULL;
4881                                 }
4882                         break; }
4883
4884                         case NETR_DELTA_DELETE_GROUP2: {
4885                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4886                         break; }
4887
4888                         case NETR_DELTA_DELETE_USER2: {
4889                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4890                         break; }
4891
4892                         case NETR_DELTA_MODIFY_COUNT: {
4893                         break; }
4894
4895                         default:
4896                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4897                 }
4898         }
4899         if (ndr_flags & NDR_BUFFERS) {
4900                 switch (level) {
4901                         case NETR_DELTA_DOMAIN:
4902                         break;
4903
4904                         case NETR_DELTA_GROUP:
4905                         break;
4906
4907                         case NETR_DELTA_DELETE_GROUP:
4908                         break;
4909
4910                         case NETR_DELTA_RENAME_GROUP:
4911                         break;
4912
4913                         case NETR_DELTA_USER:
4914                         break;
4915
4916                         case NETR_DELTA_DELETE_USER:
4917                         break;
4918
4919                         case NETR_DELTA_RENAME_USER:
4920                         break;
4921
4922                         case NETR_DELTA_GROUP_MEMBER:
4923                         break;
4924
4925                         case NETR_DELTA_ALIAS:
4926                         break;
4927
4928                         case NETR_DELTA_DELETE_ALIAS:
4929                         break;
4930
4931                         case NETR_DELTA_RENAME_ALIAS:
4932                         break;
4933
4934                         case NETR_DELTA_ALIAS_MEMBER:
4935                         break;
4936
4937                         case NETR_DELTA_POLICY:
4938                                 if (r->sid) {
4939                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4940                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4941                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4942                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4943                                 }
4944                         break;
4945
4946                         case NETR_DELTA_TRUSTED_DOMAIN:
4947                                 if (r->sid) {
4948                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4949                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4950                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4951                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4952                                 }
4953                         break;
4954
4955                         case NETR_DELTA_DELETE_TRUST:
4956                                 if (r->sid) {
4957                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4958                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4959                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4960                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4961                                 }
4962                         break;
4963
4964                         case NETR_DELTA_ACCOUNT:
4965                                 if (r->sid) {
4966                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4967                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4968                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4969                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4970                                 }
4971                         break;
4972
4973                         case NETR_DELTA_DELETE_ACCOUNT:
4974                                 if (r->sid) {
4975                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4976                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4977                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4978                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4979                                 }
4980                         break;
4981
4982                         case NETR_DELTA_SECRET:
4983                                 if (r->name) {
4984                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4985                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
4986                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
4987                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
4988                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
4989                                                 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));
4990                                         }
4991                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
4992                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
4993                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
4994                                 }
4995                         break;
4996
4997                         case NETR_DELTA_DELETE_SECRET:
4998                                 if (r->name) {
4999                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5000                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5001                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5002                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5003                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5004                                                 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));
5005                                         }
5006                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5007                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5008                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5009                                 }
5010                         break;
5011
5012                         case NETR_DELTA_DELETE_GROUP2:
5013                         break;
5014
5015                         case NETR_DELTA_DELETE_USER2:
5016                         break;
5017
5018                         case NETR_DELTA_MODIFY_COUNT:
5019                         break;
5020
5021                         default:
5022                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5023                 }
5024         }
5025         return NDR_ERR_SUCCESS;
5026 }
5027
5028 _PUBLIC_ void ndr_print_netr_DELTA_ID_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_ID_UNION *r)
5029 {
5030         int level;
5031         level = ndr_print_get_switch_value(ndr, r);
5032         ndr_print_union(ndr, name, level, "netr_DELTA_ID_UNION");
5033         switch (level) {
5034                 case NETR_DELTA_DOMAIN:
5035                         ndr_print_uint32(ndr, "rid", r->rid);
5036                 break;
5037
5038                 case NETR_DELTA_GROUP:
5039                         ndr_print_uint32(ndr, "rid", r->rid);
5040                 break;
5041
5042                 case NETR_DELTA_DELETE_GROUP:
5043                         ndr_print_uint32(ndr, "rid", r->rid);
5044                 break;
5045
5046                 case NETR_DELTA_RENAME_GROUP:
5047                         ndr_print_uint32(ndr, "rid", r->rid);
5048                 break;
5049
5050                 case NETR_DELTA_USER:
5051                         ndr_print_uint32(ndr, "rid", r->rid);
5052                 break;
5053
5054                 case NETR_DELTA_DELETE_USER:
5055                         ndr_print_uint32(ndr, "rid", r->rid);
5056                 break;
5057
5058                 case NETR_DELTA_RENAME_USER:
5059                         ndr_print_uint32(ndr, "rid", r->rid);
5060                 break;
5061
5062                 case NETR_DELTA_GROUP_MEMBER:
5063                         ndr_print_uint32(ndr, "rid", r->rid);
5064                 break;
5065
5066                 case NETR_DELTA_ALIAS:
5067                         ndr_print_uint32(ndr, "rid", r->rid);
5068                 break;
5069
5070                 case NETR_DELTA_DELETE_ALIAS:
5071                         ndr_print_uint32(ndr, "rid", r->rid);
5072                 break;
5073
5074                 case NETR_DELTA_RENAME_ALIAS:
5075                         ndr_print_uint32(ndr, "rid", r->rid);
5076                 break;
5077
5078                 case NETR_DELTA_ALIAS_MEMBER:
5079                         ndr_print_uint32(ndr, "rid", r->rid);
5080                 break;
5081
5082                 case NETR_DELTA_POLICY:
5083                         ndr_print_ptr(ndr, "sid", r->sid);
5084                         ndr->depth++;
5085                         if (r->sid) {
5086                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5087                         }
5088                         ndr->depth--;
5089                 break;
5090
5091                 case NETR_DELTA_TRUSTED_DOMAIN:
5092                         ndr_print_ptr(ndr, "sid", r->sid);
5093                         ndr->depth++;
5094                         if (r->sid) {
5095                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5096                         }
5097                         ndr->depth--;
5098                 break;
5099
5100                 case NETR_DELTA_DELETE_TRUST:
5101                         ndr_print_ptr(ndr, "sid", r->sid);
5102                         ndr->depth++;
5103                         if (r->sid) {
5104                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5105                         }
5106                         ndr->depth--;
5107                 break;
5108
5109                 case NETR_DELTA_ACCOUNT:
5110                         ndr_print_ptr(ndr, "sid", r->sid);
5111                         ndr->depth++;
5112                         if (r->sid) {
5113                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5114                         }
5115                         ndr->depth--;
5116                 break;
5117
5118                 case NETR_DELTA_DELETE_ACCOUNT:
5119                         ndr_print_ptr(ndr, "sid", r->sid);
5120                         ndr->depth++;
5121                         if (r->sid) {
5122                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5123                         }
5124                         ndr->depth--;
5125                 break;
5126
5127                 case NETR_DELTA_SECRET:
5128                         ndr_print_ptr(ndr, "name", r->name);
5129                         ndr->depth++;
5130                         if (r->name) {
5131                                 ndr_print_string(ndr, "name", r->name);
5132                         }
5133                         ndr->depth--;
5134                 break;
5135
5136                 case NETR_DELTA_DELETE_SECRET:
5137                         ndr_print_ptr(ndr, "name", r->name);
5138                         ndr->depth++;
5139                         if (r->name) {
5140                                 ndr_print_string(ndr, "name", r->name);
5141                         }
5142                         ndr->depth--;
5143                 break;
5144
5145                 case NETR_DELTA_DELETE_GROUP2:
5146                         ndr_print_uint32(ndr, "rid", r->rid);
5147                 break;
5148
5149                 case NETR_DELTA_DELETE_USER2:
5150                         ndr_print_uint32(ndr, "rid", r->rid);
5151                 break;
5152
5153                 case NETR_DELTA_MODIFY_COUNT:
5154                 break;
5155
5156                 default:
5157                         ndr_print_bad_level(ndr, name, level);
5158         }
5159 }
5160
5161 static enum ndr_err_code ndr_push_netr_DELTA_ENUM(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM *r)
5162 {
5163         if (ndr_flags & NDR_SCALARS) {
5164                 NDR_CHECK(ndr_push_align(ndr, 4));
5165                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, r->delta_type));
5166                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5167                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5168                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_union, r->delta_type));
5169                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5170         }
5171         if (ndr_flags & NDR_BUFFERS) {
5172                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5173                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5174         }
5175         return NDR_ERR_SUCCESS;
5176 }
5177
5178 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM *r)
5179 {
5180         if (ndr_flags & NDR_SCALARS) {
5181                 NDR_CHECK(ndr_pull_align(ndr, 4));
5182                 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr, NDR_SCALARS, &r->delta_type));
5183                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5184                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5185                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_union, r->delta_type));
5186                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5187         }
5188         if (ndr_flags & NDR_BUFFERS) {
5189                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5190                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5191         }
5192         return NDR_ERR_SUCCESS;
5193 }
5194
5195 _PUBLIC_ void ndr_print_netr_DELTA_ENUM(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM *r)
5196 {
5197         ndr_print_struct(ndr, name, "netr_DELTA_ENUM");
5198         ndr->depth++;
5199         ndr_print_netr_DeltaEnum(ndr, "delta_type", r->delta_type);
5200         ndr_print_set_switch_value(ndr, &r->delta_id_union, r->delta_type);
5201         ndr_print_netr_DELTA_ID_UNION(ndr, "delta_id_union", &r->delta_id_union);
5202         ndr_print_set_switch_value(ndr, &r->delta_union, r->delta_type);
5203         ndr_print_netr_DELTA_UNION(ndr, "delta_union", &r->delta_union);
5204         ndr->depth--;
5205 }
5206
5207 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)
5208 {
5209         uint32_t cntr_delta_enum_1;
5210         if (ndr_flags & NDR_SCALARS) {
5211                 NDR_CHECK(ndr_push_align(ndr, 4));
5212                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5213                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delta_enum));
5214         }
5215         if (ndr_flags & NDR_BUFFERS) {
5216                 if (r->delta_enum) {
5217                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5218                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5219                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5220                         }
5221                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5222                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5223                         }
5224                 }
5225         }
5226         return NDR_ERR_SUCCESS;
5227 }
5228
5229 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r)
5230 {
5231         uint32_t _ptr_delta_enum;
5232         uint32_t cntr_delta_enum_1;
5233         TALLOC_CTX *_mem_save_delta_enum_0;
5234         TALLOC_CTX *_mem_save_delta_enum_1;
5235         if (ndr_flags & NDR_SCALARS) {
5236                 NDR_CHECK(ndr_pull_align(ndr, 4));
5237                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_deltas));
5238                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum));
5239                 if (_ptr_delta_enum) {
5240                         NDR_PULL_ALLOC(ndr, r->delta_enum);
5241                 } else {
5242                         r->delta_enum = NULL;
5243                 }
5244         }
5245         if (ndr_flags & NDR_BUFFERS) {
5246                 if (r->delta_enum) {
5247                         _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr);
5248                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5249                         NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum));
5250                         NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum));
5251                         _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr);
5252                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5253                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5254                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5255                         }
5256                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5257                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5258                         }
5259                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0);
5260                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_0, 0);
5261                 }
5262                 if (r->delta_enum) {
5263                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delta_enum, r->num_deltas));
5264                 }
5265         }
5266         return NDR_ERR_SUCCESS;
5267 }
5268
5269 _PUBLIC_ void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM_ARRAY *r)
5270 {
5271         uint32_t cntr_delta_enum_1;
5272         ndr_print_struct(ndr, name, "netr_DELTA_ENUM_ARRAY");
5273         ndr->depth++;
5274         ndr_print_uint32(ndr, "num_deltas", r->num_deltas);
5275         ndr_print_ptr(ndr, "delta_enum", r->delta_enum);
5276         ndr->depth++;
5277         if (r->delta_enum) {
5278                 ndr->print(ndr, "%s: ARRAY(%d)", "delta_enum", r->num_deltas);
5279                 ndr->depth++;
5280                 for (cntr_delta_enum_1=0;cntr_delta_enum_1<r->num_deltas;cntr_delta_enum_1++) {
5281                         char *idx_1=NULL;
5282                         if (asprintf(&idx_1, "[%d]", cntr_delta_enum_1) != -1) {
5283                                 ndr_print_netr_DELTA_ENUM(ndr, "delta_enum", &r->delta_enum[cntr_delta_enum_1]);
5284                                 free(idx_1);
5285                         }
5286                 }
5287                 ndr->depth--;
5288         }
5289         ndr->depth--;
5290         ndr->depth--;
5291 }
5292
5293 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)
5294 {
5295         {
5296                 uint32_t _flags_save_STRUCT = ndr->flags;
5297                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5298                 if (ndr_flags & NDR_SCALARS) {
5299                         NDR_CHECK(ndr_push_align(ndr, 4));
5300                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5301                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timecreated));
5302                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number));
5303                 }
5304                 if (ndr_flags & NDR_BUFFERS) {
5305                 }
5306                 ndr->flags = _flags_save_STRUCT;
5307         }
5308         return NDR_ERR_SUCCESS;
5309 }
5310
5311 static enum ndr_err_code ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r)
5312 {
5313         {
5314                 uint32_t _flags_save_STRUCT = ndr->flags;
5315                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5316                 if (ndr_flags & NDR_SCALARS) {
5317                         NDR_CHECK(ndr_pull_align(ndr, 4));
5318                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5319                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated));
5320                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number));
5321                 }
5322                 if (ndr_flags & NDR_BUFFERS) {
5323                 }
5324                 ndr->flags = _flags_save_STRUCT;
5325         }
5326         return NDR_ERR_SUCCESS;
5327 }
5328
5329 _PUBLIC_ void ndr_print_netr_UAS_INFO_0(struct ndr_print *ndr, const char *name, const struct netr_UAS_INFO_0 *r)
5330 {
5331         ndr_print_struct(ndr, name, "netr_UAS_INFO_0");
5332         {
5333                 uint32_t _flags_save_STRUCT = ndr->flags;
5334                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5335                 ndr->depth++;
5336                 ndr_print_array_uint8(ndr, "computer_name", r->computer_name, 16);
5337                 ndr_print_uint32(ndr, "timecreated", r->timecreated);
5338                 ndr_print_uint32(ndr, "serial_number", r->serial_number);
5339                 ndr->depth--;
5340                 ndr->flags = _flags_save_STRUCT;
5341         }
5342 }
5343
5344 static enum ndr_err_code ndr_push_netr_AccountBuffer(struct ndr_push *ndr, int ndr_flags, const struct netr_AccountBuffer *r)
5345 {
5346         if (ndr_flags & NDR_SCALARS) {
5347                 NDR_CHECK(ndr_push_align(ndr, 4));
5348                 {
5349                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5350                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5351                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
5352                         ndr->flags = _flags_save_DATA_BLOB;
5353                 }
5354         }
5355         if (ndr_flags & NDR_BUFFERS) {
5356         }
5357         return NDR_ERR_SUCCESS;
5358 }
5359
5360 static enum ndr_err_code ndr_pull_netr_AccountBuffer(struct ndr_pull *ndr, int ndr_flags, struct netr_AccountBuffer *r)
5361 {
5362         if (ndr_flags & NDR_SCALARS) {
5363                 NDR_CHECK(ndr_pull_align(ndr, 4));
5364                 {
5365                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5366                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5367                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
5368                         ndr->flags = _flags_save_DATA_BLOB;
5369                 }
5370         }
5371         if (ndr_flags & NDR_BUFFERS) {
5372         }
5373         return NDR_ERR_SUCCESS;
5374 }
5375
5376 _PUBLIC_ void ndr_print_netr_AccountBuffer(struct ndr_print *ndr, const char *name, const struct netr_AccountBuffer *r)
5377 {
5378         ndr_print_struct(ndr, name, "netr_AccountBuffer");
5379         ndr->depth++;
5380         ndr_print_DATA_BLOB(ndr, "blob", r->blob);
5381         ndr->depth--;
5382 }
5383
5384 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)
5385 {
5386         if (ndr_flags & NDR_SCALARS) {
5387                 NDR_CHECK(ndr_push_align(ndr, 4));
5388                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
5389                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5390         }
5391         if (ndr_flags & NDR_BUFFERS) {
5392         }
5393         return NDR_ERR_SUCCESS;
5394 }
5395
5396 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_1 *r)
5397 {
5398         if (ndr_flags & NDR_SCALARS) {
5399                 NDR_CHECK(ndr_pull_align(ndr, 4));
5400                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
5401                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5402         }
5403         if (ndr_flags & NDR_BUFFERS) {
5404         }
5405         return NDR_ERR_SUCCESS;
5406 }
5407
5408 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_1 *r)
5409 {
5410         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_1");
5411         ndr->depth++;
5412         ndr_print_uint32(ndr, "flags", r->flags);
5413         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5414         ndr->depth--;
5415 }
5416
5417 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)
5418 {
5419         if (ndr_flags & NDR_SCALARS) {
5420                 NDR_CHECK(ndr_push_align(ndr, 4));
5421                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
5422                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5423                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_dc_name));
5424                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->tc_connection_status));
5425         }
5426         if (ndr_flags & NDR_BUFFERS) {
5427                 if (r->trusted_dc_name) {
5428                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5429                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5430                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5431                         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));
5432                 }
5433         }
5434         return NDR_ERR_SUCCESS;
5435 }
5436
5437 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r)
5438 {
5439         uint32_t _ptr_trusted_dc_name;
5440         TALLOC_CTX *_mem_save_trusted_dc_name_0;
5441         if (ndr_flags & NDR_SCALARS) {
5442                 NDR_CHECK(ndr_pull_align(ndr, 4));
5443                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
5444                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5445                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_dc_name));
5446                 if (_ptr_trusted_dc_name) {
5447                         NDR_PULL_ALLOC(ndr, r->trusted_dc_name);
5448                 } else {
5449                         r->trusted_dc_name = NULL;
5450                 }
5451                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->tc_connection_status));
5452         }
5453         if (ndr_flags & NDR_BUFFERS) {
5454                 if (r->trusted_dc_name) {
5455                         _mem_save_trusted_dc_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5456                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_dc_name, 0);
5457                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5458                         NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5459                         if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5460                                 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));
5461                         }
5462                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5463                         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));
5464                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_dc_name_0, 0);
5465                 }
5466         }
5467         return NDR_ERR_SUCCESS;
5468 }
5469
5470 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_2 *r)
5471 {
5472         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_2");
5473         ndr->depth++;
5474         ndr_print_uint32(ndr, "flags", r->flags);
5475         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5476         ndr_print_ptr(ndr, "trusted_dc_name", r->trusted_dc_name);
5477         ndr->depth++;
5478         if (r->trusted_dc_name) {
5479                 ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5480         }
5481         ndr->depth--;
5482         ndr_print_uint32(ndr, "tc_connection_status", r->tc_connection_status);
5483         ndr->depth--;
5484 }
5485
5486 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)
5487 {
5488         if (ndr_flags & NDR_SCALARS) {
5489                 NDR_CHECK(ndr_push_align(ndr, 4));
5490                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
5491                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_attempts));
5492                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
5493                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
5494                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
5495                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
5496                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
5497         }
5498         if (ndr_flags & NDR_BUFFERS) {
5499         }
5500         return NDR_ERR_SUCCESS;
5501 }
5502
5503 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_3 *r)
5504 {
5505         if (ndr_flags & NDR_SCALARS) {
5506                 NDR_CHECK(ndr_pull_align(ndr, 4));
5507                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
5508                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_attempts));
5509                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
5510                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
5511                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
5512                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
5513                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
5514         }
5515         if (ndr_flags & NDR_BUFFERS) {
5516         }
5517         return NDR_ERR_SUCCESS;
5518 }
5519
5520 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_3 *r)
5521 {
5522         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_3");
5523         ndr->depth++;
5524         ndr_print_uint32(ndr, "flags", r->flags);
5525         ndr_print_uint32(ndr, "logon_attempts", r->logon_attempts);
5526         ndr_print_uint32(ndr, "unknown1", r->unknown1);
5527         ndr_print_uint32(ndr, "unknown2", r->unknown2);
5528         ndr_print_uint32(ndr, "unknown3", r->unknown3);
5529         ndr_print_uint32(ndr, "unknown4", r->unknown4);
5530         ndr_print_uint32(ndr, "unknown5", r->unknown5);
5531         ndr->depth--;
5532 }
5533
5534 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)
5535 {
5536         if (ndr_flags & NDR_SCALARS) {
5537                 int level = ndr_push_get_switch_value(ndr, r);
5538                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5539                 switch (level) {
5540                         case 1: {
5541                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5542                         break; }
5543
5544                         case 2: {
5545                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5546                         break; }
5547
5548                         case 3: {
5549                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5550                         break; }
5551
5552                         default:
5553                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5554                 }
5555         }
5556         if (ndr_flags & NDR_BUFFERS) {
5557                 int level = ndr_push_get_switch_value(ndr, r);
5558                 switch (level) {
5559                         case 1:
5560                                 if (r->info1) {
5561                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5562                                 }
5563                         break;
5564
5565                         case 2:
5566                                 if (r->info2) {
5567                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5568                                 }
5569                         break;
5570
5571                         case 3:
5572                                 if (r->info3) {
5573                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5574                                 }
5575                         break;
5576
5577                         default:
5578                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5579                 }
5580         }
5581         return NDR_ERR_SUCCESS;
5582 }
5583
5584 static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_QUERY_INFORMATION *r)
5585 {
5586         int level;
5587         uint32_t _level;
5588         TALLOC_CTX *_mem_save_info1_0;
5589         TALLOC_CTX *_mem_save_info2_0;
5590         TALLOC_CTX *_mem_save_info3_0;
5591         level = ndr_pull_get_switch_value(ndr, r);
5592         if (ndr_flags & NDR_SCALARS) {
5593                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5594                 if (_level != level) {
5595                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5596                 }
5597                 switch (level) {
5598                         case 1: {
5599                                 uint32_t _ptr_info1;
5600                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5601                                 if (_ptr_info1) {
5602                                         NDR_PULL_ALLOC(ndr, r->info1);
5603                                 } else {
5604                                         r->info1 = NULL;
5605                                 }
5606                         break; }
5607
5608                         case 2: {
5609                                 uint32_t _ptr_info2;
5610                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5611                                 if (_ptr_info2) {
5612                                         NDR_PULL_ALLOC(ndr, r->info2);
5613                                 } else {
5614                                         r->info2 = NULL;
5615                                 }
5616                         break; }
5617
5618                         case 3: {
5619                                 uint32_t _ptr_info3;
5620                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5621                                 if (_ptr_info3) {
5622                                         NDR_PULL_ALLOC(ndr, r->info3);
5623                                 } else {
5624                                         r->info3 = NULL;
5625                                 }
5626                         break; }
5627
5628                         default:
5629                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5630                 }
5631         }
5632         if (ndr_flags & NDR_BUFFERS) {
5633                 switch (level) {
5634                         case 1:
5635                                 if (r->info1) {
5636                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5637                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5638                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5639                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5640                                 }
5641                         break;
5642
5643                         case 2:
5644                                 if (r->info2) {
5645                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5646                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5647                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5648                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5649                                 }
5650                         break;
5651
5652                         case 3:
5653                                 if (r->info3) {
5654                                         _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5655                                         NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5656                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5657                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5658                                 }
5659                         break;
5660
5661                         default:
5662                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5663                 }
5664         }
5665         return NDR_ERR_SUCCESS;
5666 }
5667
5668 _PUBLIC_ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_QUERY_INFORMATION *r)
5669 {
5670         int level;
5671         level = ndr_print_get_switch_value(ndr, r);
5672         ndr_print_union(ndr, name, level, "netr_CONTROL_QUERY_INFORMATION");
5673         switch (level) {
5674                 case 1:
5675                         ndr_print_ptr(ndr, "info1", r->info1);
5676                         ndr->depth++;
5677                         if (r->info1) {
5678                                 ndr_print_netr_NETLOGON_INFO_1(ndr, "info1", r->info1);
5679                         }
5680                         ndr->depth--;
5681                 break;
5682
5683                 case 2:
5684                         ndr_print_ptr(ndr, "info2", r->info2);
5685                         ndr->depth++;
5686                         if (r->info2) {
5687                                 ndr_print_netr_NETLOGON_INFO_2(ndr, "info2", r->info2);
5688                         }
5689                         ndr->depth--;
5690                 break;
5691
5692                 case 3:
5693                         ndr_print_ptr(ndr, "info3", r->info3);
5694                         ndr->depth++;
5695                         if (r->info3) {
5696                                 ndr_print_netr_NETLOGON_INFO_3(ndr, "info3", r->info3);
5697                         }
5698                         ndr->depth--;
5699                 break;
5700
5701                 default:
5702                         ndr_print_bad_level(ndr, name, level);
5703         }
5704 }
5705
5706 static enum ndr_err_code ndr_push_netr_LogonControlCode(struct ndr_push *ndr, int ndr_flags, enum netr_LogonControlCode r)
5707 {
5708         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5709         return NDR_ERR_SUCCESS;
5710 }
5711
5712 static enum ndr_err_code ndr_pull_netr_LogonControlCode(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonControlCode *r)
5713 {
5714         uint32_t v;
5715         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5716         *r = v;
5717         return NDR_ERR_SUCCESS;
5718 }
5719
5720 _PUBLIC_ void ndr_print_netr_LogonControlCode(struct ndr_print *ndr, const char *name, enum netr_LogonControlCode r)
5721 {
5722         const char *val = NULL;
5723
5724         switch (r) {
5725                 case NETLOGON_CONTROL_SYNC: val = "NETLOGON_CONTROL_SYNC"; break;
5726                 case NETLOGON_CONTROL_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break;
5727                 case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break;
5728                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
5729                 case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break;
5730         }
5731         ndr_print_enum(ndr, name, "ENUM", val, r);
5732 }
5733
5734 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)
5735 {
5736         if (ndr_flags & NDR_SCALARS) {
5737                 int level = ndr_push_get_switch_value(ndr, r);
5738                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5739                 switch (level) {
5740                         case NETLOGON_CONTROL_REDISCOVER: {
5741                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5742                         break; }
5743
5744                         case NETLOGON_CONTROL_TC_QUERY: {
5745                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5746                         break; }
5747
5748                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5749                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5750                         break; }
5751
5752                         case NETLOGON_CONTROL_SET_DBFLAG: {
5753                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level));
5754                         break; }
5755
5756                         default:
5757                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5758                 }
5759         }
5760         if (ndr_flags & NDR_BUFFERS) {
5761                 int level = ndr_push_get_switch_value(ndr, r);
5762                 switch (level) {
5763                         case NETLOGON_CONTROL_REDISCOVER:
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_TC_QUERY:
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_TRANSPORT_NOTIFY:
5782                                 if (r->domain) {
5783                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5784                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5785                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5786                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5787                                 }
5788                         break;
5789
5790                         case NETLOGON_CONTROL_SET_DBFLAG:
5791                         break;
5792
5793                         default:
5794                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5795                 }
5796         }
5797         return NDR_ERR_SUCCESS;
5798 }
5799
5800 static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r)
5801 {
5802         int level;
5803         uint32_t _level;
5804         TALLOC_CTX *_mem_save_domain_0;
5805         level = ndr_pull_get_switch_value(ndr, r);
5806         if (ndr_flags & NDR_SCALARS) {
5807                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5808                 if (_level != level) {
5809                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5810                 }
5811                 switch (level) {
5812                         case NETLOGON_CONTROL_REDISCOVER: {
5813                                 uint32_t _ptr_domain;
5814                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5815                                 if (_ptr_domain) {
5816                                         NDR_PULL_ALLOC(ndr, r->domain);
5817                                 } else {
5818                                         r->domain = NULL;
5819                                 }
5820                         break; }
5821
5822                         case NETLOGON_CONTROL_TC_QUERY: {
5823                                 uint32_t _ptr_domain;
5824                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5825                                 if (_ptr_domain) {
5826                                         NDR_PULL_ALLOC(ndr, r->domain);
5827                                 } else {
5828                                         r->domain = NULL;
5829                                 }
5830                         break; }
5831
5832                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5833                                 uint32_t _ptr_domain;
5834                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5835                                 if (_ptr_domain) {
5836                                         NDR_PULL_ALLOC(ndr, r->domain);
5837                                 } else {
5838                                         r->domain = NULL;
5839                                 }
5840                         break; }
5841
5842                         case NETLOGON_CONTROL_SET_DBFLAG: {
5843                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level));
5844                         break; }
5845
5846                         default:
5847                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5848                 }
5849         }
5850         if (ndr_flags & NDR_BUFFERS) {
5851                 switch (level) {
5852                         case NETLOGON_CONTROL_REDISCOVER:
5853                                 if (r->domain) {
5854                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5855                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5856                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5857                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5858                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5859                                                 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));
5860                                         }
5861                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5862                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5863                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5864                                 }
5865                         break;
5866
5867                         case NETLOGON_CONTROL_TC_QUERY:
5868                                 if (r->domain) {
5869                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5870                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5871                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5872                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5873                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5874                                                 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));
5875                                         }
5876                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5877                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5878                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5879                                 }
5880                         break;
5881
5882                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5883                                 if (r->domain) {
5884                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5885                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5886                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5887                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5888                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5889                                                 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));
5890                                         }
5891                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5892                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5893                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5894                                 }
5895                         break;
5896
5897                         case NETLOGON_CONTROL_SET_DBFLAG:
5898                         break;
5899
5900                         default:
5901                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5902                 }
5903         }
5904         return NDR_ERR_SUCCESS;
5905 }
5906
5907 _PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r)
5908 {
5909         int level;
5910         level = ndr_print_get_switch_value(ndr, r);
5911         ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION");
5912         switch (level) {
5913                 case NETLOGON_CONTROL_REDISCOVER:
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_TC_QUERY:
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_TRANSPORT_NOTIFY:
5932                         ndr_print_ptr(ndr, "domain", r->domain);
5933                         ndr->depth++;
5934                         if (r->domain) {
5935                                 ndr_print_string(ndr, "domain", r->domain);
5936                         }
5937                         ndr->depth--;
5938                 break;
5939
5940                 case NETLOGON_CONTROL_SET_DBFLAG:
5941                         ndr_print_uint32(ndr, "debug_level", r->debug_level);
5942                 break;
5943
5944                 default:
5945                         ndr_print_bad_level(ndr, name, level);
5946         }
5947 }
5948
5949 static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
5950 {
5951         if (ndr_flags & NDR_SCALARS) {
5952                 NDR_CHECK(ndr_push_align(ndr, 4));
5953                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
5954                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
5955         }
5956         if (ndr_flags & NDR_BUFFERS) {
5957                 if (r->data) {
5958                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
5959                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
5960                 }
5961         }
5962         return NDR_ERR_SUCCESS;
5963 }
5964
5965 static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
5966 {
5967         uint32_t _ptr_data;
5968         TALLOC_CTX *_mem_save_data_0;
5969         if (ndr_flags & NDR_SCALARS) {
5970                 NDR_CHECK(ndr_pull_align(ndr, 4));
5971                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
5972                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
5973                 if (_ptr_data) {
5974                         NDR_PULL_ALLOC(ndr, r->data);
5975                 } else {
5976                         r->data = NULL;
5977                 }
5978         }
5979         if (ndr_flags & NDR_BUFFERS) {
5980                 if (r->data) {
5981                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
5982                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
5983                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
5984                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
5985                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
5986                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
5987                 }
5988                 if (r->data) {
5989                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
5990                 }
5991         }
5992         return NDR_ERR_SUCCESS;
5993 }
5994
5995 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
5996 {
5997         ndr_print_struct(ndr, name, "netr_Blob");
5998         ndr->depth++;
5999         ndr_print_uint32(ndr, "length", r->length);
6000         ndr_print_ptr(ndr, "data", r->data);
6001         ndr->depth++;
6002         if (r->data) {
6003                 ndr_print_array_uint8(ndr, "data", r->data, r->length);
6004         }
6005         ndr->depth--;
6006         ndr->depth--;
6007 }
6008
6009 static enum ndr_err_code ndr_push_netr_DsRGetDCName_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6010 {
6011         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6012         return NDR_ERR_SUCCESS;
6013 }
6014
6015 static enum ndr_err_code ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6016 {
6017         uint32_t v;
6018         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6019         *r = v;
6020         return NDR_ERR_SUCCESS;
6021 }
6022
6023 _PUBLIC_ void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char *name, uint32_t r)
6024 {
6025         ndr_print_uint32(ndr, name, r);
6026         ndr->depth++;
6027         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY, r);
6028         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED, r);
6029         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED, r);
6030         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED, r);
6031         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED, r);
6032         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY, r);
6033         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED, r);
6034         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED, r);
6035         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED, r);
6036         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED, r);
6037         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED, r);
6038         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF, r);
6039         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED, r);
6040         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME, r);
6041         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME, r);
6042         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE, r);
6043         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED, r);
6044         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME, r);
6045         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME, r);
6046         ndr->depth--;
6047 }
6048
6049 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType r)
6050 {
6051         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6052         return NDR_ERR_SUCCESS;
6053 }
6054
6055 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType *r)
6056 {
6057         uint32_t v;
6058         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6059         *r = v;
6060         return NDR_ERR_SUCCESS;
6061 }
6062
6063 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const char *name, enum netr_DsRGetDCNameInfo_AddressType r)
6064 {
6065         const char *val = NULL;
6066
6067         switch (r) {
6068                 case DS_ADDRESS_TYPE_INET: val = "DS_ADDRESS_TYPE_INET"; break;
6069                 case DS_ADDRESS_TYPE_NETBIOS: val = "DS_ADDRESS_TYPE_NETBIOS"; break;
6070         }
6071         ndr_print_enum(ndr, name, "ENUM", val, r);
6072 }
6073
6074 static enum ndr_err_code ndr_push_netr_DsR_DcFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6075 {
6076         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6077         return NDR_ERR_SUCCESS;
6078 }
6079
6080 static enum ndr_err_code ndr_pull_netr_DsR_DcFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6081 {
6082         uint32_t v;
6083         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6084         *r = v;
6085         return NDR_ERR_SUCCESS;
6086 }
6087
6088 _PUBLIC_ void ndr_print_netr_DsR_DcFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6089 {
6090         ndr_print_uint32(ndr, name, r);
6091         ndr->depth++;
6092         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC, r);
6093         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC, r);
6094         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP, r);
6095         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS, r);
6096         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC, r);
6097         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV, r);
6098         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST, r);
6099         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE, r);
6100         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV, r);
6101         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC, r);
6102         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6, r);
6103         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6, r);
6104         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER, r);
6105         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN, r);
6106         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST, r);
6107         ndr->depth--;
6108 }
6109
6110 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
6111 {
6112         if (ndr_flags & NDR_SCALARS) {
6113                 NDR_CHECK(ndr_push_align(ndr, 4));
6114                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
6115                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
6116                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, r->dc_address_type));
6117                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6118                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6119                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
6120                 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr, NDR_SCALARS, r->dc_flags));
6121                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
6122                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
6123         }
6124         if (ndr_flags & NDR_BUFFERS) {
6125                 if (r->dc_unc) {
6126                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6127                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6128                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6129                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6130                 }
6131                 if (r->dc_address) {
6132                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6133                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6134                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6135                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6136                 }
6137                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6138                 if (r->domain_name) {
6139                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6140                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6141                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6142                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6143                 }
6144                 if (r->forest_name) {
6145                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6146                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6147                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6148                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6149                 }
6150                 if (r->dc_site_name) {
6151                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6152                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6153                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6154                         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));
6155                 }
6156                 if (r->client_site_name) {
6157                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6158                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6159                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6160                         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));
6161                 }
6162         }
6163         return NDR_ERR_SUCCESS;
6164 }
6165
6166 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
6167 {
6168         uint32_t _ptr_dc_unc;
6169         TALLOC_CTX *_mem_save_dc_unc_0;
6170         uint32_t _ptr_dc_address;
6171         TALLOC_CTX *_mem_save_dc_address_0;
6172         uint32_t _ptr_domain_name;
6173         TALLOC_CTX *_mem_save_domain_name_0;
6174         uint32_t _ptr_forest_name;
6175         TALLOC_CTX *_mem_save_forest_name_0;
6176         uint32_t _ptr_dc_site_name;
6177         TALLOC_CTX *_mem_save_dc_site_name_0;
6178         uint32_t _ptr_client_site_name;
6179         TALLOC_CTX *_mem_save_client_site_name_0;
6180         if (ndr_flags & NDR_SCALARS) {
6181                 NDR_CHECK(ndr_pull_align(ndr, 4));
6182                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6183                 if (_ptr_dc_unc) {
6184                         NDR_PULL_ALLOC(ndr, r->dc_unc);
6185                 } else {
6186                         r->dc_unc = NULL;
6187                 }
6188                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6189                 if (_ptr_dc_address) {
6190                         NDR_PULL_ALLOC(ndr, r->dc_address);
6191                 } else {
6192                         r->dc_address = NULL;
6193                 }
6194                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, &r->dc_address_type));
6195                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6196                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6197                 if (_ptr_domain_name) {
6198                         NDR_PULL_ALLOC(ndr, r->domain_name);
6199                 } else {
6200                         r->domain_name = NULL;
6201                 }
6202                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
6203                 if (_ptr_forest_name) {
6204                         NDR_PULL_ALLOC(ndr, r->forest_name);
6205                 } else {
6206                         r->forest_name = NULL;
6207                 }
6208                 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr, NDR_SCALARS, &r->dc_flags));
6209                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
6210                 if (_ptr_dc_site_name) {
6211                         NDR_PULL_ALLOC(ndr, r->dc_site_name);
6212                 } else {
6213                         r->dc_site_name = NULL;
6214                 }
6215                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
6216                 if (_ptr_client_site_name) {
6217                         NDR_PULL_ALLOC(ndr, r->client_site_name);
6218                 } else {
6219                         r->client_site_name = NULL;
6220                 }
6221         }
6222         if (ndr_flags & NDR_BUFFERS) {
6223                 if (r->dc_unc) {
6224                         _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6225                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
6226                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
6227                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
6228                         if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
6229                                 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));
6230                         }
6231                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
6232                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
6233                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
6234                 }
6235                 if (r->dc_address) {
6236                         _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
6237                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
6238                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
6239                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
6240                         if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
6241                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_address), ndr_get_array_length(ndr, &r->dc_address));
6242                         }
6243                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
6244                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
6245                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
6246                 }
6247                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6248                 if (r->domain_name) {
6249                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6250                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6251                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6252                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6253                         if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
6254                                 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));
6255                         }
6256                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
6257                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
6258                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6259                 }
6260                 if (r->forest_name) {
6261                         _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6262                         NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
6263                         NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
6264                         NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
6265                         if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
6266                                 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));
6267                         }
6268                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
6269                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
6270                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
6271                 }
6272                 if (r->dc_site_name) {
6273                         _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6274                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
6275                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
6276                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
6277                         if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
6278                                 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));
6279                         }
6280                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
6281                         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));
6282                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
6283                 }
6284                 if (r->client_site_name) {
6285                         _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6286                         NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
6287                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
6288                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
6289                         if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
6290                                 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));
6291                         }
6292                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
6293                         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));
6294                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
6295                 }
6296         }
6297         return NDR_ERR_SUCCESS;
6298 }
6299
6300 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
6301 {
6302         ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
6303         ndr->depth++;
6304         ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
6305         ndr->depth++;
6306         if (r->dc_unc) {
6307                 ndr_print_string(ndr, "dc_unc", r->dc_unc);
6308         }
6309         ndr->depth--;
6310         ndr_print_ptr(ndr, "dc_address", r->dc_address);
6311         ndr->depth++;
6312         if (r->dc_address) {
6313                 ndr_print_string(ndr, "dc_address", r->dc_address);
6314         }
6315         ndr->depth--;
6316         ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr, "dc_address_type", r->dc_address_type);
6317         ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
6318         ndr_print_ptr(ndr, "domain_name", r->domain_name);
6319         ndr->depth++;
6320         if (r->domain_name) {
6321                 ndr_print_string(ndr, "domain_name", r->domain_name);
6322         }
6323         ndr->depth--;
6324         ndr_print_ptr(ndr, "forest_name", r->forest_name);
6325         ndr->depth++;
6326         if (r->forest_name) {
6327                 ndr_print_string(ndr, "forest_name", r->forest_name);
6328         }
6329         ndr->depth--;
6330         ndr_print_netr_DsR_DcFlags(ndr, "dc_flags", r->dc_flags);
6331         ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
6332         ndr->depth++;
6333         if (r->dc_site_name) {
6334                 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
6335         }
6336         ndr->depth--;
6337         ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
6338         ndr->depth++;
6339         if (r->client_site_name) {
6340                 ndr_print_string(ndr, "client_site_name", r->client_site_name);
6341         }
6342         ndr->depth--;
6343         ndr->depth--;
6344 }
6345
6346 static enum ndr_err_code ndr_push_netr_BinaryString(struct ndr_push *ndr, int ndr_flags, const struct netr_BinaryString *r)
6347 {
6348         uint32_t cntr_data_1;
6349         {
6350                 uint32_t _flags_save_STRUCT = ndr->flags;
6351                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6352                 if (ndr_flags & NDR_SCALARS) {
6353                         NDR_CHECK(ndr_push_align(ndr, 4));
6354                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
6355                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
6356                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6357                 }
6358                 if (ndr_flags & NDR_BUFFERS) {
6359                         if (r->data) {
6360                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
6361                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6362                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
6363                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6364                                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data[cntr_data_1]));
6365                                 }
6366                         }
6367                 }
6368                 ndr->flags = _flags_save_STRUCT;
6369         }
6370         return NDR_ERR_SUCCESS;
6371 }
6372
6373 static enum ndr_err_code ndr_pull_netr_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct netr_BinaryString *r)
6374 {
6375         uint32_t _ptr_data;
6376         uint32_t cntr_data_1;
6377         TALLOC_CTX *_mem_save_data_0;
6378         TALLOC_CTX *_mem_save_data_1;
6379         {
6380                 uint32_t _flags_save_STRUCT = ndr->flags;
6381                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6382                 if (ndr_flags & NDR_SCALARS) {
6383                         NDR_CHECK(ndr_pull_align(ndr, 4));
6384                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
6385                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
6386                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6387                         if (_ptr_data) {
6388                                 NDR_PULL_ALLOC(ndr, r->data);
6389                         } else {
6390                                 r->data = NULL;
6391                         }
6392                 }
6393                 if (ndr_flags & NDR_BUFFERS) {
6394                         if (r->data) {
6395                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6396                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6397                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6398                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
6399                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
6400                                         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));
6401                                 }
6402                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6403                                 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
6404                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6405                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6406                                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
6407                                 }
6408                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
6409                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6410                         }
6411                         if (r->data) {
6412                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size / 2));
6413                         }
6414                         if (r->data) {
6415                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length / 2));
6416                         }
6417                 }
6418                 ndr->flags = _flags_save_STRUCT;
6419         }
6420         return NDR_ERR_SUCCESS;
6421 }
6422
6423 _PUBLIC_ void ndr_print_netr_BinaryString(struct ndr_print *ndr, const char *name, const struct netr_BinaryString *r)
6424 {
6425         uint32_t cntr_data_1;
6426         ndr_print_struct(ndr, name, "netr_BinaryString");
6427         {
6428                 uint32_t _flags_save_STRUCT = ndr->flags;
6429                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6430                 ndr->depth++;
6431                 ndr_print_uint16(ndr, "length", r->length);
6432                 ndr_print_uint16(ndr, "size", r->size);
6433                 ndr_print_ptr(ndr, "data", r->data);
6434                 ndr->depth++;
6435                 if (r->data) {
6436                         ndr->print(ndr, "%s: ARRAY(%d)", "data", r->length / 2);
6437                         ndr->depth++;
6438                         for (cntr_data_1=0;cntr_data_1<r->length / 2;cntr_data_1++) {
6439                                 char *idx_1=NULL;
6440                                 if (asprintf(&idx_1, "[%d]", cntr_data_1) != -1) {
6441                                         ndr_print_uint16(ndr, "data", r->data[cntr_data_1]);
6442                                         free(idx_1);
6443                                 }
6444                         }
6445                         ndr->depth--;
6446                 }
6447                 ndr->depth--;
6448                 ndr->depth--;
6449                 ndr->flags = _flags_save_STRUCT;
6450         }
6451 }
6452
6453 static enum ndr_err_code ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r)
6454 {
6455         uint32_t cntr_unknown7_0;
6456         if (ndr_flags & NDR_SCALARS) {
6457                 NDR_CHECK(ndr_push_align(ndr, 4));
6458                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6459                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain));
6460                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site));
6461                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1));
6462                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2));
6463                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3));
6464                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4));
6465                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6466                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product));
6467                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6468                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6469                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6470                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0]));
6471                 }
6472         }
6473         if (ndr_flags & NDR_BUFFERS) {
6474                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6475                 if (r->workstation_domain) {
6476                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6477                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6478                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6479                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6480                 }
6481                 if (r->workstation_site) {
6482                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6483                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6484                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6485                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6486                 }
6487                 if (r->unknown1) {
6488                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6489                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6490                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6491                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6492                 }
6493                 if (r->unknown2) {
6494                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6495                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6496                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6497                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6498                 }
6499                 if (r->unknown3) {
6500                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6501                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6502                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6503                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6504                 }
6505                 if (r->unknown4) {
6506                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6507                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6508                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6509                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6510                 }
6511                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6512                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product));
6513                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6514                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6515         }
6516         return NDR_ERR_SUCCESS;
6517 }
6518
6519 static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r)
6520 {
6521         uint32_t _ptr_workstation_domain;
6522         TALLOC_CTX *_mem_save_workstation_domain_0;
6523         uint32_t _ptr_workstation_site;
6524         TALLOC_CTX *_mem_save_workstation_site_0;
6525         uint32_t _ptr_unknown1;
6526         TALLOC_CTX *_mem_save_unknown1_0;
6527         uint32_t _ptr_unknown2;
6528         TALLOC_CTX *_mem_save_unknown2_0;
6529         uint32_t _ptr_unknown3;
6530         TALLOC_CTX *_mem_save_unknown3_0;
6531         uint32_t _ptr_unknown4;
6532         TALLOC_CTX *_mem_save_unknown4_0;
6533         uint32_t cntr_unknown7_0;
6534         if (ndr_flags & NDR_SCALARS) {
6535                 NDR_CHECK(ndr_pull_align(ndr, 4));
6536                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6537                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain));
6538                 if (_ptr_workstation_domain) {
6539                         NDR_PULL_ALLOC(ndr, r->workstation_domain);
6540                 } else {
6541                         r->workstation_domain = NULL;
6542                 }
6543                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site));
6544                 if (_ptr_workstation_site) {
6545                         NDR_PULL_ALLOC(ndr, r->workstation_site);
6546                 } else {
6547                         r->workstation_site = NULL;
6548                 }
6549                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1));
6550                 if (_ptr_unknown1) {
6551                         NDR_PULL_ALLOC(ndr, r->unknown1);
6552                 } else {
6553                         r->unknown1 = NULL;
6554                 }
6555                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2));
6556                 if (_ptr_unknown2) {
6557                         NDR_PULL_ALLOC(ndr, r->unknown2);
6558                 } else {
6559                         r->unknown2 = NULL;
6560                 }
6561                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3));
6562                 if (_ptr_unknown3) {
6563                         NDR_PULL_ALLOC(ndr, r->unknown3);
6564                 } else {
6565                         r->unknown3 = NULL;
6566                 }
6567                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
6568                 if (_ptr_unknown4) {
6569                         NDR_PULL_ALLOC(ndr, r->unknown4);
6570                 } else {
6571                         r->unknown4 = NULL;
6572                 }
6573                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6574                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product));
6575                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6576                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6577                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6578                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0]));
6579                 }
6580         }
6581         if (ndr_flags & NDR_BUFFERS) {
6582                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6583                 if (r->workstation_domain) {
6584                         _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6585                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0);
6586                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain));
6587                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain));
6588                         if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) {
6589                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_domain), ndr_get_array_length(ndr, &r->workstation_domain));
6590                         }
6591                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t)));
6592                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16));
6593                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0);
6594                 }
6595                 if (r->workstation_site) {
6596                         _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
6597                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0);
6598                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site));
6599                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site));
6600                         if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) {
6601                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_site), ndr_get_array_length(ndr, &r->workstation_site));
6602                         }
6603                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t)));
6604                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16));
6605                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0);
6606                 }
6607                 if (r->unknown1) {
6608                         _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6609                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0);
6610                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1));
6611                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1));
6612                         if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) {
6613                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown1), ndr_get_array_length(ndr, &r->unknown1));
6614                         }
6615                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t)));
6616                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16));
6617                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0);
6618                 }
6619                 if (r->unknown2) {
6620                         _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6621                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0);
6622                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2));
6623                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2));
6624                         if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) {
6625                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown2), ndr_get_array_length(ndr, &r->unknown2));
6626                         }
6627                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t)));
6628                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16));
6629                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0);
6630                 }
6631                 if (r->unknown3) {
6632                         _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6633                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0);
6634                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3));
6635                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3));
6636                         if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) {
6637                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown3), ndr_get_array_length(ndr, &r->unknown3));
6638                         }
6639                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t)));
6640                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16));
6641                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0);
6642                 }
6643                 if (r->unknown4) {
6644                         _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6645                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0);
6646                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4));
6647                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4));
6648                         if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) {
6649                                 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));
6650                         }
6651                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t)));
6652                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16));
6653                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0);
6654                 }
6655                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6656                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product));
6657                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6658                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6659         }
6660         return NDR_ERR_SUCCESS;
6661 }
6662
6663 _PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r)
6664 {
6665         uint32_t cntr_unknown7_0;
6666         ndr_print_struct(ndr, name, "netr_DomainQuery1");
6667         ndr->depth++;
6668         ndr_print_netr_Blob(ndr, "blob", &r->blob);
6669         ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain);
6670         ndr->depth++;
6671         if (r->workstation_domain) {
6672                 ndr_print_string(ndr, "workstation_domain", r->workstation_domain);
6673         }
6674         ndr->depth--;
6675         ndr_print_ptr(ndr, "workstation_site", r->workstation_site);
6676         ndr->depth++;
6677         if (r->workstation_site) {
6678                 ndr_print_string(ndr, "workstation_site", r->workstation_site);
6679         }
6680         ndr->depth--;
6681         ndr_print_ptr(ndr, "unknown1", r->unknown1);
6682         ndr->depth++;
6683         if (r->unknown1) {
6684                 ndr_print_string(ndr, "unknown1", r->unknown1);
6685         }
6686         ndr->depth--;
6687         ndr_print_ptr(ndr, "unknown2", r->unknown2);
6688         ndr->depth++;
6689         if (r->unknown2) {
6690                 ndr_print_string(ndr, "unknown2", r->unknown2);
6691         }
6692         ndr->depth--;
6693         ndr_print_ptr(ndr, "unknown3", r->unknown3);
6694         ndr->depth++;
6695         if (r->unknown3) {
6696                 ndr_print_string(ndr, "unknown3", r->unknown3);
6697         }
6698         ndr->depth--;
6699         ndr_print_ptr(ndr, "unknown4", r->unknown4);
6700         ndr->depth++;
6701         if (r->unknown4) {
6702                 ndr_print_string(ndr, "unknown4", r->unknown4);
6703         }
6704         ndr->depth--;
6705         ndr_print_netr_BinaryString(ndr, "blob2", &r->blob2);
6706         ndr_print_lsa_String(ndr, "product", &r->product);
6707         ndr_print_lsa_String(ndr, "unknown5", &r->unknown5);
6708         ndr_print_lsa_String(ndr, "unknown6", &r->unknown6);
6709         ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", 4);
6710         ndr->depth++;
6711         for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) {
6712                 char *idx_0=NULL;
6713                 if (asprintf(&idx_0, "[%d]", cntr_unknown7_0) != -1) {
6714                         ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]);
6715                         free(idx_0);
6716                 }
6717         }
6718         ndr->depth--;
6719         ndr->depth--;
6720 }
6721
6722 static enum ndr_err_code ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r)
6723 {
6724         if (ndr_flags & NDR_SCALARS) {
6725                 int level = ndr_push_get_switch_value(ndr, r);
6726                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6727                 switch (level) {
6728                         case 1: {
6729                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6730                         break; }
6731
6732                         case 2: {
6733                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6734                         break; }
6735
6736                         default:
6737                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6738                 }
6739         }
6740         if (ndr_flags & NDR_BUFFERS) {
6741                 int level = ndr_push_get_switch_value(ndr, r);
6742                 switch (level) {
6743                         case 1:
6744                                 if (r->query1) {
6745                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6746                                 }
6747                         break;
6748
6749                         case 2:
6750                                 if (r->query1) {
6751                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6752                                 }
6753                         break;
6754
6755                         default:
6756                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6757                 }
6758         }
6759         return NDR_ERR_SUCCESS;
6760 }
6761
6762 static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r)
6763 {
6764         int level;
6765         uint32_t _level;
6766         TALLOC_CTX *_mem_save_query1_0;
6767         level = ndr_pull_get_switch_value(ndr, r);
6768         if (ndr_flags & NDR_SCALARS) {
6769                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6770                 if (_level != level) {
6771                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6772                 }
6773                 switch (level) {
6774                         case 1: {
6775                                 uint32_t _ptr_query1;
6776                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6777                                 if (_ptr_query1) {
6778                                         NDR_PULL_ALLOC(ndr, r->query1);
6779                                 } else {
6780                                         r->query1 = NULL;
6781                                 }
6782                         break; }
6783
6784                         case 2: {
6785                                 uint32_t _ptr_query1;
6786                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6787                                 if (_ptr_query1) {
6788                                         NDR_PULL_ALLOC(ndr, r->query1);
6789                                 } else {
6790                                         r->query1 = NULL;
6791                                 }
6792                         break; }
6793
6794                         default:
6795                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6796                 }
6797         }
6798         if (ndr_flags & NDR_BUFFERS) {
6799                 switch (level) {
6800                         case 1:
6801                                 if (r->query1) {
6802                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6803                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6804                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6805                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6806                                 }
6807                         break;
6808
6809                         case 2:
6810                                 if (r->query1) {
6811                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6812                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6813                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6814                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6815                                 }
6816                         break;
6817
6818                         default:
6819                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6820                 }
6821         }
6822         return NDR_ERR_SUCCESS;
6823 }
6824
6825 _PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r)
6826 {
6827         int level;
6828         level = ndr_print_get_switch_value(ndr, r);
6829         ndr_print_union(ndr, name, level, "netr_DomainQuery");
6830         switch (level) {
6831                 case 1:
6832                         ndr_print_ptr(ndr, "query1", r->query1);
6833                         ndr->depth++;
6834                         if (r->query1) {
6835                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6836                         }
6837                         ndr->depth--;
6838                 break;
6839
6840                 case 2:
6841                         ndr_print_ptr(ndr, "query1", r->query1);
6842                         ndr->depth++;
6843                         if (r->query1) {
6844                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6845                         }
6846                         ndr->depth--;
6847                 break;
6848
6849                 default:
6850                         ndr_print_bad_level(ndr, name, level);
6851         }
6852 }
6853
6854 static enum ndr_err_code ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r)
6855 {
6856         uint32_t cntr_unknown1_0;
6857         uint32_t cntr_unknown_0;
6858         if (ndr_flags & NDR_SCALARS) {
6859                 NDR_CHECK(ndr_push_align(ndr, 4));
6860                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6861                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6862                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
6863                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
6864                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
6865                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6866                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6867                 }
6868                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6869                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6870                 }
6871         }
6872         if (ndr_flags & NDR_BUFFERS) {
6873                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6874                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6875                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6876                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
6877                 if (r->sid) {
6878                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6879                 }
6880                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6881                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6882                 }
6883         }
6884         return NDR_ERR_SUCCESS;
6885 }
6886
6887 static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r)
6888 {
6889         uint32_t _ptr_sid;
6890         TALLOC_CTX *_mem_save_sid_0;
6891         uint32_t cntr_unknown1_0;
6892         uint32_t cntr_unknown_0;
6893         if (ndr_flags & NDR_SCALARS) {
6894                 NDR_CHECK(ndr_pull_align(ndr, 4));
6895                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6896                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6897                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
6898                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
6899                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
6900                 if (_ptr_sid) {
6901                         NDR_PULL_ALLOC(ndr, r->sid);
6902                 } else {
6903                         r->sid = NULL;
6904                 }
6905                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6906                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6907                 }
6908                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6909                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
6910                 }
6911         }
6912         if (ndr_flags & NDR_BUFFERS) {
6913                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6914                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6915                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6916                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
6917                 if (r->sid) {
6918                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6919                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
6920                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6921                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
6922                 }
6923                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6924                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6925                 }
6926         }
6927         return NDR_ERR_SUCCESS;
6928 }
6929
6930 _PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r)
6931 {
6932         uint32_t cntr_unknown1_0;
6933         uint32_t cntr_unknown_0;
6934         ndr_print_struct(ndr, name, "netr_DomainTrustInfo");
6935         ndr->depth++;
6936         ndr_print_lsa_String(ndr, "domainname", &r->domainname);
6937         ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname);
6938         ndr_print_lsa_String(ndr, "forest", &r->forest);
6939         ndr_print_GUID(ndr, "guid", &r->guid);
6940         ndr_print_ptr(ndr, "sid", r->sid);
6941         ndr->depth++;
6942         if (r->sid) {
6943                 ndr_print_dom_sid2(ndr, "sid", r->sid);
6944         }
6945         ndr->depth--;
6946         ndr->print(ndr, "%s: ARRAY(%d)", "unknown1", 4);
6947         ndr->depth++;
6948         for (cntr_unknown1_0=0;cntr_unknown1_0<4;cntr_unknown1_0++) {
6949                 char *idx_0=NULL;
6950                 if (asprintf(&idx_0, "[%d]", cntr_unknown1_0) != -1) {
6951                         ndr_print_netr_BinaryString(ndr, "unknown1", &r->unknown1[cntr_unknown1_0]);
6952                         free(idx_0);
6953                 }
6954         }
6955         ndr->depth--;
6956         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 4);
6957         ndr->depth++;
6958         for (cntr_unknown_0=0;cntr_unknown_0<4;cntr_unknown_0++) {
6959                 char *idx_0=NULL;
6960                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
6961                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
6962                         free(idx_0);
6963                 }
6964         }
6965         ndr->depth--;
6966         ndr->depth--;
6967 }
6968
6969 static enum ndr_err_code ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r)
6970 {
6971         uint32_t cntr_trusts_1;
6972         uint32_t cntr_unknown_0;
6973         if (ndr_flags & NDR_SCALARS) {
6974                 NDR_CHECK(ndr_push_align(ndr, 4));
6975                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
6976                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
6977                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts));
6978                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
6979                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6980                 }
6981         }
6982         if (ndr_flags & NDR_BUFFERS) {
6983                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
6984                 if (r->trusts) {
6985                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
6986                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6987                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
6988                         }
6989                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6990                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
6991                         }
6992                 }
6993         }
6994         return NDR_ERR_SUCCESS;
6995 }
6996
6997 static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r)
6998 {
6999         uint32_t _ptr_trusts;
7000         uint32_t cntr_trusts_1;
7001         TALLOC_CTX *_mem_save_trusts_0;
7002         TALLOC_CTX *_mem_save_trusts_1;
7003         uint32_t cntr_unknown_0;
7004         if (ndr_flags & NDR_SCALARS) {
7005                 NDR_CHECK(ndr_pull_align(ndr, 4));
7006                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7007                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts));
7008                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts));
7009                 if (_ptr_trusts) {
7010                         NDR_PULL_ALLOC(ndr, r->trusts);
7011                 } else {
7012                         r->trusts = NULL;
7013                 }
7014                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
7015                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
7016                 }
7017         }
7018         if (ndr_flags & NDR_BUFFERS) {
7019                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7020                 if (r->trusts) {
7021                         _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
7022                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7023                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts));
7024                         NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts));
7025                         _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
7026                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7027                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7028                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7029                         }
7030                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7031                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7032                         }
7033                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
7034                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0);
7035                 }
7036                 if (r->trusts) {
7037                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts));
7038                 }
7039         }
7040         return NDR_ERR_SUCCESS;
7041 }
7042
7043 _PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r)
7044 {
7045         uint32_t cntr_trusts_1;
7046         uint32_t cntr_unknown_0;
7047         ndr_print_struct(ndr, name, "netr_DomainInfo1");
7048         ndr->depth++;
7049         ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo);
7050         ndr_print_uint32(ndr, "num_trusts", r->num_trusts);
7051         ndr_print_ptr(ndr, "trusts", r->trusts);
7052         ndr->depth++;
7053         if (r->trusts) {
7054                 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", r->num_trusts);
7055                 ndr->depth++;
7056                 for (cntr_trusts_1=0;cntr_trusts_1<r->num_trusts;cntr_trusts_1++) {
7057                         char *idx_1=NULL;
7058                         if (asprintf(&idx_1, "[%d]", cntr_trusts_1) != -1) {
7059                                 ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]);
7060                                 free(idx_1);
7061                         }
7062                 }
7063                 ndr->depth--;
7064         }
7065         ndr->depth--;
7066         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 14);
7067         ndr->depth++;
7068         for (cntr_unknown_0=0;cntr_unknown_0<14;cntr_unknown_0++) {
7069                 char *idx_0=NULL;
7070                 if (asprintf(&idx_0, "[%d]", cntr_unknown_0) != -1) {
7071                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
7072                         free(idx_0);
7073                 }
7074         }
7075         ndr->depth--;
7076         ndr->depth--;
7077 }
7078
7079 static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
7080 {
7081         if (ndr_flags & NDR_SCALARS) {
7082                 int level = ndr_push_get_switch_value(ndr, r);
7083                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7084                 switch (level) {
7085                         case 1: {
7086                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7087                         break; }
7088
7089                         case 2: {
7090                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7091                         break; }
7092
7093                         default:
7094                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7095                 }
7096         }
7097         if (ndr_flags & NDR_BUFFERS) {
7098                 int level = ndr_push_get_switch_value(ndr, r);
7099                 switch (level) {
7100                         case 1:
7101                                 if (r->info1) {
7102                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7103                                 }
7104                         break;
7105
7106                         case 2:
7107                                 if (r->info1) {
7108                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7109                                 }
7110                         break;
7111
7112                         default:
7113                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7114                 }
7115         }
7116         return NDR_ERR_SUCCESS;
7117 }
7118
7119 static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
7120 {
7121         int level;
7122         uint32_t _level;
7123         TALLOC_CTX *_mem_save_info1_0;
7124         level = ndr_pull_get_switch_value(ndr, r);
7125         if (ndr_flags & NDR_SCALARS) {
7126                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7127                 if (_level != level) {
7128                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7129                 }
7130                 switch (level) {
7131                         case 1: {
7132                                 uint32_t _ptr_info1;
7133                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7134                                 if (_ptr_info1) {
7135                                         NDR_PULL_ALLOC(ndr, r->info1);
7136                                 } else {
7137                                         r->info1 = NULL;
7138                                 }
7139                         break; }
7140
7141                         case 2: {
7142                                 uint32_t _ptr_info1;
7143                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7144                                 if (_ptr_info1) {
7145                                         NDR_PULL_ALLOC(ndr, r->info1);
7146                                 } else {
7147                                         r->info1 = NULL;
7148                                 }
7149                         break; }
7150
7151                         default:
7152                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7153                 }
7154         }
7155         if (ndr_flags & NDR_BUFFERS) {
7156                 switch (level) {
7157                         case 1:
7158                                 if (r->info1) {
7159                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7160                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7161                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7162                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7163                                 }
7164                         break;
7165
7166                         case 2:
7167                                 if (r->info1) {
7168                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7169                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7170                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7171                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7172                                 }
7173                         break;
7174
7175                         default:
7176                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7177                 }
7178         }
7179         return NDR_ERR_SUCCESS;
7180 }
7181
7182 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
7183 {
7184         int level;
7185         level = ndr_print_get_switch_value(ndr, r);
7186         ndr_print_union(ndr, name, level, "netr_DomainInfo");
7187         switch (level) {
7188                 case 1:
7189                         ndr_print_ptr(ndr, "info1", r->info1);
7190                         ndr->depth++;
7191                         if (r->info1) {
7192                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7193                         }
7194                         ndr->depth--;
7195                 break;
7196
7197                 case 2:
7198                         ndr_print_ptr(ndr, "info1", r->info1);
7199                         ndr->depth++;
7200                         if (r->info1) {
7201                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7202                         }
7203                         ndr->depth--;
7204                 break;
7205
7206                 default:
7207                         ndr_print_bad_level(ndr, name, level);
7208         }
7209 }
7210
7211 static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
7212 {
7213         {
7214                 uint32_t _flags_save_STRUCT = ndr->flags;
7215                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7216                 if (ndr_flags & NDR_SCALARS) {
7217                         NDR_CHECK(ndr_push_align(ndr, 4));
7218                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7219                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
7220                 }
7221                 if (ndr_flags & NDR_BUFFERS) {
7222                 }
7223                 ndr->flags = _flags_save_STRUCT;
7224         }
7225         return NDR_ERR_SUCCESS;
7226 }
7227
7228 static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
7229 {
7230         {
7231                 uint32_t _flags_save_STRUCT = ndr->flags;
7232                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7233                 if (ndr_flags & NDR_SCALARS) {
7234                         NDR_CHECK(ndr_pull_align(ndr, 4));
7235                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7236                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7237                 }
7238                 if (ndr_flags & NDR_BUFFERS) {
7239                 }
7240                 ndr->flags = _flags_save_STRUCT;
7241         }
7242         return NDR_ERR_SUCCESS;
7243 }
7244
7245 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
7246 {
7247         ndr_print_struct(ndr, name, "netr_CryptPassword");
7248         {
7249                 uint32_t _flags_save_STRUCT = ndr->flags;
7250                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7251                 ndr->depth++;
7252                 ndr_print_array_uint8(ndr, "data", r->data, 512);
7253                 ndr_print_uint32(ndr, "length", r->length);
7254                 ndr->depth--;
7255                 ndr->flags = _flags_save_STRUCT;
7256         }
7257 }
7258
7259 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesWCtr *r)
7260 {
7261         uint32_t cntr_sitename_1;
7262         if (ndr_flags & NDR_SCALARS) {
7263                 NDR_CHECK(ndr_push_align(ndr, 4));
7264                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7265                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7266         }
7267         if (ndr_flags & NDR_BUFFERS) {
7268                 if (r->sitename) {
7269                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7270                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7271                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7272                         }
7273                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7274                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7275                         }
7276                 }
7277         }
7278         return NDR_ERR_SUCCESS;
7279 }
7280
7281 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r)
7282 {
7283         uint32_t _ptr_sitename;
7284         uint32_t cntr_sitename_1;
7285         TALLOC_CTX *_mem_save_sitename_0;
7286         TALLOC_CTX *_mem_save_sitename_1;
7287         if (ndr_flags & NDR_SCALARS) {
7288                 NDR_CHECK(ndr_pull_align(ndr, 4));
7289                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7290                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7291                 if (_ptr_sitename) {
7292                         NDR_PULL_ALLOC(ndr, r->sitename);
7293                 } else {
7294                         r->sitename = NULL;
7295                 }
7296         }
7297         if (ndr_flags & NDR_BUFFERS) {
7298                 if (r->sitename) {
7299                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7300                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7301                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7302                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7303                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7304                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7305                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7306                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7307                         }
7308                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7309                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7310                         }
7311                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7312                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7313                 }
7314                 if (r->sitename) {
7315                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7316                 }
7317         }
7318         return NDR_ERR_SUCCESS;
7319 }
7320
7321 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r)
7322 {
7323         uint32_t cntr_sitename_1;
7324         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesWCtr");
7325         ndr->depth++;
7326         ndr_print_uint32(ndr, "count", r->count);
7327         ndr_print_ptr(ndr, "sitename", r->sitename);
7328         ndr->depth++;
7329         if (r->sitename) {
7330                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", r->count);
7331                 ndr->depth++;
7332                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7333                         char *idx_1=NULL;
7334                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -1) {
7335                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
7336                                 free(idx_1);
7337                         }
7338                 }
7339                 ndr->depth--;
7340         }
7341         ndr->depth--;
7342         ndr->depth--;
7343 }
7344
7345 static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddress *r)
7346 {
7347         if (ndr_flags & NDR_SCALARS) {
7348                 NDR_CHECK(ndr_push_align(ndr, 4));
7349                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
7350                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7351         }
7352         if (ndr_flags & NDR_BUFFERS) {
7353                 if (r->buffer) {
7354                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7355                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->size));
7356                 }
7357         }
7358         return NDR_ERR_SUCCESS;
7359 }
7360
7361 static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r)
7362 {
7363         uint32_t _ptr_buffer;
7364         TALLOC_CTX *_mem_save_buffer_0;
7365         if (ndr_flags & NDR_SCALARS) {
7366                 NDR_CHECK(ndr_pull_align(ndr, 4));
7367                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
7368                 if (_ptr_buffer) {
7369                         NDR_PULL_ALLOC(ndr, r->buffer);
7370                 } else {
7371                         r->buffer = NULL;
7372                 }
7373                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7374         }
7375         if (ndr_flags & NDR_BUFFERS) {
7376                 if (r->buffer) {
7377                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
7378                         NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
7379                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
7380                         NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
7381                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
7382                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
7383                 }
7384                 if (r->buffer) {
7385                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->size));
7386                 }
7387         }
7388         return NDR_ERR_SUCCESS;
7389 }
7390
7391 _PUBLIC_ void ndr_print_netr_DsRAddress(struct ndr_print *ndr, const char *name, const struct netr_DsRAddress *r)
7392 {
7393         ndr_print_struct(ndr, name, "netr_DsRAddress");
7394         ndr->depth++;
7395         ndr_print_ptr(ndr, "buffer", r->buffer);
7396         ndr->depth++;
7397         if (r->buffer) {
7398                 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->size);
7399         }
7400         ndr->depth--;
7401         ndr_print_uint32(ndr, "size", r->size);
7402         ndr->depth--;
7403 }
7404
7405 static enum ndr_err_code ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7406 {
7407         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7408         return NDR_ERR_SUCCESS;
7409 }
7410
7411 static enum ndr_err_code ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7412 {
7413         uint32_t v;
7414         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7415         *r = v;
7416         return NDR_ERR_SUCCESS;
7417 }
7418
7419 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7420 {
7421         ndr_print_uint32(ndr, name, r);
7422         ndr->depth++;
7423         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
7424         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
7425         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
7426         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
7427         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
7428         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
7429         ndr->depth--;
7430 }
7431
7432 static enum ndr_err_code ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
7433 {
7434         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7435         return NDR_ERR_SUCCESS;
7436 }
7437
7438 static enum ndr_err_code ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
7439 {
7440         uint32_t v;
7441         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7442         *r = v;
7443         return NDR_ERR_SUCCESS;
7444 }
7445
7446 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
7447 {
7448         const char *val = NULL;
7449
7450         switch (r) {
7451                 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
7452                 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
7453                 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
7454                 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
7455         }
7456         ndr_print_enum(ndr, name, "ENUM", val, r);
7457 }
7458
7459 static enum ndr_err_code ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7460 {
7461         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7462         return NDR_ERR_SUCCESS;
7463 }
7464
7465 static enum ndr_err_code ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7466 {
7467         uint32_t v;
7468         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7469         *r = v;
7470         return NDR_ERR_SUCCESS;
7471 }
7472
7473 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
7474 {
7475         ndr_print_uint32(ndr, name, r);
7476         ndr->depth++;
7477         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
7478         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
7479         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
7480         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
7481         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
7482         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
7483         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
7484         ndr->depth--;
7485 }
7486
7487 static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
7488 {
7489         if (ndr_flags & NDR_SCALARS) {
7490                 NDR_CHECK(ndr_push_align(ndr, 4));
7491                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7492                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7493                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
7494                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7495                 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
7496                 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
7497                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
7498                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
7499         }
7500         if (ndr_flags & NDR_BUFFERS) {
7501                 if (r->netbios_name) {
7502                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7503                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7504                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7505                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7506                 }
7507                 if (r->dns_name) {
7508                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7509                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7510                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7511                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7512                 }
7513                 if (r->sid) {
7514                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7515                 }
7516                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
7517         }
7518         return NDR_ERR_SUCCESS;
7519 }
7520
7521 static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
7522 {
7523         uint32_t _ptr_netbios_name;
7524         TALLOC_CTX *_mem_save_netbios_name_0;
7525         uint32_t _ptr_dns_name;
7526         TALLOC_CTX *_mem_save_dns_name_0;
7527         uint32_t _ptr_sid;
7528         TALLOC_CTX *_mem_save_sid_0;
7529         if (ndr_flags & NDR_SCALARS) {
7530                 NDR_CHECK(ndr_pull_align(ndr, 4));
7531                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7532                 if (_ptr_netbios_name) {
7533                         NDR_PULL_ALLOC(ndr, r->netbios_name);
7534                 } else {
7535                         r->netbios_name = NULL;
7536                 }
7537                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7538                 if (_ptr_dns_name) {
7539                         NDR_PULL_ALLOC(ndr, r->dns_name);
7540                 } else {
7541                         r->dns_name = NULL;
7542                 }
7543                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
7544                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7545                 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
7546                 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
7547                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
7548                 if (_ptr_sid) {
7549                         NDR_PULL_ALLOC(ndr, r->sid);
7550                 } else {
7551                         r->sid = NULL;
7552                 }
7553                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
7554         }
7555         if (ndr_flags & NDR_BUFFERS) {
7556                 if (r->netbios_name) {
7557                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7558                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7559                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7560                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7561                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
7562                                 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));
7563                         }
7564                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
7565                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
7566                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7567                 }
7568                 if (r->dns_name) {
7569                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7570                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7571                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7572                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7573                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
7574                                 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));
7575                         }
7576                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
7577                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
7578                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7579                 }
7580                 if (r->sid) {
7581                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7582                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
7583                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7584                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
7585                 }
7586                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
7587         }
7588         return NDR_ERR_SUCCESS;
7589 }
7590
7591 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
7592 {
7593         ndr_print_struct(ndr, name, "netr_DomainTrust");
7594         ndr->depth++;
7595         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7596         ndr->depth++;
7597         if (r->netbios_name) {
7598                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7599         }
7600         ndr->depth--;
7601         ndr_print_ptr(ndr, "dns_name", r->dns_name);
7602         ndr->depth++;
7603         if (r->dns_name) {
7604                 ndr_print_string(ndr, "dns_name", r->dns_name);
7605         }
7606         ndr->depth--;
7607         ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
7608         ndr_print_uint32(ndr, "parent_index", r->parent_index);
7609         ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
7610         ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
7611         ndr_print_ptr(ndr, "sid", r->sid);
7612         ndr->depth++;
7613         if (r->sid) {
7614                 ndr_print_dom_sid2(ndr, "sid", r->sid);
7615         }
7616         ndr->depth--;
7617         ndr_print_GUID(ndr, "guid", &r->guid);
7618         ndr->depth--;
7619 }
7620
7621 static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustList *r)
7622 {
7623         uint32_t cntr_array_1;
7624         if (ndr_flags & NDR_SCALARS) {
7625                 NDR_CHECK(ndr_push_align(ndr, 4));
7626                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7627                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7628         }
7629         if (ndr_flags & NDR_BUFFERS) {
7630                 if (r->array) {
7631                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7632                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7633                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7634                         }
7635                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7636                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7637                         }
7638                 }
7639         }
7640         return NDR_ERR_SUCCESS;
7641 }
7642
7643 static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r)
7644 {
7645         uint32_t _ptr_array;
7646         uint32_t cntr_array_1;
7647         TALLOC_CTX *_mem_save_array_0;
7648         TALLOC_CTX *_mem_save_array_1;
7649         if (ndr_flags & NDR_SCALARS) {
7650                 NDR_CHECK(ndr_pull_align(ndr, 4));
7651                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7652                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7653                 if (_ptr_array) {
7654                         NDR_PULL_ALLOC(ndr, r->array);
7655                 } else {
7656                         r->array = NULL;
7657                 }
7658         }
7659         if (ndr_flags & NDR_BUFFERS) {
7660                 if (r->array) {
7661                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7662                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7663                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7664                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
7665                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7666                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7667                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7668                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7669                         }
7670                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7671                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7672                         }
7673                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7674                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7675                 }
7676                 if (r->array) {
7677                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7678                 }
7679         }
7680         return NDR_ERR_SUCCESS;
7681 }
7682
7683 _PUBLIC_ void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r)
7684 {
7685         uint32_t cntr_array_1;
7686         ndr_print_struct(ndr, name, "netr_DomainTrustList");
7687         ndr->depth++;
7688         ndr_print_uint32(ndr, "count", r->count);
7689         ndr_print_ptr(ndr, "array", r->array);
7690         ndr->depth++;
7691         if (r->array) {
7692                 ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
7693                 ndr->depth++;
7694                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7695                         char *idx_1=NULL;
7696                         if (asprintf(&idx_1, "[%d]", cntr_array_1) != -1) {
7697                                 ndr_print_netr_DomainTrust(ndr, "array", &r->array[cntr_array_1]);
7698                                 free(idx_1);
7699                         }
7700                 }
7701                 ndr->depth--;
7702         }
7703         ndr->depth--;
7704         ndr->depth--;
7705 }
7706
7707 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesExWCtr *r)
7708 {
7709         uint32_t cntr_sitename_1;
7710         uint32_t cntr_subnetname_1;
7711         if (ndr_flags & NDR_SCALARS) {
7712                 NDR_CHECK(ndr_push_align(ndr, 4));
7713                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7714                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7715                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->subnetname));
7716         }
7717         if (ndr_flags & NDR_BUFFERS) {
7718                 if (r->sitename) {
7719                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7720                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7721                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7722                         }
7723                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7724                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7725                         }
7726                 }
7727                 if (r->subnetname) {
7728                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7729                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7730                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7731                         }
7732                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7733                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7734                         }
7735                 }
7736         }
7737         return NDR_ERR_SUCCESS;
7738 }
7739
7740 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r)
7741 {
7742         uint32_t _ptr_sitename;
7743         uint32_t cntr_sitename_1;
7744         TALLOC_CTX *_mem_save_sitename_0;
7745         TALLOC_CTX *_mem_save_sitename_1;
7746         uint32_t _ptr_subnetname;
7747         uint32_t cntr_subnetname_1;
7748         TALLOC_CTX *_mem_save_subnetname_0;
7749         TALLOC_CTX *_mem_save_subnetname_1;
7750         if (ndr_flags & NDR_SCALARS) {
7751                 NDR_CHECK(ndr_pull_align(ndr, 4));
7752                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7753                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7754                 if (_ptr_sitename) {
7755                         NDR_PULL_ALLOC(ndr, r->sitename);
7756                 } else {
7757                         r->sitename = NULL;
7758                 }
7759                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_subnetname));
7760                 if (_ptr_subnetname) {
7761                         NDR_PULL_ALLOC(ndr, r->subnetname);
7762                 } else {
7763                         r->subnetname = NULL;
7764                 }
7765         }
7766         if (ndr_flags & NDR_BUFFERS) {
7767                 if (r->sitename) {
7768                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7769                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7770                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7771                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7772                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7773                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7774                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7775                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7776                         }
7777                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7778                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7779                         }
7780                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7781                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7782                 }
7783                 if (r->subnetname) {
7784                         _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7785                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7786                         NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname));
7787                         NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname));
7788                         _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr);
7789                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7790                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7791                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7792                         }
7793                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7794                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7795                         }
7796                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0);
7797                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_0, 0);
7798                 }
7799                 if (r->sitename) {
7800                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7801                 }
7802                 if (r->subnetname) {
7803                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->subnetname, r->count));
7804                 }
7805         }
7806         return NDR_ERR_SUCCESS;
7807 }
7808
7809 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r)
7810 {
7811         uint32_t cntr_sitename_1;
7812         uint32_t cntr_subnetname_1;
7813         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExWCtr");
7814         ndr->depth++;
7815         ndr_print_uint32(ndr, "count", r->count);
7816         ndr_print_ptr(ndr, "sitename", r->sitename);
7817         ndr->depth++;
7818         if (r->sitename) {
7819                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", r->count);
7820                 ndr->depth++;
7821                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7822                         char *idx_1=NULL;
7823                         if (asprintf(&idx_1, "[%d]", cntr_sitename_1) != -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                         if (asprintf(&idx_1, "[%d]", cntr_subnetname_1) != -1) {
7839                                 ndr_print_lsa_String(ndr, "subnetname", &r->subnetname[cntr_subnetname_1]);
7840                                 free(idx_1);
7841                         }
7842                 }
7843                 ndr->depth--;
7844         }
7845         ndr->depth--;
7846         ndr->depth--;
7847 }
7848
7849 static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags, const struct DcSitesCtr *r)
7850 {
7851         uint32_t cntr_sites_1;
7852         if (ndr_flags & NDR_SCALARS) {
7853                 NDR_CHECK(ndr_push_align(ndr, 4));
7854                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7855                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sites));
7856         }
7857         if (ndr_flags & NDR_BUFFERS) {
7858                 if (r->sites) {
7859                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7860                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7861                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7862                         }
7863                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7864                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7865                         }
7866                 }
7867         }
7868         return NDR_ERR_SUCCESS;
7869 }
7870
7871 static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r)
7872 {
7873         uint32_t _ptr_sites;
7874         uint32_t cntr_sites_1;
7875         TALLOC_CTX *_mem_save_sites_0;
7876         TALLOC_CTX *_mem_save_sites_1;
7877         if (ndr_flags & NDR_SCALARS) {
7878                 NDR_CHECK(ndr_pull_align(ndr, 4));
7879                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sites));
7880                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sites));
7881                 if (_ptr_sites) {
7882                         NDR_PULL_ALLOC(ndr, r->sites);
7883                 } else {
7884                         r->sites = NULL;
7885                 }
7886         }
7887         if (ndr_flags & NDR_BUFFERS) {
7888                 if (r->sites) {
7889                         _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr);
7890                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7891                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sites));
7892                         NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites));
7893                         _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr);
7894                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7895                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7896                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7897                         }
7898                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7899                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7900                         }
7901                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0);
7902                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_0, 0);
7903                 }
7904                 if (r->sites) {
7905                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sites, r->num_sites));
7906                 }
7907         }
7908         return NDR_ERR_SUCCESS;
7909 }
7910
7911 _PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r)
7912 {
7913         uint32_t cntr_sites_1;
7914         ndr_print_struct(ndr, name, "DcSitesCtr");
7915         ndr->depth++;
7916         ndr_print_uint32(ndr, "num_sites", r->num_sites);
7917         ndr_print_ptr(ndr, "sites", r->sites);
7918         ndr->depth++;
7919         if (r->sites) {
7920                 ndr->print(ndr, "%s: ARRAY(%d)", "sites", r->num_sites);
7921                 ndr->depth++;
7922                 for (cntr_sites_1=0;cntr_sites_1<r->num_sites;cntr_sites_1++) {
7923                         char *idx_1=NULL;
7924                         if (asprintf(&idx_1, "[%d]", cntr_sites_1) != -1) {
7925                                 ndr_print_lsa_String(ndr, "sites", &r->sites[cntr_sites_1]);
7926                                 free(idx_1);
7927                         }
7928                 }
7929                 ndr->depth--;
7930         }
7931         ndr->depth--;
7932         ndr->depth--;
7933 }
7934
7935 static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
7936 {
7937         if (flags & NDR_IN) {
7938                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
7939                 if (r->in.server_name) {
7940                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7941                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7942                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7943                         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));
7944                 }
7945                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7946                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7947                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7948                 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));
7949                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7950                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7951                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7952                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7953         }
7954         if (flags & NDR_OUT) {
7955                 if (r->out.info == NULL) {
7956                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7957                 }
7958                 NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
7959                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
7960         }
7961         return NDR_ERR_SUCCESS;
7962 }
7963
7964 static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
7965 {
7966         uint32_t _ptr_server_name;
7967         TALLOC_CTX *_mem_save_server_name_0;
7968         TALLOC_CTX *_mem_save_info_0;
7969         if (flags & NDR_IN) {
7970                 ZERO_STRUCT(r->out);
7971
7972                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
7973                 if (_ptr_server_name) {
7974                         NDR_PULL_ALLOC(ndr, r->in.server_name);
7975                 } else {
7976                         r->in.server_name = NULL;
7977                 }
7978                 if (r->in.server_name) {
7979                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7980                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
7981                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
7982                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
7983                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
7984                                 return 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));
7985                         }
7986                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
7987                         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));
7988                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
7989                 }
7990                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
7991                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
7992                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
7993                         return 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));
7994                 }
7995                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
7996                 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));
7997                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
7998                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
7999                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8000                         return 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));
8001                 }
8002                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8003                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8004                 NDR_PULL_ALLOC(ndr, r->out.info);
8005                 ZERO_STRUCTP(r->out.info);
8006         }
8007         if (flags & NDR_OUT) {
8008                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8009                         NDR_PULL_ALLOC(ndr, r->out.info);
8010                 }
8011                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8012                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8013                 NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
8014                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8015                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8016         }
8017         return NDR_ERR_SUCCESS;
8018 }
8019
8020 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
8021 {
8022         ndr_print_struct(ndr, name, "netr_LogonUasLogon");
8023         ndr->depth++;
8024         if (flags & NDR_SET_VALUES) {
8025                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8026         }
8027         if (flags & NDR_IN) {
8028                 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
8029                 ndr->depth++;
8030                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8031                 ndr->depth++;
8032                 if (r->in.server_name) {
8033                         ndr_print_string(ndr, "server_name", r->in.server_name);
8034                 }
8035                 ndr->depth--;
8036                 ndr_print_string(ndr, "account_name", r->in.account_name);
8037                 ndr_print_string(ndr, "workstation", r->in.workstation);
8038                 ndr->depth--;
8039         }
8040         if (flags & NDR_OUT) {
8041                 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
8042                 ndr->depth++;
8043                 ndr_print_ptr(ndr, "info", r->out.info);
8044                 ndr->depth++;
8045                 ndr_print_netr_UasInfo(ndr, "info", r->out.info);
8046                 ndr->depth--;
8047                 ndr_print_WERROR(ndr, "result", r->out.result);
8048                 ndr->depth--;
8049         }
8050         ndr->depth--;
8051 }
8052
8053 static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
8054 {
8055         if (flags & NDR_IN) {
8056                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8057                 if (r->in.server_name) {
8058                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8059                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8060                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8061                         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));
8062                 }
8063                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8064                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8065                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8066                 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));
8067                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8068                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8069                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8070                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8071         }
8072         if (flags & NDR_OUT) {
8073                 if (r->out.info == NULL) {
8074                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8075                 }
8076                 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8077                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8078         }
8079         return NDR_ERR_SUCCESS;
8080 }
8081
8082 static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
8083 {
8084         uint32_t _ptr_server_name;
8085         TALLOC_CTX *_mem_save_server_name_0;
8086         TALLOC_CTX *_mem_save_info_0;
8087         if (flags & NDR_IN) {
8088                 ZERO_STRUCT(r->out);
8089
8090                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8091                 if (_ptr_server_name) {
8092                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8093                 } else {
8094                         r->in.server_name = NULL;
8095                 }
8096                 if (r->in.server_name) {
8097                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8098                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8099                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8100                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8101                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8102                                 return 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));
8103                         }
8104                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8105                         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));
8106                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8107                 }
8108                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8109                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8110                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8111                         return 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));
8112                 }
8113                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8114                 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));
8115                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8116                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8117                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8118                         return 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));
8119                 }
8120                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8121                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8122                 NDR_PULL_ALLOC(ndr, r->out.info);
8123                 ZERO_STRUCTP(r->out.info);
8124         }
8125         if (flags & NDR_OUT) {
8126                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8127                         NDR_PULL_ALLOC(ndr, r->out.info);
8128                 }
8129                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8130                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8131                 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8132                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8133                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8134         }
8135         return NDR_ERR_SUCCESS;
8136 }
8137
8138 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
8139 {
8140         ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
8141         ndr->depth++;
8142         if (flags & NDR_SET_VALUES) {
8143                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8144         }
8145         if (flags & NDR_IN) {
8146                 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
8147                 ndr->depth++;
8148                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8149                 ndr->depth++;
8150                 if (r->in.server_name) {
8151                         ndr_print_string(ndr, "server_name", r->in.server_name);
8152                 }
8153                 ndr->depth--;
8154                 ndr_print_string(ndr, "account_name", r->in.account_name);
8155                 ndr_print_string(ndr, "workstation", r->in.workstation);
8156                 ndr->depth--;
8157         }
8158         if (flags & NDR_OUT) {
8159                 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
8160                 ndr->depth++;
8161                 ndr_print_ptr(ndr, "info", r->out.info);
8162                 ndr->depth++;
8163                 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
8164                 ndr->depth--;
8165                 ndr_print_WERROR(ndr, "result", r->out.result);
8166                 ndr->depth--;
8167         }
8168         ndr->depth--;
8169 }
8170
8171 static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
8172 {
8173         if (flags & NDR_IN) {
8174                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8175                 if (r->in.server_name) {
8176                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8177                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8178                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8179                         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));
8180                 }
8181                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8182                 if (r->in.computer_name) {
8183                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8184                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8185                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8186                         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));
8187                 }
8188                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8189                 if (r->in.credential) {
8190                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8191                 }
8192                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8193                 if (r->in.return_authenticator) {
8194                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8195                 }
8196                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
8197                 if (r->in.logon == NULL) {
8198                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8199                 }
8200                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
8201                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
8202                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
8203         }
8204         if (flags & NDR_OUT) {
8205                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8206                 if (r->out.return_authenticator) {
8207                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8208                 }
8209                 if (r->out.validation == NULL) {
8210                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8211                 }
8212                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8213                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8214                 if (r->out.authoritative == NULL) {
8215                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8216                 }
8217                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
8218                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8219         }
8220         return NDR_ERR_SUCCESS;
8221 }
8222
8223 static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
8224 {
8225         uint32_t _ptr_server_name;
8226         uint32_t _ptr_computer_name;
8227         uint32_t _ptr_credential;
8228         uint32_t _ptr_return_authenticator;
8229         TALLOC_CTX *_mem_save_server_name_0;
8230         TALLOC_CTX *_mem_save_computer_name_0;
8231         TALLOC_CTX *_mem_save_credential_0;
8232         TALLOC_CTX *_mem_save_return_authenticator_0;
8233         TALLOC_CTX *_mem_save_logon_0;
8234         TALLOC_CTX *_mem_save_validation_0;
8235         TALLOC_CTX *_mem_save_authoritative_0;
8236         if (flags & NDR_IN) {
8237                 ZERO_STRUCT(r->out);
8238
8239                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8240                 if (_ptr_server_name) {
8241                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8242                 } else {
8243                         r->in.server_name = NULL;
8244                 }
8245                 if (r->in.server_name) {
8246                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8247                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8248                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8249                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8250                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8251                                 return 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));
8252                         }
8253                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8254                         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));
8255                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8256                 }
8257                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8258                 if (_ptr_computer_name) {
8259                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8260                 } else {
8261                         r->in.computer_name = NULL;
8262                 }
8263                 if (r->in.computer_name) {
8264                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8265                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8266                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8267                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8268                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8269                                 return 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));
8270                         }
8271                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8272                         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));
8273                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8274                 }
8275                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8276                 if (_ptr_credential) {
8277                         NDR_PULL_ALLOC(ndr, r->in.credential);
8278                 } else {
8279                         r->in.credential = NULL;
8280                 }
8281                 if (r->in.credential) {
8282                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8283                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8284                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8285                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8286                 }
8287                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8288                 if (_ptr_return_authenticator) {
8289                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8290                 } else {
8291                         r->in.return_authenticator = NULL;
8292                 }
8293                 if (r->in.return_authenticator) {
8294                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8295                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8296                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8297                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8298                 }
8299                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
8300                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8301                         NDR_PULL_ALLOC(ndr, r->in.logon);
8302                 }
8303                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
8304                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
8305                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
8306                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
8307                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
8308                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
8309                 NDR_PULL_ALLOC(ndr, r->out.validation);
8310                 ZERO_STRUCTP(r->out.validation);
8311                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
8312                 ZERO_STRUCTP(r->out.authoritative);
8313         }
8314         if (flags & NDR_OUT) {
8315                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8316                 if (_ptr_return_authenticator) {
8317                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8318                 } else {
8319                         r->out.return_authenticator = NULL;
8320                 }
8321                 if (r->out.return_authenticator) {
8322                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8323                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8324                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8325                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8326                 }
8327                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8328                         NDR_PULL_ALLOC(ndr, r->out.validation);
8329                 }
8330                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
8331                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
8332                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8333                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8334                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
8335                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8336                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
8337                 }
8338                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
8339                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
8340                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
8341                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
8342                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8343         }
8344         return NDR_ERR_SUCCESS;
8345 }
8346
8347 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
8348 {
8349         ndr_print_struct(ndr, name, "netr_LogonSamLogon");
8350         ndr->depth++;
8351         if (flags & NDR_SET_VALUES) {
8352                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8353         }
8354         if (flags & NDR_IN) {
8355                 ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
8356                 ndr->depth++;
8357                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8358                 ndr->depth++;
8359                 if (r->in.server_name) {
8360                         ndr_print_string(ndr, "server_name", r->in.server_name);
8361                 }
8362                 ndr->depth--;
8363                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8364                 ndr->depth++;
8365                 if (r->in.computer_name) {
8366                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8367                 }
8368                 ndr->depth--;
8369                 ndr_print_ptr(ndr, "credential", r->in.credential);
8370                 ndr->depth++;
8371                 if (r->in.credential) {
8372                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8373                 }
8374                 ndr->depth--;
8375                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8376                 ndr->depth++;
8377                 if (r->in.return_authenticator) {
8378                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8379                 }
8380                 ndr->depth--;
8381                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
8382                 ndr_print_ptr(ndr, "logon", r->in.logon);
8383                 ndr->depth++;
8384                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
8385                 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
8386                 ndr->depth--;
8387                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
8388                 ndr->depth--;
8389         }
8390         if (flags & NDR_OUT) {
8391                 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
8392                 ndr->depth++;
8393                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8394                 ndr->depth++;
8395                 if (r->out.return_authenticator) {
8396                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8397                 }
8398                 ndr->depth--;
8399                 ndr_print_ptr(ndr, "validation", r->out.validation);
8400                 ndr->depth++;
8401                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
8402                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
8403                 ndr->depth--;
8404                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
8405                 ndr->depth++;
8406                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
8407                 ndr->depth--;
8408                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8409                 ndr->depth--;
8410         }
8411         ndr->depth--;
8412 }
8413
8414 static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
8415 {
8416         if (flags & NDR_IN) {
8417                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8418                 if (r->in.server_name) {
8419                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8420                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8421                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8422                         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));
8423                 }
8424                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8425                 if (r->in.computer_name) {
8426                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8427                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8428                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8429                         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));
8430                 }
8431                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8432                 if (r->in.credential) {
8433                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8434                 }
8435                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8436                 if (r->in.return_authenticator) {
8437                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8438                 }
8439                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
8440                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8441                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8442         }
8443         if (flags & NDR_OUT) {
8444                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8445                 if (r->out.return_authenticator) {
8446                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8447                 }
8448                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8449         }
8450         return NDR_ERR_SUCCESS;
8451 }
8452
8453 static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
8454 {
8455         uint32_t _ptr_server_name;
8456         uint32_t _ptr_computer_name;
8457         uint32_t _ptr_credential;
8458         uint32_t _ptr_return_authenticator;
8459         TALLOC_CTX *_mem_save_server_name_0;
8460         TALLOC_CTX *_mem_save_computer_name_0;
8461         TALLOC_CTX *_mem_save_credential_0;
8462         TALLOC_CTX *_mem_save_return_authenticator_0;
8463         if (flags & NDR_IN) {
8464                 ZERO_STRUCT(r->out);
8465
8466                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8467                 if (_ptr_server_name) {
8468                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8469                 } else {
8470                         r->in.server_name = NULL;
8471                 }
8472                 if (r->in.server_name) {
8473                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8474                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8475                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8476                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8477                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8478                                 return 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));
8479                         }
8480                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8481                         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));
8482                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8483                 }
8484                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8485                 if (_ptr_computer_name) {
8486                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8487                 } else {
8488                         r->in.computer_name = NULL;
8489                 }
8490                 if (r->in.computer_name) {
8491                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8492                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8493                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8494                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8495                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8496                                 return 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));
8497                         }
8498                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8499                         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));
8500                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8501                 }
8502                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8503                 if (_ptr_credential) {
8504                         NDR_PULL_ALLOC(ndr, r->in.credential);
8505                 } else {
8506                         r->in.credential = NULL;
8507                 }
8508                 if (r->in.credential) {
8509                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8510                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8511                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8512                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8513                 }
8514                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8515                 if (_ptr_return_authenticator) {
8516                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8517                 } else {
8518                         r->in.return_authenticator = NULL;
8519                 }
8520                 if (r->in.return_authenticator) {
8521                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8522                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8523                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8524                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8525                 }
8526                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
8527                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8528                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8529         }
8530         if (flags & NDR_OUT) {
8531                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8532                 if (_ptr_return_authenticator) {
8533                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8534                 } else {
8535                         r->out.return_authenticator = NULL;
8536                 }
8537                 if (r->out.return_authenticator) {
8538                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8539                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8540                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8541                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8542                 }
8543                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8544         }
8545         return NDR_ERR_SUCCESS;
8546 }
8547
8548 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
8549 {
8550         ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
8551         ndr->depth++;
8552         if (flags & NDR_SET_VALUES) {
8553                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8554         }
8555         if (flags & NDR_IN) {
8556                 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
8557                 ndr->depth++;
8558                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8559                 ndr->depth++;
8560                 if (r->in.server_name) {
8561                         ndr_print_string(ndr, "server_name", r->in.server_name);
8562                 }
8563                 ndr->depth--;
8564                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8565                 ndr->depth++;
8566                 if (r->in.computer_name) {
8567                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8568                 }
8569                 ndr->depth--;
8570                 ndr_print_ptr(ndr, "credential", r->in.credential);
8571                 ndr->depth++;
8572                 if (r->in.credential) {
8573                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8574                 }
8575                 ndr->depth--;
8576                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8577                 ndr->depth++;
8578                 if (r->in.return_authenticator) {
8579                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8580                 }
8581                 ndr->depth--;
8582                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
8583                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
8584                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
8585                 ndr->depth--;
8586         }
8587         if (flags & NDR_OUT) {
8588                 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
8589                 ndr->depth++;
8590                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8591                 ndr->depth++;
8592                 if (r->out.return_authenticator) {
8593                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8594                 }
8595                 ndr->depth--;
8596                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8597                 ndr->depth--;
8598         }
8599         ndr->depth--;
8600 }
8601
8602 static enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
8603 {
8604         if (flags & NDR_IN) {
8605                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8606                 if (r->in.server_name) {
8607                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8608                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8609                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8610                         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));
8611                 }
8612                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8613                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8614                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8615                 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));
8616                 if (r->in.credentials == NULL) {
8617                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8618                 }
8619                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8620         }
8621         if (flags & NDR_OUT) {
8622                 if (r->out.return_credentials == NULL) {
8623                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8624                 }
8625                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8626                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8627         }
8628         return NDR_ERR_SUCCESS;
8629 }
8630
8631 static enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
8632 {
8633         uint32_t _ptr_server_name;
8634         TALLOC_CTX *_mem_save_server_name_0;
8635         TALLOC_CTX *_mem_save_credentials_0;
8636         TALLOC_CTX *_mem_save_return_credentials_0;
8637         if (flags & NDR_IN) {
8638                 ZERO_STRUCT(r->out);
8639
8640                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8641                 if (_ptr_server_name) {
8642                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8643                 } else {
8644                         r->in.server_name = NULL;
8645                 }
8646                 if (r->in.server_name) {
8647                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8648                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8649                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8650                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8651                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8652                                 return 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));
8653                         }
8654                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8655                         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));
8656                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8657                 }
8658                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8659                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8660                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8661                         return 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));
8662                 }
8663                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8664                 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));
8665                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8666                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8667                 }
8668                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8669                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8670                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8671                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8672                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8673                 ZERO_STRUCTP(r->out.return_credentials);
8674         }
8675         if (flags & NDR_OUT) {
8676                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8677                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8678                 }
8679                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8680                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
8681                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8682                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8683                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8684         }
8685         return NDR_ERR_SUCCESS;
8686 }
8687
8688 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
8689 {
8690         ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
8691         ndr->depth++;
8692         if (flags & NDR_SET_VALUES) {
8693                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8694         }
8695         if (flags & NDR_IN) {
8696                 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
8697                 ndr->depth++;
8698                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8699                 ndr->depth++;
8700                 if (r->in.server_name) {
8701                         ndr_print_string(ndr, "server_name", r->in.server_name);
8702                 }
8703                 ndr->depth--;
8704                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8705                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8706                 ndr->depth++;
8707                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8708                 ndr->depth--;
8709                 ndr->depth--;
8710         }
8711         if (flags & NDR_OUT) {
8712                 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
8713                 ndr->depth++;
8714                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
8715                 ndr->depth++;
8716                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
8717                 ndr->depth--;
8718                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8719                 ndr->depth--;
8720         }
8721         ndr->depth--;
8722 }
8723
8724 static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
8725 {
8726         if (flags & NDR_IN) {
8727                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8728                 if (r->in.server_name) {
8729                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8730                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8731                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8732                         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));
8733                 }
8734                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8735                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8736                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8737                 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));
8738                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8739                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8740                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8741                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8742                 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));
8743                 if (r->in.credentials == NULL) {
8744                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8745                 }
8746                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8747         }
8748         if (flags & NDR_OUT) {
8749                 if (r->out.return_credentials == NULL) {
8750                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8751                 }
8752                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8753                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8754         }
8755         return NDR_ERR_SUCCESS;
8756 }
8757
8758 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
8759 {
8760         uint32_t _ptr_server_name;
8761         TALLOC_CTX *_mem_save_server_name_0;
8762         TALLOC_CTX *_mem_save_credentials_0;
8763         TALLOC_CTX *_mem_save_return_credentials_0;
8764         if (flags & NDR_IN) {
8765                 ZERO_STRUCT(r->out);
8766
8767                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8768                 if (_ptr_server_name) {
8769                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8770                 } else {
8771                         r->in.server_name = NULL;
8772                 }
8773                 if (r->in.server_name) {
8774                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8775                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8776                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8777                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8778                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8779                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
8780                         }
8781                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8782                         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));
8783                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8784                 }
8785                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8786                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8787                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8788                         return 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));
8789                 }
8790                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8791                 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));
8792                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8793                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8794                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8795                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8796                         return 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));
8797                 }
8798                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8799                 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));
8800                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8801                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8802                 }
8803                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8804                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8805                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8806                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8807                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8808                 ZERO_STRUCTP(r->out.return_credentials);
8809         }
8810         if (flags & NDR_OUT) {
8811                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8812                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
8813                 }
8814                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8815                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
8816                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
8817                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8818                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8819         }
8820         return NDR_ERR_SUCCESS;
8821 }
8822
8823 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
8824 {
8825         ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
8826         ndr->depth++;
8827         if (flags & NDR_SET_VALUES) {
8828                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8829         }
8830         if (flags & NDR_IN) {
8831                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
8832                 ndr->depth++;
8833                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8834                 ndr->depth++;
8835                 if (r->in.server_name) {
8836                         ndr_print_string(ndr, "server_name", r->in.server_name);
8837                 }
8838                 ndr->depth--;
8839                 ndr_print_string(ndr, "account_name", r->in.account_name);
8840                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8841                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8842                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8843                 ndr->depth++;
8844                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8845                 ndr->depth--;
8846                 ndr->depth--;
8847         }
8848         if (flags & NDR_OUT) {
8849                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
8850                 ndr->depth++;
8851                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
8852                 ndr->depth++;
8853                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
8854                 ndr->depth--;
8855                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8856                 ndr->depth--;
8857         }
8858         ndr->depth--;
8859 }
8860
8861 static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
8862 {
8863         if (flags & NDR_IN) {
8864                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8865                 if (r->in.server_name) {
8866                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8867                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8868                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8869                         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));
8870                 }
8871                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8872                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8873                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8874                 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));
8875                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8876                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8877                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8878                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8879                 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));
8880                 if (r->in.credential == NULL) {
8881                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8882                 }
8883                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8884                 if (r->in.new_password == NULL) {
8885                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8886                 }
8887                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_password));
8888         }
8889         if (flags & NDR_OUT) {
8890                 if (r->out.return_authenticator == NULL) {
8891                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8892                 }
8893                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8894                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8895         }
8896         return NDR_ERR_SUCCESS;
8897 }
8898
8899 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
8900 {
8901         uint32_t _ptr_server_name;
8902         TALLOC_CTX *_mem_save_server_name_0;
8903         TALLOC_CTX *_mem_save_credential_0;
8904         TALLOC_CTX *_mem_save_return_authenticator_0;
8905         TALLOC_CTX *_mem_save_new_password_0;
8906         if (flags & NDR_IN) {
8907                 ZERO_STRUCT(r->out);
8908
8909                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8910                 if (_ptr_server_name) {
8911                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8912                 } else {
8913                         r->in.server_name = NULL;
8914                 }
8915                 if (r->in.server_name) {
8916                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8917                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8918                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8919                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8920                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8921                                 return 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));
8922                         }
8923                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8924                         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));
8925                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8926                 }
8927                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8928                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8929                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8930                         return 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));
8931                 }
8932                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8933                 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));
8934                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8935                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8936                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8937                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8938                         return 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));
8939                 }
8940                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8941                 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));
8942                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8943                         NDR_PULL_ALLOC(ndr, r->in.credential);
8944                 }
8945                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8946                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
8947                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8948                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
8949                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8950                         NDR_PULL_ALLOC(ndr, r->in.new_password);
8951                 }
8952                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
8953                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
8954                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_password));
8955                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
8956                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8957                 ZERO_STRUCTP(r->out.return_authenticator);
8958         }
8959         if (flags & NDR_OUT) {
8960                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8961                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8962                 }
8963                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8964                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8965                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8966                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8967                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8968         }
8969         return NDR_ERR_SUCCESS;
8970 }
8971
8972 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
8973 {
8974         ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
8975         ndr->depth++;
8976         if (flags & NDR_SET_VALUES) {
8977                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8978         }
8979         if (flags & NDR_IN) {
8980                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
8981                 ndr->depth++;
8982                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8983                 ndr->depth++;
8984                 if (r->in.server_name) {
8985                         ndr_print_string(ndr, "server_name", r->in.server_name);
8986                 }
8987                 ndr->depth--;
8988                 ndr_print_string(ndr, "account_name", r->in.account_name);
8989                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8990                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8991                 ndr_print_ptr(ndr, "credential", r->in.credential);
8992                 ndr->depth++;
8993                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8994                 ndr->depth--;
8995                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
8996                 ndr->depth++;
8997                 ndr_print_samr_Password(ndr, "new_password", r->in.new_password);
8998                 ndr->depth--;
8999                 ndr->depth--;
9000         }
9001         if (flags & NDR_OUT) {
9002                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
9003                 ndr->depth++;
9004                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9005                 ndr->depth++;
9006                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9007                 ndr->depth--;
9008                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9009                 ndr->depth--;
9010         }
9011         ndr->depth--;
9012 }
9013
9014 static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
9015 {
9016         if (flags & NDR_IN) {
9017                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9018                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9019                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9020                 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));
9021                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9022                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9023                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9024                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9025                 if (r->in.credential == NULL) {
9026                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9027                 }
9028                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9029                 if (r->in.return_authenticator == NULL) {
9030                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9031                 }
9032                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9033                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9034                 if (r->in.sequence_num == NULL) {
9035                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9036                 }
9037                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
9038                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9039         }
9040         if (flags & NDR_OUT) {
9041                 if (r->out.return_authenticator == NULL) {
9042                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9043                 }
9044                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9045                 if (r->out.sequence_num == NULL) {
9046                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9047                 }
9048                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
9049                 if (r->out.delta_enum_array == NULL) {
9050                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9051                 }
9052                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
9053                 if (*r->out.delta_enum_array) {
9054                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9055                 }
9056                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9057         }
9058         return NDR_ERR_SUCCESS;
9059 }
9060
9061 static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
9062 {
9063         uint32_t _ptr_delta_enum_array;
9064         TALLOC_CTX *_mem_save_credential_0;
9065         TALLOC_CTX *_mem_save_return_authenticator_0;
9066         TALLOC_CTX *_mem_save_sequence_num_0;
9067         TALLOC_CTX *_mem_save_delta_enum_array_0;
9068         TALLOC_CTX *_mem_save_delta_enum_array_1;
9069         if (flags & NDR_IN) {
9070                 ZERO_STRUCT(r->out);
9071
9072                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9073                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9074                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9075                         return 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));
9076                 }
9077                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9078                 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));
9079                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9080                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9081                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9082                         return 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));
9083                 }
9084                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9085                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9086                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9087                         NDR_PULL_ALLOC(ndr, r->in.credential);
9088                 }
9089                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9090                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
9091                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9092                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
9093                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9094                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9095                 }
9096                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9097                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9098                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9099                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9100                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9101                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9102                         NDR_PULL_ALLOC(ndr, r->in.sequence_num);
9103                 }
9104                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9105                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9106                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
9107                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9108                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9109                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9110                 *r->out.return_authenticator = *r->in.return_authenticator;
9111                 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9112                 *r->out.sequence_num = *r->in.sequence_num;
9113                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9114                 ZERO_STRUCTP(r->out.delta_enum_array);
9115         }
9116         if (flags & NDR_OUT) {
9117                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9118                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9119                 }
9120                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9121                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9122                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9123                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9124                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9125                         NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9126                 }
9127                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9128                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9129                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
9130                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9131                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9132                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9133                 }
9134                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9135                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9136                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
9137                 if (_ptr_delta_enum_array) {
9138                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
9139                 } else {
9140                         *r->out.delta_enum_array = NULL;
9141                 }
9142                 if (*r->out.delta_enum_array) {
9143                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
9144                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
9145                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9146                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
9147                 }
9148                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9149                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9150         }
9151         return NDR_ERR_SUCCESS;
9152 }
9153
9154 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
9155 {
9156         ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
9157         ndr->depth++;
9158         if (flags & NDR_SET_VALUES) {
9159                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9160         }
9161         if (flags & NDR_IN) {
9162                 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
9163                 ndr->depth++;
9164                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9165                 ndr_print_string(ndr, "computername", r->in.computername);
9166                 ndr_print_ptr(ndr, "credential", r->in.credential);
9167                 ndr->depth++;
9168                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9169                 ndr->depth--;
9170                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9171                 ndr->depth++;
9172                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9173                 ndr->depth--;
9174                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9175                 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
9176                 ndr->depth++;
9177                 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
9178                 ndr->depth--;
9179                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9180                 ndr->depth--;
9181         }
9182         if (flags & NDR_OUT) {
9183                 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
9184                 ndr->depth++;
9185                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9186                 ndr->depth++;
9187                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9188                 ndr->depth--;
9189                 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
9190                 ndr->depth++;
9191                 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
9192                 ndr->depth--;
9193                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9194                 ndr->depth++;
9195                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
9196                 ndr->depth++;
9197                 if (*r->out.delta_enum_array) {
9198                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
9199                 }
9200                 ndr->depth--;
9201                 ndr->depth--;
9202                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9203                 ndr->depth--;
9204         }
9205         ndr->depth--;
9206 }
9207
9208 static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
9209 {
9210         if (flags & NDR_IN) {
9211                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9212                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9213                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9214                 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));
9215                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9216                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9217                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9218                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9219                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9220                 if (r->in.return_authenticator == NULL) {
9221                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9222                 }
9223                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9224                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9225                 if (r->in.sync_context == NULL) {
9226                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9227                 }
9228                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
9229                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9230         }
9231         if (flags & NDR_OUT) {
9232                 if (r->out.return_authenticator == NULL) {
9233                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9234                 }
9235                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9236                 if (r->out.sync_context == NULL) {
9237                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9238                 }
9239                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
9240                 if (r->out.delta_enum_array == NULL) {
9241                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9242                 }
9243                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9244                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9245         }
9246         return NDR_ERR_SUCCESS;
9247 }
9248
9249 static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
9250 {
9251         TALLOC_CTX *_mem_save_return_authenticator_0;
9252         TALLOC_CTX *_mem_save_sync_context_0;
9253         TALLOC_CTX *_mem_save_delta_enum_array_0;
9254         if (flags & NDR_IN) {
9255                 ZERO_STRUCT(r->out);
9256
9257                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9258                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9259                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9260                         return 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));
9261                 }
9262                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9263                 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));
9264                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9265                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9266                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9267                         return 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));
9268                 }
9269                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9270                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9271                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9272                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9273                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9274                 }
9275                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9276                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9277                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9278                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9279                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9280                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9281                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
9282                 }
9283                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9284                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
9285                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
9286                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9287                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9288                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9289                 *r->out.return_authenticator = *r->in.return_authenticator;
9290                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
9291                 *r->out.sync_context = *r->in.sync_context;
9292                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9293                 ZERO_STRUCTP(r->out.delta_enum_array);
9294         }
9295         if (flags & NDR_OUT) {
9296                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9297                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9298                 }
9299                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9300                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9301                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9302                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9303                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9304                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
9305                 }
9306                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9307                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
9308                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
9309                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9310                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9311                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9312                 }
9313                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9314                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9315                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9316                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9317                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9318         }
9319         return NDR_ERR_SUCCESS;
9320 }
9321
9322 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
9323 {
9324         ndr_print_struct(ndr, name, "netr_DatabaseSync");
9325         ndr->depth++;
9326         if (flags & NDR_SET_VALUES) {
9327                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9328         }
9329         if (flags & NDR_IN) {
9330                 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
9331                 ndr->depth++;
9332                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9333                 ndr_print_string(ndr, "computername", r->in.computername);
9334                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9335                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9336                 ndr->depth++;
9337                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9338                 ndr->depth--;
9339                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9340                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
9341                 ndr->depth++;
9342                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
9343                 ndr->depth--;
9344                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9345                 ndr->depth--;
9346         }
9347         if (flags & NDR_OUT) {
9348                 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
9349                 ndr->depth++;
9350                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9351                 ndr->depth++;
9352                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9353                 ndr->depth--;
9354                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
9355                 ndr->depth++;
9356                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
9357                 ndr->depth--;
9358                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9359                 ndr->depth++;
9360                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
9361                 ndr->depth--;
9362                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9363                 ndr->depth--;
9364         }
9365         ndr->depth--;
9366 }
9367
9368 static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
9369 {
9370         if (flags & NDR_IN) {
9371                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9372                 if (r->in.logon_server) {
9373                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9374                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9375                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9376                         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));
9377                 }
9378                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9379                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9380                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9381                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9382                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9383                 if (r->in.return_authenticator == NULL) {
9384                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9385                 }
9386                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9387                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9388                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
9389                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9390                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9391         }
9392         if (flags & NDR_OUT) {
9393                 if (r->out.return_authenticator == NULL) {
9394                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9395                 }
9396                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9397                 if (r->out.buffer == NULL) {
9398                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9399                 }
9400                 {
9401                         struct ndr_push *_ndr_buffer;
9402                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9403                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9404                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9405                 }
9406                 if (r->out.count_returned == NULL) {
9407                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9408                 }
9409                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9410                 if (r->out.total_entries == NULL) {
9411                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9412                 }
9413                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9414                 if (r->out.recordid == NULL) {
9415                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9416                 }
9417                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9418                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9419         }
9420         return NDR_ERR_SUCCESS;
9421 }
9422
9423 static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
9424 {
9425         uint32_t _ptr_logon_server;
9426         TALLOC_CTX *_mem_save_logon_server_0;
9427         TALLOC_CTX *_mem_save_return_authenticator_0;
9428         TALLOC_CTX *_mem_save_buffer_0;
9429         TALLOC_CTX *_mem_save_count_returned_0;
9430         TALLOC_CTX *_mem_save_total_entries_0;
9431         TALLOC_CTX *_mem_save_recordid_0;
9432         if (flags & NDR_IN) {
9433                 ZERO_STRUCT(r->out);
9434
9435                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9436                 if (_ptr_logon_server) {
9437                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9438                 } else {
9439                         r->in.logon_server = NULL;
9440                 }
9441                 if (r->in.logon_server) {
9442                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9443                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9444                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9445                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9446                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9447                                 return 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));
9448                         }
9449                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9450                         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));
9451                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9452                 }
9453                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9454                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9455                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9456                         return 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));
9457                 }
9458                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9459                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9460                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9461                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9462                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9463                 }
9464                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9465                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9466                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9467                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9468                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9469                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
9470                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9471                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9472                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9473                 *r->out.return_authenticator = *r->in.return_authenticator;
9474                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9475                 ZERO_STRUCTP(r->out.buffer);
9476                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9477                 ZERO_STRUCTP(r->out.count_returned);
9478                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9479                 ZERO_STRUCTP(r->out.total_entries);
9480                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9481                 ZERO_STRUCTP(r->out.recordid);
9482         }
9483         if (flags & NDR_OUT) {
9484                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9485                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9486                 }
9487                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9488                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9489                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9490                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9491                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9492                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9493                 }
9494                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9495                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9496                 {
9497                         struct ndr_pull *_ndr_buffer;
9498                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9499                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9500                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9501                 }
9502                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9503                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9504                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9505                 }
9506                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9507                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9508                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9509                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9510                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9511                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9512                 }
9513                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9514                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9515                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9516                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9517                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9518                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9519                 }
9520                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9521                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9522                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9523                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9524                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9525         }
9526         return NDR_ERR_SUCCESS;
9527 }
9528
9529 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
9530 {
9531         ndr_print_struct(ndr, name, "netr_AccountDeltas");
9532         ndr->depth++;
9533         if (flags & NDR_SET_VALUES) {
9534                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9535         }
9536         if (flags & NDR_IN) {
9537                 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
9538                 ndr->depth++;
9539                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9540                 ndr->depth++;
9541                 if (r->in.logon_server) {
9542                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9543                 }
9544                 ndr->depth--;
9545                 ndr_print_string(ndr, "computername", r->in.computername);
9546                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9547                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9548                 ndr->depth++;
9549                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9550                 ndr->depth--;
9551                 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
9552                 ndr_print_uint32(ndr, "count", r->in.count);
9553                 ndr_print_uint32(ndr, "level", r->in.level);
9554                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9555                 ndr->depth--;
9556         }
9557         if (flags & NDR_OUT) {
9558                 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
9559                 ndr->depth++;
9560                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9561                 ndr->depth++;
9562                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9563                 ndr->depth--;
9564                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9565                 ndr->depth++;
9566                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9567                 ndr->depth--;
9568                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9569                 ndr->depth++;
9570                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9571                 ndr->depth--;
9572                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9573                 ndr->depth++;
9574                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9575                 ndr->depth--;
9576                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9577                 ndr->depth++;
9578                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9579                 ndr->depth--;
9580                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9581                 ndr->depth--;
9582         }
9583         ndr->depth--;
9584 }
9585
9586 static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
9587 {
9588         if (flags & NDR_IN) {
9589                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9590                 if (r->in.logon_server) {
9591                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9592                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9593                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9594                         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));
9595                 }
9596                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9597                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9598                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9599                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9600                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9601                 if (r->in.return_authenticator == NULL) {
9602                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9603                 }
9604                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9605                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
9606                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9607                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9608                 if (r->in.recordid == NULL) {
9609                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9610                 }
9611                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9612         }
9613         if (flags & NDR_OUT) {
9614                 if (r->out.return_authenticator == NULL) {
9615                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9616                 }
9617                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9618                 if (r->out.buffer == NULL) {
9619                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9620                 }
9621                 {
9622                         struct ndr_push *_ndr_buffer;
9623                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9624                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9625                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9626                 }
9627                 if (r->out.count_returned == NULL) {
9628                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9629                 }
9630                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9631                 if (r->out.total_entries == NULL) {
9632                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9633                 }
9634                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9635                 if (r->out.next_reference == NULL) {
9636                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9637                 }
9638                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
9639                 if (r->out.recordid == NULL) {
9640                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9641                 }
9642                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9643                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9644         }
9645         return NDR_ERR_SUCCESS;
9646 }
9647
9648 static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
9649 {
9650         uint32_t _ptr_logon_server;
9651         TALLOC_CTX *_mem_save_logon_server_0;
9652         TALLOC_CTX *_mem_save_return_authenticator_0;
9653         TALLOC_CTX *_mem_save_buffer_0;
9654         TALLOC_CTX *_mem_save_count_returned_0;
9655         TALLOC_CTX *_mem_save_total_entries_0;
9656         TALLOC_CTX *_mem_save_next_reference_0;
9657         TALLOC_CTX *_mem_save_recordid_0;
9658         if (flags & NDR_IN) {
9659                 ZERO_STRUCT(r->out);
9660
9661                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9662                 if (_ptr_logon_server) {
9663                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9664                 } else {
9665                         r->in.logon_server = NULL;
9666                 }
9667                 if (r->in.logon_server) {
9668                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9669                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9670                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9671                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9672                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9673                                 return 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));
9674                         }
9675                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9676                         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));
9677                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9678                 }
9679                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9680                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9681                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9682                         return 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));
9683                 }
9684                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9685                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9686                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9687                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9688                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9689                 }
9690                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9691                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9692                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9693                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9694                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
9695                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9696                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9697                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9698                         NDR_PULL_ALLOC(ndr, r->in.recordid);
9699                 }
9700                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9701                 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
9702                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9703                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9704                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9705                 *r->out.return_authenticator = *r->in.return_authenticator;
9706                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9707                 ZERO_STRUCTP(r->out.buffer);
9708                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9709                 ZERO_STRUCTP(r->out.count_returned);
9710                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9711                 ZERO_STRUCTP(r->out.total_entries);
9712                 NDR_PULL_ALLOC(ndr, r->out.next_reference);
9713                 ZERO_STRUCTP(r->out.next_reference);
9714                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9715                 *r->out.recordid = *r->in.recordid;
9716         }
9717         if (flags & NDR_OUT) {
9718                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9719                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9720                 }
9721                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9722                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9723                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9724                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9725                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9726                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9727                 }
9728                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9729                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9730                 {
9731                         struct ndr_pull *_ndr_buffer;
9732                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9733                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9734                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9735                 }
9736                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9737                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9738                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9739                 }
9740                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9741                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9742                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9743                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9744                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9745                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9746                 }
9747                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9748                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9749                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9750                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9751                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9752                         NDR_PULL_ALLOC(ndr, r->out.next_reference);
9753                 }
9754                 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
9755                 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
9756                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
9757                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
9758                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9759                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9760                 }
9761                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9762                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9763                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9764                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9765                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9766         }
9767         return NDR_ERR_SUCCESS;
9768 }
9769
9770 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
9771 {
9772         ndr_print_struct(ndr, name, "netr_AccountSync");
9773         ndr->depth++;
9774         if (flags & NDR_SET_VALUES) {
9775                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9776         }
9777         if (flags & NDR_IN) {
9778                 ndr_print_struct(ndr, "in", "netr_AccountSync");
9779                 ndr->depth++;
9780                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9781                 ndr->depth++;
9782                 if (r->in.logon_server) {
9783                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9784                 }
9785                 ndr->depth--;
9786                 ndr_print_string(ndr, "computername", r->in.computername);
9787                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9788                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9789                 ndr->depth++;
9790                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9791                 ndr->depth--;
9792                 ndr_print_uint32(ndr, "reference", r->in.reference);
9793                 ndr_print_uint32(ndr, "level", r->in.level);
9794                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9795                 ndr_print_ptr(ndr, "recordid", r->in.recordid);
9796                 ndr->depth++;
9797                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
9798                 ndr->depth--;
9799                 ndr->depth--;
9800         }
9801         if (flags & NDR_OUT) {
9802                 ndr_print_struct(ndr, "out", "netr_AccountSync");
9803                 ndr->depth++;
9804                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9805                 ndr->depth++;
9806                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9807                 ndr->depth--;
9808                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9809                 ndr->depth++;
9810                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9811                 ndr->depth--;
9812                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9813                 ndr->depth++;
9814                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9815                 ndr->depth--;
9816                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9817                 ndr->depth++;
9818                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9819                 ndr->depth--;
9820                 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
9821                 ndr->depth++;
9822                 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
9823                 ndr->depth--;
9824                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9825                 ndr->depth++;
9826                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9827                 ndr->depth--;
9828                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9829                 ndr->depth--;
9830         }
9831         ndr->depth--;
9832 }
9833
9834 static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
9835 {
9836         if (flags & NDR_IN) {
9837                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9838                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9839                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9840                 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));
9841                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
9842                 if (r->in.domainname) {
9843                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9844                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9845                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9846                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9847                 }
9848         }
9849         if (flags & NDR_OUT) {
9850                 if (r->out.dcname == NULL) {
9851                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9852                 }
9853                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
9854                 if (*r->out.dcname) {
9855                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9856                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9857                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9858                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9859                 }
9860                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9861         }
9862         return NDR_ERR_SUCCESS;
9863 }
9864
9865 static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
9866 {
9867         uint32_t _ptr_domainname;
9868         uint32_t _ptr_dcname;
9869         TALLOC_CTX *_mem_save_domainname_0;
9870         TALLOC_CTX *_mem_save_dcname_0;
9871         TALLOC_CTX *_mem_save_dcname_1;
9872         if (flags & NDR_IN) {
9873                 ZERO_STRUCT(r->out);
9874
9875                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9876                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9877                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9878                         return 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));
9879                 }
9880                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9881                 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));
9882                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
9883                 if (_ptr_domainname) {
9884                         NDR_PULL_ALLOC(ndr, r->in.domainname);
9885                 } else {
9886                         r->in.domainname = NULL;
9887                 }
9888                 if (r->in.domainname) {
9889                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9890                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
9891                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
9892                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
9893                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
9894                                 return 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));
9895                         }
9896                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
9897                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
9898                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
9899                 }
9900                 NDR_PULL_ALLOC(ndr, r->out.dcname);
9901                 ZERO_STRUCTP(r->out.dcname);
9902         }
9903         if (flags & NDR_OUT) {
9904                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9905                         NDR_PULL_ALLOC(ndr, r->out.dcname);
9906                 }
9907                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9908                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
9909                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
9910                 if (_ptr_dcname) {
9911                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
9912                 } else {
9913                         *r->out.dcname = NULL;
9914                 }
9915                 if (*r->out.dcname) {
9916                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
9917                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
9918                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
9919                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
9920                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
9921                                 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));
9922                         }
9923                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
9924                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
9925                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
9926                 }
9927                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
9928                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9929         }
9930         return NDR_ERR_SUCCESS;
9931 }
9932
9933 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
9934 {
9935         ndr_print_struct(ndr, name, "netr_GetDcName");
9936         ndr->depth++;
9937         if (flags & NDR_SET_VALUES) {
9938                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9939         }
9940         if (flags & NDR_IN) {
9941                 ndr_print_struct(ndr, "in", "netr_GetDcName");
9942                 ndr->depth++;
9943                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9944                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
9945                 ndr->depth++;
9946                 if (r->in.domainname) {
9947                         ndr_print_string(ndr, "domainname", r->in.domainname);
9948                 }
9949                 ndr->depth--;
9950                 ndr->depth--;
9951         }
9952         if (flags & NDR_OUT) {
9953                 ndr_print_struct(ndr, "out", "netr_GetDcName");
9954                 ndr->depth++;
9955                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
9956                 ndr->depth++;
9957                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
9958                 ndr->depth++;
9959                 if (*r->out.dcname) {
9960                         ndr_print_string(ndr, "dcname", *r->out.dcname);
9961                 }
9962                 ndr->depth--;
9963                 ndr->depth--;
9964                 ndr_print_WERROR(ndr, "result", r->out.result);
9965                 ndr->depth--;
9966         }
9967         ndr->depth--;
9968 }
9969
9970 static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
9971 {
9972         if (flags & NDR_IN) {
9973                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9974                 if (r->in.logon_server) {
9975                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9976                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9977                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9978                         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));
9979                 }
9980                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
9981                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9982         }
9983         if (flags & NDR_OUT) {
9984                 if (r->out.info == NULL) {
9985                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9986                 }
9987                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
9988                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9989                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9990         }
9991         return NDR_ERR_SUCCESS;
9992 }
9993
9994 static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
9995 {
9996         uint32_t _ptr_logon_server;
9997         TALLOC_CTX *_mem_save_logon_server_0;
9998         TALLOC_CTX *_mem_save_info_0;
9999         if (flags & NDR_IN) {
10000                 ZERO_STRUCT(r->out);
10001
10002                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10003                 if (_ptr_logon_server) {
10004                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10005                 } else {
10006                         r->in.logon_server = NULL;
10007                 }
10008                 if (r->in.logon_server) {
10009                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10010                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10011                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10012                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10013                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10014                                 return 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));
10015                         }
10016                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10017                         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));
10018                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10019                 }
10020                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
10021                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10022                 NDR_PULL_ALLOC(ndr, r->out.info);
10023                 ZERO_STRUCTP(r->out.info);
10024         }
10025         if (flags & NDR_OUT) {
10026                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10027                         NDR_PULL_ALLOC(ndr, r->out.info);
10028                 }
10029                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10030                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
10031                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
10032                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10033                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
10034                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10035         }
10036         return NDR_ERR_SUCCESS;
10037 }
10038
10039 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
10040 {
10041         ndr_print_struct(ndr, name, "netr_LogonControl");
10042         ndr->depth++;
10043         if (flags & NDR_SET_VALUES) {
10044                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10045         }
10046         if (flags & NDR_IN) {
10047                 ndr_print_struct(ndr, "in", "netr_LogonControl");
10048                 ndr->depth++;
10049                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10050                 ndr->depth++;
10051                 if (r->in.logon_server) {
10052                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10053                 }
10054                 ndr->depth--;
10055                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
10056                 ndr_print_uint32(ndr, "level", r->in.level);
10057                 ndr->depth--;
10058         }
10059         if (flags & NDR_OUT) {
10060                 ndr_print_struct(ndr, "out", "netr_LogonControl");
10061                 ndr->depth++;
10062                 ndr_print_ptr(ndr, "info", r->out.info);
10063                 ndr->depth++;
10064                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
10065                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "info", r->out.info);
10066                 ndr->depth--;
10067                 ndr_print_WERROR(ndr, "result", r->out.result);
10068                 ndr->depth--;
10069         }
10070         ndr->depth--;
10071 }
10072
10073 static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
10074 {
10075         if (flags & NDR_IN) {
10076                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10077                 if (r->in.logon_server) {
10078                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10079                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10080                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10081                         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));
10082                 }
10083                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
10084                 if (r->in.domainname) {
10085                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10086                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10087                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10088                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10089                 }
10090         }
10091         if (flags & NDR_OUT) {
10092                 if (r->out.dcname == NULL) {
10093                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10094                 }
10095                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
10096                 if (*r->out.dcname) {
10097                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10098                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10099                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10100                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10101                 }
10102                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10103         }
10104         return NDR_ERR_SUCCESS;
10105 }
10106
10107 static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
10108 {
10109         uint32_t _ptr_logon_server;
10110         uint32_t _ptr_domainname;
10111         uint32_t _ptr_dcname;
10112         TALLOC_CTX *_mem_save_logon_server_0;
10113         TALLOC_CTX *_mem_save_domainname_0;
10114         TALLOC_CTX *_mem_save_dcname_0;
10115         TALLOC_CTX *_mem_save_dcname_1;
10116         if (flags & NDR_IN) {
10117                 ZERO_STRUCT(r->out);
10118
10119                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10120                 if (_ptr_logon_server) {
10121                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10122                 } else {
10123                         r->in.logon_server = NULL;
10124                 }
10125                 if (r->in.logon_server) {
10126                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10127                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10128                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10129                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10130                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10131                                 return 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));
10132                         }
10133                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10134                         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));
10135                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10136                 }
10137                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
10138                 if (_ptr_domainname) {
10139                         NDR_PULL_ALLOC(ndr, r->in.domainname);
10140                 } else {
10141                         r->in.domainname = NULL;
10142                 }
10143                 if (r->in.domainname) {
10144                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10145                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
10146                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
10147                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
10148                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
10149                                 return 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));
10150                         }
10151                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
10152                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
10153                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
10154                 }
10155                 NDR_PULL_ALLOC(ndr, r->out.dcname);
10156                 ZERO_STRUCTP(r->out.dcname);
10157         }
10158         if (flags & NDR_OUT) {
10159                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10160                         NDR_PULL_ALLOC(ndr, r->out.dcname);
10161                 }
10162                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10163                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
10164                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
10165                 if (_ptr_dcname) {
10166                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
10167                 } else {
10168                         *r->out.dcname = NULL;
10169                 }
10170                 if (*r->out.dcname) {
10171                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
10172                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
10173                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
10174                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
10175                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
10176                                 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));
10177                         }
10178                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
10179                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
10180                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
10181                 }
10182                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
10183                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10184         }
10185         return NDR_ERR_SUCCESS;
10186 }
10187
10188 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
10189 {
10190         ndr_print_struct(ndr, name, "netr_GetAnyDCName");
10191         ndr->depth++;
10192         if (flags & NDR_SET_VALUES) {
10193                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10194         }
10195         if (flags & NDR_IN) {
10196                 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
10197                 ndr->depth++;
10198                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10199                 ndr->depth++;
10200                 if (r->in.logon_server) {
10201                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10202                 }
10203                 ndr->depth--;
10204                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
10205                 ndr->depth++;
10206                 if (r->in.domainname) {
10207                         ndr_print_string(ndr, "domainname", r->in.domainname);
10208                 }
10209                 ndr->depth--;
10210                 ndr->depth--;
10211         }
10212         if (flags & NDR_OUT) {
10213                 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
10214                 ndr->depth++;
10215                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
10216                 ndr->depth++;
10217                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
10218                 ndr->depth++;
10219                 if (*r->out.dcname) {
10220                         ndr_print_string(ndr, "dcname", *r->out.dcname);
10221                 }
10222                 ndr->depth--;
10223                 ndr->depth--;
10224                 ndr_print_WERROR(ndr, "result", r->out.result);
10225                 ndr->depth--;
10226         }
10227         ndr->depth--;
10228 }
10229
10230 static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
10231 {
10232         if (flags & NDR_IN) {
10233                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10234                 if (r->in.logon_server) {
10235                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10236                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10237                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10238                         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));
10239                 }
10240                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
10241                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10242                 if (r->in.data == NULL) {
10243                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10244                 }
10245                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
10246                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
10247         }
10248         if (flags & NDR_OUT) {
10249                 if (r->out.query == NULL) {
10250                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10251                 }
10252                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10253                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10254                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10255         }
10256         return NDR_ERR_SUCCESS;
10257 }
10258
10259 static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
10260 {
10261         uint32_t _ptr_logon_server;
10262         TALLOC_CTX *_mem_save_logon_server_0;
10263         TALLOC_CTX *_mem_save_data_0;
10264         TALLOC_CTX *_mem_save_query_0;
10265         if (flags & NDR_IN) {
10266                 ZERO_STRUCT(r->out);
10267
10268                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10269                 if (_ptr_logon_server) {
10270                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10271                 } else {
10272                         r->in.logon_server = NULL;
10273                 }
10274                 if (r->in.logon_server) {
10275                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10276                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10277                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10278                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10279                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10280                                 return 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));
10281                         }
10282                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10283                         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));
10284                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10285                 }
10286                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
10287                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10288                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10289                         NDR_PULL_ALLOC(ndr, r->in.data);
10290                 }
10291                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
10292                 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
10293                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
10294                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
10295                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
10296                 NDR_PULL_ALLOC(ndr, r->out.query);
10297                 ZERO_STRUCTP(r->out.query);
10298         }
10299         if (flags & NDR_OUT) {
10300                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10301                         NDR_PULL_ALLOC(ndr, r->out.query);
10302                 }
10303                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10304                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10305                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10306                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10307                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10308                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10309         }
10310         return NDR_ERR_SUCCESS;
10311 }
10312
10313 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
10314 {
10315         ndr_print_struct(ndr, name, "netr_LogonControl2");
10316         ndr->depth++;
10317         if (flags & NDR_SET_VALUES) {
10318                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10319         }
10320         if (flags & NDR_IN) {
10321                 ndr_print_struct(ndr, "in", "netr_LogonControl2");
10322                 ndr->depth++;
10323                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10324                 ndr->depth++;
10325                 if (r->in.logon_server) {
10326                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10327                 }
10328                 ndr->depth--;
10329                 ndr_print_uint32(ndr, "function_code", r->in.function_code);
10330                 ndr_print_uint32(ndr, "level", r->in.level);
10331                 ndr_print_ptr(ndr, "data", r->in.data);
10332                 ndr->depth++;
10333                 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
10334                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
10335                 ndr->depth--;
10336                 ndr->depth--;
10337         }
10338         if (flags & NDR_OUT) {
10339                 ndr_print_struct(ndr, "out", "netr_LogonControl2");
10340                 ndr->depth++;
10341                 ndr_print_ptr(ndr, "query", r->out.query);
10342                 ndr->depth++;
10343                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10344                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10345                 ndr->depth--;
10346                 ndr_print_WERROR(ndr, "result", r->out.result);
10347                 ndr->depth--;
10348         }
10349         ndr->depth--;
10350 }
10351
10352 static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
10353 {
10354         if (flags & NDR_IN) {
10355                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10356                 if (r->in.server_name) {
10357                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10358                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10359                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10360                         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));
10361                 }
10362                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10363                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10364                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10365                 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));
10366                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
10367                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10368                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10369                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10370                 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));
10371                 if (r->in.credentials == NULL) {
10372                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10373                 }
10374                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10375                 if (r->in.negotiate_flags == NULL) {
10376                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10377                 }
10378                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.negotiate_flags));
10379         }
10380         if (flags & NDR_OUT) {
10381                 if (r->out.return_credentials == NULL) {
10382                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10383                 }
10384                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10385                 if (r->out.negotiate_flags == NULL) {
10386                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10387                 }
10388                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.negotiate_flags));
10389                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10390         }
10391         return NDR_ERR_SUCCESS;
10392 }
10393
10394 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
10395 {
10396         uint32_t _ptr_server_name;
10397         TALLOC_CTX *_mem_save_server_name_0;
10398         TALLOC_CTX *_mem_save_credentials_0;
10399         TALLOC_CTX *_mem_save_return_credentials_0;
10400         TALLOC_CTX *_mem_save_negotiate_flags_0;
10401         if (flags & NDR_IN) {
10402                 ZERO_STRUCT(r->out);
10403
10404                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10405                 if (_ptr_server_name) {
10406                         NDR_PULL_ALLOC(ndr, r->in.server_name);
10407                 } else {
10408                         r->in.server_name = NULL;
10409                 }
10410                 if (r->in.server_name) {
10411                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10412                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10413                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10414                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10415                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10416                                 return 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));
10417                         }
10418                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10419                         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));
10420                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10421                 }
10422                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
10423                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
10424                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
10425                         return 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));
10426                 }
10427                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
10428                 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));
10429                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
10430                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10431                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10432                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10433                         return 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));
10434                 }
10435                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10436                 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));
10437                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10438                         NDR_PULL_ALLOC(ndr, r->in.credentials);
10439                 }
10440                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10441                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
10442                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10443                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10444                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10445                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
10446                 }
10447                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10448                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10449                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.negotiate_flags));
10450                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10451                 NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10452                 ZERO_STRUCTP(r->out.return_credentials);
10453                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10454                 *r->out.negotiate_flags = *r->in.negotiate_flags;
10455         }
10456         if (flags & NDR_OUT) {
10457                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10458                         NDR_PULL_ALLOC(ndr, r->out.return_credentials);
10459                 }
10460                 _mem_save_return_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10461                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_credentials, LIBNDR_FLAG_REF_ALLOC);
10462                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.return_credentials));
10463                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10464                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10465                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10466                 }
10467                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10468                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10469                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.negotiate_flags));
10470                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10471                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10472         }
10473         return NDR_ERR_SUCCESS;
10474 }
10475
10476 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
10477 {
10478         ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
10479         ndr->depth++;
10480         if (flags & NDR_SET_VALUES) {
10481                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10482         }
10483         if (flags & NDR_IN) {
10484                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
10485                 ndr->depth++;
10486                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10487                 ndr->depth++;
10488                 if (r->in.server_name) {
10489                         ndr_print_string(ndr, "server_name", r->in.server_name);
10490                 }
10491                 ndr->depth--;
10492                 ndr_print_string(ndr, "account_name", r->in.account_name);
10493                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10494                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10495                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
10496                 ndr->depth++;
10497                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
10498                 ndr->depth--;
10499                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
10500                 ndr->depth++;
10501                 ndr_print_uint32(ndr, "negotiate_flags", *r->in.negotiate_flags);
10502                 ndr->depth--;
10503                 ndr->depth--;
10504         }
10505         if (flags & NDR_OUT) {
10506                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
10507                 ndr->depth++;
10508                 ndr_print_ptr(ndr, "return_credentials", r->out.return_credentials);
10509                 ndr->depth++;
10510                 ndr_print_netr_Credential(ndr, "return_credentials", r->out.return_credentials);
10511                 ndr->depth--;
10512                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
10513                 ndr->depth++;
10514                 ndr_print_uint32(ndr, "negotiate_flags", *r->out.negotiate_flags);
10515                 ndr->depth--;
10516                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10517                 ndr->depth--;
10518         }
10519         ndr->depth--;
10520 }
10521
10522 static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
10523 {
10524         if (flags & NDR_IN) {
10525                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10526                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10527                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10528                 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));
10529                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10530                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10531                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10532                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10533                 if (r->in.credential == NULL) {
10534                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10535                 }
10536                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10537                 if (r->in.return_authenticator == NULL) {
10538                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10539                 }
10540                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10541                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10542                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.restart_state));
10543                 if (r->in.sync_context == NULL) {
10544                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10545                 }
10546                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
10547                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10548         }
10549         if (flags & NDR_OUT) {
10550                 if (r->out.return_authenticator == NULL) {
10551                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10552                 }
10553                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10554                 if (r->out.sync_context == NULL) {
10555                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10556                 }
10557                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
10558                 if (r->out.delta_enum_array == NULL) {
10559                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10560                 }
10561                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
10562                 if (*r->out.delta_enum_array) {
10563                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10564                 }
10565                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10566         }
10567         return NDR_ERR_SUCCESS;
10568 }
10569
10570 static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
10571 {
10572         uint32_t _ptr_delta_enum_array;
10573         TALLOC_CTX *_mem_save_credential_0;
10574         TALLOC_CTX *_mem_save_return_authenticator_0;
10575         TALLOC_CTX *_mem_save_sync_context_0;
10576         TALLOC_CTX *_mem_save_delta_enum_array_0;
10577         TALLOC_CTX *_mem_save_delta_enum_array_1;
10578         if (flags & NDR_IN) {
10579                 ZERO_STRUCT(r->out);
10580
10581                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10582                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10583                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10584                         return 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));
10585                 }
10586                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10587                 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));
10588                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10589                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10590                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10591                         return 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));
10592                 }
10593                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10594                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10595                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10596                         NDR_PULL_ALLOC(ndr, r->in.credential);
10597                 }
10598                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
10599                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
10600                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
10601                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
10602                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10603                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10604                 }
10605                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10606                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10607                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10608                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10609                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10610                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.restart_state));
10611                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10612                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
10613                 }
10614                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10615                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
10616                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
10617                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10618                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10619                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10620                 *r->out.return_authenticator = *r->in.return_authenticator;
10621                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10622                 *r->out.sync_context = *r->in.sync_context;
10623                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10624                 ZERO_STRUCTP(r->out.delta_enum_array);
10625         }
10626         if (flags & NDR_OUT) {
10627                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10628                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10629                 }
10630                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10631                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10632                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10633                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10634                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10635                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
10636                 }
10637                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10638                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
10639                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
10640                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10641                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10642                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10643                 }
10644                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10645                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10646                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
10647                 if (_ptr_delta_enum_array) {
10648                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
10649                 } else {
10650                         *r->out.delta_enum_array = NULL;
10651                 }
10652                 if (*r->out.delta_enum_array) {
10653                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
10654                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
10655                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
10656                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
10657                 }
10658                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10659                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10660         }
10661         return NDR_ERR_SUCCESS;
10662 }
10663
10664 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
10665 {
10666         ndr_print_struct(ndr, name, "netr_DatabaseSync2");
10667         ndr->depth++;
10668         if (flags & NDR_SET_VALUES) {
10669                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10670         }
10671         if (flags & NDR_IN) {
10672                 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
10673                 ndr->depth++;
10674                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10675                 ndr_print_string(ndr, "computername", r->in.computername);
10676                 ndr_print_ptr(ndr, "credential", r->in.credential);
10677                 ndr->depth++;
10678                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
10679                 ndr->depth--;
10680                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10681                 ndr->depth++;
10682                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10683                 ndr->depth--;
10684                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10685                 ndr_print_uint16(ndr, "restart_state", r->in.restart_state);
10686                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
10687                 ndr->depth++;
10688                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
10689                 ndr->depth--;
10690                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10691                 ndr->depth--;
10692         }
10693         if (flags & NDR_OUT) {
10694                 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
10695                 ndr->depth++;
10696                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10697                 ndr->depth++;
10698                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10699                 ndr->depth--;
10700                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
10701                 ndr->depth++;
10702                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
10703                 ndr->depth--;
10704                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10705                 ndr->depth++;
10706                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
10707                 ndr->depth++;
10708                 if (*r->out.delta_enum_array) {
10709                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
10710                 }
10711                 ndr->depth--;
10712                 ndr->depth--;
10713                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10714                 ndr->depth--;
10715         }
10716         ndr->depth--;
10717 }
10718
10719 static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
10720 {
10721         if (flags & NDR_IN) {
10722                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10723                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10724                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10725                 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));
10726                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10727                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10728                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10729                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10730                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10731                 if (r->in.return_authenticator == NULL) {
10732                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10733                 }
10734                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10735                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.change_log_entry));
10736                 if (r->in.change_log_entry) {
10737                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10738                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, r->in.change_log_entry_size));
10739                 }
10740                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10741         }
10742         if (flags & NDR_OUT) {
10743                 if (r->out.return_authenticator == NULL) {
10744                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10745                 }
10746                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10747                 if (r->out.delta_enum_array == NULL) {
10748                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10749                 }
10750                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10751                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10752         }
10753         return NDR_ERR_SUCCESS;
10754 }
10755
10756 static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
10757 {
10758         uint32_t _ptr_change_log_entry;
10759         TALLOC_CTX *_mem_save_return_authenticator_0;
10760         TALLOC_CTX *_mem_save_change_log_entry_0;
10761         TALLOC_CTX *_mem_save_delta_enum_array_0;
10762         if (flags & NDR_IN) {
10763                 ZERO_STRUCT(r->out);
10764
10765                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10766                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10767                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10768                         return 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));
10769                 }
10770                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10771                 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));
10772                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10773                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10774                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10775                         return 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));
10776                 }
10777                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10778                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10779                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10780                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10781                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10782                 }
10783                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10784                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10785                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10786                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10787                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_change_log_entry));
10788                 if (_ptr_change_log_entry) {
10789                         NDR_PULL_ALLOC(ndr, r->in.change_log_entry);
10790                 } else {
10791                         r->in.change_log_entry = NULL;
10792                 }
10793                 if (r->in.change_log_entry) {
10794                         _mem_save_change_log_entry_0 = NDR_PULL_GET_MEM_CTX(ndr);
10795                         NDR_PULL_SET_MEM_CTX(ndr, r->in.change_log_entry, 0);
10796                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.change_log_entry));
10797                         NDR_PULL_ALLOC_N(ndr, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry));
10798                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry)));
10799                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_change_log_entry_0, 0);
10800                 }
10801                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
10802                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10803                 *r->out.return_authenticator = *r->in.return_authenticator;
10804                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10805                 ZERO_STRUCTP(r->out.delta_enum_array);
10806                 if (r->in.change_log_entry) {
10807                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.change_log_entry, r->in.change_log_entry_size));
10808                 }
10809         }
10810         if (flags & NDR_OUT) {
10811                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10812                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10813                 }
10814                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10815                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10816                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10817                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10818                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10819                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10820                 }
10821                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10822                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10823                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10824                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10825                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10826         }
10827         return NDR_ERR_SUCCESS;
10828 }
10829
10830 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
10831 {
10832         ndr_print_struct(ndr, name, "netr_DatabaseRedo");
10833         ndr->depth++;
10834         if (flags & NDR_SET_VALUES) {
10835                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10836         }
10837         if (flags & NDR_IN) {
10838                 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
10839                 ndr->depth++;
10840                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10841                 ndr_print_string(ndr, "computername", r->in.computername);
10842                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10843                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10844                 ndr->depth++;
10845                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10846                 ndr->depth--;
10847                 ndr_print_ptr(ndr, "change_log_entry", r->in.change_log_entry);
10848                 ndr->depth++;
10849                 if (r->in.change_log_entry) {
10850                         ndr_print_array_uint8(ndr, "change_log_entry", r->in.change_log_entry, r->in.change_log_entry_size);
10851                 }
10852                 ndr->depth--;
10853                 ndr_print_uint32(ndr, "change_log_entry_size", r->in.change_log_entry_size);
10854                 ndr->depth--;
10855         }
10856         if (flags & NDR_OUT) {
10857                 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
10858                 ndr->depth++;
10859                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10860                 ndr->depth++;
10861                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10862                 ndr->depth--;
10863                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10864                 ndr->depth++;
10865                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
10866                 ndr->depth--;
10867                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10868                 ndr->depth--;
10869         }
10870         ndr->depth--;
10871 }
10872
10873 static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
10874 {
10875         if (flags & NDR_IN) {
10876                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10877                 if (r->in.logon_server) {
10878                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10879                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10880                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10881                         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));
10882                 }
10883                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
10884                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10885                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
10886                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10887         }
10888         if (flags & NDR_OUT) {
10889                 if (r->out.query == NULL) {
10890                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10891                 }
10892                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10893                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10894                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10895         }
10896         return NDR_ERR_SUCCESS;
10897 }
10898
10899 static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
10900 {
10901         uint32_t _ptr_logon_server;
10902         TALLOC_CTX *_mem_save_logon_server_0;
10903         TALLOC_CTX *_mem_save_query_0;
10904         if (flags & NDR_IN) {
10905                 ZERO_STRUCT(r->out);
10906
10907                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10908                 if (_ptr_logon_server) {
10909                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10910                 } else {
10911                         r->in.logon_server = NULL;
10912                 }
10913                 if (r->in.logon_server) {
10914                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10915                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10916                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10917                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10918                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10919                                 return 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));
10920                         }
10921                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10922                         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));
10923                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10924                 }
10925                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
10926                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10927                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
10928                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10929                 NDR_PULL_ALLOC(ndr, r->out.query);
10930                 ZERO_STRUCTP(r->out.query);
10931         }
10932         if (flags & NDR_OUT) {
10933                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10934                         NDR_PULL_ALLOC(ndr, r->out.query);
10935                 }
10936                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10937                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10938                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10939                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10940                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10941                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10942         }
10943         return NDR_ERR_SUCCESS;
10944 }
10945
10946 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
10947 {
10948         ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
10949         ndr->depth++;
10950         if (flags & NDR_SET_VALUES) {
10951                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10952         }
10953         if (flags & NDR_IN) {
10954                 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
10955                 ndr->depth++;
10956                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10957                 ndr->depth++;
10958                 if (r->in.logon_server) {
10959                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10960                 }
10961                 ndr->depth--;
10962                 ndr_print_uint32(ndr, "function_code", r->in.function_code);
10963                 ndr_print_uint32(ndr, "level", r->in.level);
10964                 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
10965                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
10966                 ndr->depth--;
10967         }
10968         if (flags & NDR_OUT) {
10969                 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
10970                 ndr->depth++;
10971                 ndr_print_ptr(ndr, "query", r->out.query);
10972                 ndr->depth++;
10973                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10974                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10975                 ndr->depth--;
10976                 ndr_print_WERROR(ndr, "result", r->out.result);
10977                 ndr->depth--;
10978         }
10979         ndr->depth--;
10980 }
10981
10982 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
10983 {
10984         if (flags & NDR_IN) {
10985                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10986                 if (r->in.server_name) {
10987                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10988                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10989                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10990                         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));
10991                 }
10992         }
10993         if (flags & NDR_OUT) {
10994                 if (r->out.trusted_domains_blob == NULL) {
10995                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10996                 }
10997                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
10998                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10999         }
11000         return NDR_ERR_SUCCESS;
11001 }
11002
11003 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r)
11004 {
11005         uint32_t _ptr_server_name;
11006         TALLOC_CTX *_mem_save_server_name_0;
11007         TALLOC_CTX *_mem_save_trusted_domains_blob_0;
11008         if (flags & NDR_IN) {
11009                 ZERO_STRUCT(r->out);
11010
11011                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11012                 if (_ptr_server_name) {
11013                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11014                 } else {
11015                         r->in.server_name = NULL;
11016                 }
11017                 if (r->in.server_name) {
11018                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11019                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11020                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11021                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11022                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11023                                 return 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));
11024                         }
11025                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11026                         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));
11027                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11028                 }
11029                 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11030                 ZERO_STRUCTP(r->out.trusted_domains_blob);
11031         }
11032         if (flags & NDR_OUT) {
11033                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11034                         NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
11035                 }
11036                 _mem_save_trusted_domains_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
11037                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusted_domains_blob, LIBNDR_FLAG_REF_ALLOC);
11038                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
11039                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_blob_0, LIBNDR_FLAG_REF_ALLOC);
11040                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11041         }
11042         return NDR_ERR_SUCCESS;
11043 }
11044
11045 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
11046 {
11047         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomains");
11048         ndr->depth++;
11049         if (flags & NDR_SET_VALUES) {
11050                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11051         }
11052         if (flags & NDR_IN) {
11053                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomains");
11054                 ndr->depth++;
11055                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11056                 ndr->depth++;
11057                 if (r->in.server_name) {
11058                         ndr_print_string(ndr, "server_name", r->in.server_name);
11059                 }
11060                 ndr->depth--;
11061                 ndr->depth--;
11062         }
11063         if (flags & NDR_OUT) {
11064                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomains");
11065                 ndr->depth++;
11066                 ndr_print_ptr(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11067                 ndr->depth++;
11068                 ndr_print_netr_Blob(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11069                 ndr->depth--;
11070                 ndr_print_WERROR(ndr, "result", r->out.result);
11071                 ndr->depth--;
11072         }
11073         ndr->depth--;
11074 }
11075
11076 static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
11077 {
11078         if (flags & NDR_IN) {
11079                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11080                 if (r->in.server_unc) {
11081                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11082                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11083                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11084                         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));
11085                 }
11086                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11087                 if (r->in.domain_name) {
11088                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11089                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11090                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11091                         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));
11092                 }
11093                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11094                 if (r->in.domain_guid) {
11095                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11096                 }
11097                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
11098                 if (r->in.site_guid) {
11099                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
11100                 }
11101                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11102         }
11103         if (flags & NDR_OUT) {
11104                 if (r->out.info == NULL) {
11105                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11106                 }
11107                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
11108                 if (*r->out.info) {
11109                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11110                 }
11111                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11112         }
11113         return NDR_ERR_SUCCESS;
11114 }
11115
11116 static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
11117 {
11118         uint32_t _ptr_server_unc;
11119         uint32_t _ptr_domain_name;
11120         uint32_t _ptr_domain_guid;
11121         uint32_t _ptr_site_guid;
11122         uint32_t _ptr_info;
11123         TALLOC_CTX *_mem_save_server_unc_0;
11124         TALLOC_CTX *_mem_save_domain_name_0;
11125         TALLOC_CTX *_mem_save_domain_guid_0;
11126         TALLOC_CTX *_mem_save_site_guid_0;
11127         TALLOC_CTX *_mem_save_info_0;
11128         TALLOC_CTX *_mem_save_info_1;
11129         if (flags & NDR_IN) {
11130                 ZERO_STRUCT(r->out);
11131
11132                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11133                 if (_ptr_server_unc) {
11134                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
11135                 } else {
11136                         r->in.server_unc = NULL;
11137                 }
11138                 if (r->in.server_unc) {
11139                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11140                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11141                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11142                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11143                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11144                                 return 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));
11145                         }
11146                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11147                         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));
11148                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11149                 }
11150                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11151                 if (_ptr_domain_name) {
11152                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11153                 } else {
11154                         r->in.domain_name = NULL;
11155                 }
11156                 if (r->in.domain_name) {
11157                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11158                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11159                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11160                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11161                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11162                                 return 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));
11163                         }
11164                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11165                         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));
11166                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11167                 }
11168                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11169                 if (_ptr_domain_guid) {
11170                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11171                 } else {
11172                         r->in.domain_guid = NULL;
11173                 }
11174                 if (r->in.domain_guid) {
11175                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11176                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11177                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11178                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11179                 }
11180                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
11181                 if (_ptr_site_guid) {
11182                         NDR_PULL_ALLOC(ndr, r->in.site_guid);
11183                 } else {
11184                         r->in.site_guid = NULL;
11185                 }
11186                 if (r->in.site_guid) {
11187                         _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11188                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
11189                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
11190                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
11191                 }
11192                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11193                 NDR_PULL_ALLOC(ndr, r->out.info);
11194                 ZERO_STRUCTP(r->out.info);
11195         }
11196         if (flags & NDR_OUT) {
11197                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11198                         NDR_PULL_ALLOC(ndr, r->out.info);
11199                 }
11200                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11201                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11202                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11203                 if (_ptr_info) {
11204                         NDR_PULL_ALLOC(ndr, *r->out.info);
11205                 } else {
11206                         *r->out.info = NULL;
11207                 }
11208                 if (*r->out.info) {
11209                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
11210                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
11211                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11212                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
11213                 }
11214                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11215                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11216         }
11217         return NDR_ERR_SUCCESS;
11218 }
11219
11220 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
11221 {
11222         ndr_print_struct(ndr, name, "netr_DsRGetDCName");
11223         ndr->depth++;
11224         if (flags & NDR_SET_VALUES) {
11225                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11226         }
11227         if (flags & NDR_IN) {
11228                 ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
11229                 ndr->depth++;
11230                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11231                 ndr->depth++;
11232                 if (r->in.server_unc) {
11233                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11234                 }
11235                 ndr->depth--;
11236                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11237                 ndr->depth++;
11238                 if (r->in.domain_name) {
11239                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11240                 }
11241                 ndr->depth--;
11242                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11243                 ndr->depth++;
11244                 if (r->in.domain_guid) {
11245                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11246                 }
11247                 ndr->depth--;
11248                 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
11249                 ndr->depth++;
11250                 if (r->in.site_guid) {
11251                         ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
11252                 }
11253                 ndr->depth--;
11254                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11255                 ndr->depth--;
11256         }
11257         if (flags & NDR_OUT) {
11258                 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
11259                 ndr->depth++;
11260                 ndr_print_ptr(ndr, "info", r->out.info);
11261                 ndr->depth++;
11262                 ndr_print_ptr(ndr, "info", *r->out.info);
11263                 ndr->depth++;
11264                 if (*r->out.info) {
11265                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
11266                 }
11267                 ndr->depth--;
11268                 ndr->depth--;
11269                 ndr_print_WERROR(ndr, "result", r->out.result);
11270                 ndr->depth--;
11271         }
11272         ndr->depth--;
11273 }
11274
11275 static enum ndr_err_code ndr_push_netr_NETRLOGONDUMMYROUTINE1(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11276 {
11277         if (flags & NDR_IN) {
11278         }
11279         if (flags & NDR_OUT) {
11280                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11281         }
11282         return NDR_ERR_SUCCESS;
11283 }
11284
11285 static enum ndr_err_code ndr_pull_netr_NETRLOGONDUMMYROUTINE1(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONDUMMYROUTINE1 *r)
11286 {
11287         if (flags & NDR_IN) {
11288         }
11289         if (flags & NDR_OUT) {
11290                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11291         }
11292         return NDR_ERR_SUCCESS;
11293 }
11294
11295 _PUBLIC_ void ndr_print_netr_NETRLOGONDUMMYROUTINE1(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11296 {
11297         ndr_print_struct(ndr, name, "netr_NETRLOGONDUMMYROUTINE1");
11298         ndr->depth++;
11299         if (flags & NDR_SET_VALUES) {
11300                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11301         }
11302         if (flags & NDR_IN) {
11303                 ndr_print_struct(ndr, "in", "netr_NETRLOGONDUMMYROUTINE1");
11304                 ndr->depth++;
11305                 ndr->depth--;
11306         }
11307         if (flags & NDR_OUT) {
11308                 ndr_print_struct(ndr, "out", "netr_NETRLOGONDUMMYROUTINE1");
11309                 ndr->depth++;
11310                 ndr_print_WERROR(ndr, "result", r->out.result);
11311                 ndr->depth--;
11312         }
11313         ndr->depth--;
11314 }
11315
11316 static enum ndr_err_code ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11317 {
11318         if (flags & NDR_IN) {
11319         }
11320         if (flags & NDR_OUT) {
11321                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11322         }
11323         return NDR_ERR_SUCCESS;
11324 }
11325
11326 static enum ndr_err_code ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
11327 {
11328         if (flags & NDR_IN) {
11329         }
11330         if (flags & NDR_OUT) {
11331                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11332         }
11333         return NDR_ERR_SUCCESS;
11334 }
11335
11336 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11337 {
11338         ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
11339         ndr->depth++;
11340         if (flags & NDR_SET_VALUES) {
11341                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11342         }
11343         if (flags & NDR_IN) {
11344                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
11345                 ndr->depth++;
11346                 ndr->depth--;
11347         }
11348         if (flags & NDR_OUT) {
11349                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
11350                 ndr->depth++;
11351                 ndr_print_WERROR(ndr, "result", r->out.result);
11352                 ndr->depth--;
11353         }
11354         ndr->depth--;
11355 }
11356
11357 static enum ndr_err_code ndr_push_netr_LogonGetTrustRid(struct ndr_push *ndr, int flags, const struct netr_LogonGetTrustRid *r)
11358 {
11359         if (flags & NDR_IN) {
11360                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11361                 if (r->in.server_name) {
11362                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11363                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11364                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11365                         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));
11366                 }
11367                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11368                 if (r->in.domain_name) {
11369                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11370                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11371                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11372                         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));
11373                 }
11374         }
11375         if (flags & NDR_OUT) {
11376                 if (r->out.rid == NULL) {
11377                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11378                 }
11379                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11380                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11381         }
11382         return NDR_ERR_SUCCESS;
11383 }
11384
11385 static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, int flags, struct netr_LogonGetTrustRid *r)
11386 {
11387         uint32_t _ptr_server_name;
11388         uint32_t _ptr_domain_name;
11389         TALLOC_CTX *_mem_save_server_name_0;
11390         TALLOC_CTX *_mem_save_domain_name_0;
11391         TALLOC_CTX *_mem_save_rid_0;
11392         if (flags & NDR_IN) {
11393                 ZERO_STRUCT(r->out);
11394
11395                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11396                 if (_ptr_server_name) {
11397                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11398                 } else {
11399                         r->in.server_name = NULL;
11400                 }
11401                 if (r->in.server_name) {
11402                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11403                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11404                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11405                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11406                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11407                                 return 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));
11408                         }
11409                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11410                         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));
11411                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11412                 }
11413                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11414                 if (_ptr_domain_name) {
11415                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11416                 } else {
11417                         r->in.domain_name = NULL;
11418                 }
11419                 if (r->in.domain_name) {
11420                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11421                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11422                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11423                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11424                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11425                                 return 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));
11426                         }
11427                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11428                         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));
11429                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11430                 }
11431                 NDR_PULL_ALLOC(ndr, r->out.rid);
11432                 ZERO_STRUCTP(r->out.rid);
11433         }
11434         if (flags & NDR_OUT) {
11435                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11436                         NDR_PULL_ALLOC(ndr, r->out.rid);
11437                 }
11438                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11439                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11440                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11441                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11442                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11443         }
11444         return NDR_ERR_SUCCESS;
11445 }
11446
11447 _PUBLIC_ void ndr_print_netr_LogonGetTrustRid(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetTrustRid *r)
11448 {
11449         ndr_print_struct(ndr, name, "netr_LogonGetTrustRid");
11450         ndr->depth++;
11451         if (flags & NDR_SET_VALUES) {
11452                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11453         }
11454         if (flags & NDR_IN) {
11455                 ndr_print_struct(ndr, "in", "netr_LogonGetTrustRid");
11456                 ndr->depth++;
11457                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11458                 ndr->depth++;
11459                 if (r->in.server_name) {
11460                         ndr_print_string(ndr, "server_name", r->in.server_name);
11461                 }
11462                 ndr->depth--;
11463                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11464                 ndr->depth++;
11465                 if (r->in.domain_name) {
11466                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11467                 }
11468                 ndr->depth--;
11469                 ndr->depth--;
11470         }
11471         if (flags & NDR_OUT) {
11472                 ndr_print_struct(ndr, "out", "netr_LogonGetTrustRid");
11473                 ndr->depth++;
11474                 ndr_print_ptr(ndr, "rid", r->out.rid);
11475                 ndr->depth++;
11476                 ndr_print_uint32(ndr, "rid", *r->out.rid);
11477                 ndr->depth--;
11478                 ndr_print_WERROR(ndr, "result", r->out.result);
11479                 ndr->depth--;
11480         }
11481         ndr->depth--;
11482 }
11483
11484 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11485 {
11486         if (flags & NDR_IN) {
11487         }
11488         if (flags & NDR_OUT) {
11489                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11490         }
11491         return NDR_ERR_SUCCESS;
11492 }
11493
11494 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11495 {
11496         if (flags & NDR_IN) {
11497         }
11498         if (flags & NDR_OUT) {
11499                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11500         }
11501         return NDR_ERR_SUCCESS;
11502 }
11503
11504 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11505 {
11506         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
11507         ndr->depth++;
11508         if (flags & NDR_SET_VALUES) {
11509                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11510         }
11511         if (flags & NDR_IN) {
11512                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11513                 ndr->depth++;
11514                 ndr->depth--;
11515         }
11516         if (flags & NDR_OUT) {
11517                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11518                 ndr->depth++;
11519                 ndr_print_WERROR(ndr, "result", r->out.result);
11520                 ndr->depth--;
11521         }
11522         ndr->depth--;
11523 }
11524
11525 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11526 {
11527         if (flags & NDR_IN) {
11528         }
11529         if (flags & NDR_OUT) {
11530                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11531         }
11532         return NDR_ERR_SUCCESS;
11533 }
11534
11535 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11536 {
11537         if (flags & NDR_IN) {
11538         }
11539         if (flags & NDR_OUT) {
11540                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11541         }
11542         return NDR_ERR_SUCCESS;
11543 }
11544
11545 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11546 {
11547         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11548         ndr->depth++;
11549         if (flags & NDR_SET_VALUES) {
11550                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11551         }
11552         if (flags & NDR_IN) {
11553                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11554                 ndr->depth++;
11555                 ndr->depth--;
11556         }
11557         if (flags & NDR_OUT) {
11558                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11559                 ndr->depth++;
11560                 ndr_print_WERROR(ndr, "result", r->out.result);
11561                 ndr->depth--;
11562         }
11563         ndr->depth--;
11564 }
11565
11566 static enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
11567 {
11568         if (flags & NDR_IN) {
11569                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11570                 if (r->in.server_name) {
11571                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11572                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11573                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11574                         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));
11575                 }
11576                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11577                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11578                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11579                 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));
11580                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11581                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11582                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11583                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11584                 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));
11585                 if (r->in.credentials == NULL) {
11586                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11587                 }
11588                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11589                 if (r->in.negotiate_flags == NULL) {
11590                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11591                 }
11592                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.negotiate_flags));
11593         }
11594         if (flags & NDR_OUT) {
11595                 if (r->out.credentials == NULL) {
11596                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11597                 }
11598                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11599                 if (r->out.negotiate_flags == NULL) {
11600                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11601                 }
11602                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.negotiate_flags));
11603                 if (r->out.rid == NULL) {
11604                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11605                 }
11606                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11607                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11608         }
11609         return NDR_ERR_SUCCESS;
11610 }
11611
11612 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
11613 {
11614         uint32_t _ptr_server_name;
11615         TALLOC_CTX *_mem_save_server_name_0;
11616         TALLOC_CTX *_mem_save_credentials_0;
11617         TALLOC_CTX *_mem_save_negotiate_flags_0;
11618         TALLOC_CTX *_mem_save_rid_0;
11619         if (flags & NDR_IN) {
11620                 ZERO_STRUCT(r->out);
11621
11622                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11623                 if (_ptr_server_name) {
11624                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11625                 } else {
11626                         r->in.server_name = NULL;
11627                 }
11628                 if (r->in.server_name) {
11629                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11630                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11631                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11632                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11633                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11634                                 return 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));
11635                         }
11636                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11637                         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));
11638                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11639                 }
11640                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11641                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11642                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11643                         return 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));
11644                 }
11645                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11646                 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));
11647                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11648                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11649                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11650                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11651                         return 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));
11652                 }
11653                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11654                 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));
11655                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11656                         NDR_PULL_ALLOC(ndr, r->in.credentials);
11657                 }
11658                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11659                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
11660                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11661                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11662                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11663                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
11664                 }
11665                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11666                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11667                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.negotiate_flags));
11668                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11669                 NDR_PULL_ALLOC(ndr, r->out.credentials);
11670                 *r->out.credentials = *r->in.credentials;
11671                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11672                 *r->out.negotiate_flags = *r->in.negotiate_flags;
11673                 NDR_PULL_ALLOC(ndr, r->out.rid);
11674                 ZERO_STRUCTP(r->out.rid);
11675         }
11676         if (flags & NDR_OUT) {
11677                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11678                         NDR_PULL_ALLOC(ndr, r->out.credentials);
11679                 }
11680                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11681                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
11682                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11683                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11684                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11685                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11686                 }
11687                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11688                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11689                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.negotiate_flags));
11690                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11691                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11692                         NDR_PULL_ALLOC(ndr, r->out.rid);
11693                 }
11694                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11695                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11696                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11697                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11698                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11699         }
11700         return NDR_ERR_SUCCESS;
11701 }
11702
11703 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
11704 {
11705         ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
11706         ndr->depth++;
11707         if (flags & NDR_SET_VALUES) {
11708                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11709         }
11710         if (flags & NDR_IN) {
11711                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
11712                 ndr->depth++;
11713                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11714                 ndr->depth++;
11715                 if (r->in.server_name) {
11716                         ndr_print_string(ndr, "server_name", r->in.server_name);
11717                 }
11718                 ndr->depth--;
11719                 ndr_print_string(ndr, "account_name", r->in.account_name);
11720                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
11721                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11722                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
11723                 ndr->depth++;
11724                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
11725                 ndr->depth--;
11726                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
11727                 ndr->depth++;
11728                 ndr_print_uint32(ndr, "negotiate_flags", *r->in.negotiate_flags);
11729                 ndr->depth--;
11730                 ndr->depth--;
11731         }
11732         if (flags & NDR_OUT) {
11733                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
11734                 ndr->depth++;
11735                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
11736                 ndr->depth++;
11737                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
11738                 ndr->depth--;
11739                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
11740                 ndr->depth++;
11741                 ndr_print_uint32(ndr, "negotiate_flags", *r->out.negotiate_flags);
11742                 ndr->depth--;
11743                 ndr_print_ptr(ndr, "rid", r->out.rid);
11744                 ndr->depth++;
11745                 ndr_print_uint32(ndr, "rid", *r->out.rid);
11746                 ndr->depth--;
11747                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11748                 ndr->depth--;
11749         }
11750         ndr->depth--;
11751 }
11752
11753 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
11754 {
11755         if (flags & NDR_IN) {
11756                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11757                 if (r->in.server_unc) {
11758                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11759                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11760                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11761                         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));
11762                 }
11763                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11764                 if (r->in.domain_name) {
11765                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11766                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11767                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11768                         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));
11769                 }
11770                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11771                 if (r->in.domain_guid) {
11772                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11773                 }
11774                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
11775                 if (r->in.site_name) {
11776                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11777                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11778                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11779                         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));
11780                 }
11781                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11782         }
11783         if (flags & NDR_OUT) {
11784                 if (r->out.info == NULL) {
11785                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11786                 }
11787                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
11788                 if (*r->out.info) {
11789                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11790                 }
11791                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11792         }
11793         return NDR_ERR_SUCCESS;
11794 }
11795
11796 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
11797 {
11798         uint32_t _ptr_server_unc;
11799         uint32_t _ptr_domain_name;
11800         uint32_t _ptr_domain_guid;
11801         uint32_t _ptr_site_name;
11802         uint32_t _ptr_info;
11803         TALLOC_CTX *_mem_save_server_unc_0;
11804         TALLOC_CTX *_mem_save_domain_name_0;
11805         TALLOC_CTX *_mem_save_domain_guid_0;
11806         TALLOC_CTX *_mem_save_site_name_0;
11807         TALLOC_CTX *_mem_save_info_0;
11808         TALLOC_CTX *_mem_save_info_1;
11809         if (flags & NDR_IN) {
11810                 ZERO_STRUCT(r->out);
11811
11812                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11813                 if (_ptr_server_unc) {
11814                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
11815                 } else {
11816                         r->in.server_unc = NULL;
11817                 }
11818                 if (r->in.server_unc) {
11819                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11820                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11821                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11822                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11823                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11824                                 return 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));
11825                         }
11826                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11827                         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));
11828                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11829                 }
11830                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11831                 if (_ptr_domain_name) {
11832                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11833                 } else {
11834                         r->in.domain_name = NULL;
11835                 }
11836                 if (r->in.domain_name) {
11837                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11838                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11839                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11840                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11841                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11842                                 return 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));
11843                         }
11844                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11845                         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));
11846                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11847                 }
11848                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11849                 if (_ptr_domain_guid) {
11850                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11851                 } else {
11852                         r->in.domain_guid = NULL;
11853                 }
11854                 if (r->in.domain_guid) {
11855                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11856                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11857                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11858                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11859                 }
11860                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
11861                 if (_ptr_site_name) {
11862                         NDR_PULL_ALLOC(ndr, r->in.site_name);
11863                 } else {
11864                         r->in.site_name = NULL;
11865                 }
11866                 if (r->in.site_name) {
11867                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11868                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
11869                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
11870                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
11871                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
11872                                 return 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));
11873                         }
11874                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
11875                         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));
11876                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
11877                 }
11878                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11879                 NDR_PULL_ALLOC(ndr, r->out.info);
11880                 ZERO_STRUCTP(r->out.info);
11881         }
11882         if (flags & NDR_OUT) {
11883                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11884                         NDR_PULL_ALLOC(ndr, r->out.info);
11885                 }
11886                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11887                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11888                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11889                 if (_ptr_info) {
11890                         NDR_PULL_ALLOC(ndr, *r->out.info);
11891                 } else {
11892                         *r->out.info = NULL;
11893                 }
11894                 if (*r->out.info) {
11895                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
11896                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
11897                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11898                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
11899                 }
11900                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11901                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11902         }
11903         return NDR_ERR_SUCCESS;
11904 }
11905
11906 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
11907 {
11908         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
11909         ndr->depth++;
11910         if (flags & NDR_SET_VALUES) {
11911                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11912         }
11913         if (flags & NDR_IN) {
11914                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
11915                 ndr->depth++;
11916                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11917                 ndr->depth++;
11918                 if (r->in.server_unc) {
11919                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11920                 }
11921                 ndr->depth--;
11922                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11923                 ndr->depth++;
11924                 if (r->in.domain_name) {
11925                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11926                 }
11927                 ndr->depth--;
11928                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11929                 ndr->depth++;
11930                 if (r->in.domain_guid) {
11931                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11932                 }
11933                 ndr->depth--;
11934                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
11935                 ndr->depth++;
11936                 if (r->in.site_name) {
11937                         ndr_print_string(ndr, "site_name", r->in.site_name);
11938                 }
11939                 ndr->depth--;
11940                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11941                 ndr->depth--;
11942         }
11943         if (flags & NDR_OUT) {
11944                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
11945                 ndr->depth++;
11946                 ndr_print_ptr(ndr, "info", r->out.info);
11947                 ndr->depth++;
11948                 ndr_print_ptr(ndr, "info", *r->out.info);
11949                 ndr->depth++;
11950                 if (*r->out.info) {
11951                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
11952                 }
11953                 ndr->depth--;
11954                 ndr->depth--;
11955                 ndr_print_WERROR(ndr, "result", r->out.result);
11956                 ndr->depth--;
11957         }
11958         ndr->depth--;
11959 }
11960
11961 static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
11962 {
11963         if (flags & NDR_IN) {
11964                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
11965                 if (r->in.computer_name) {
11966                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11967                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11968                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11969                         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));
11970                 }
11971         }
11972         if (flags & NDR_OUT) {
11973                 if (r->out.site == NULL) {
11974                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11975                 }
11976                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.site));
11977                 if (*r->out.site) {
11978                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
11979                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11980                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
11981                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11982                 }
11983                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11984         }
11985         return NDR_ERR_SUCCESS;
11986 }
11987
11988 static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
11989 {
11990         uint32_t _ptr_computer_name;
11991         uint32_t _ptr_site;
11992         TALLOC_CTX *_mem_save_computer_name_0;
11993         TALLOC_CTX *_mem_save_site_0;
11994         TALLOC_CTX *_mem_save_site_1;
11995         if (flags & NDR_IN) {
11996                 ZERO_STRUCT(r->out);
11997
11998                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
11999                 if (_ptr_computer_name) {
12000                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
12001                 } else {
12002                         r->in.computer_name = NULL;
12003                 }
12004                 if (r->in.computer_name) {
12005                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12006                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12007                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12008                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12009                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12010                                 return 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));
12011                         }
12012                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12013                         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));
12014                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12015                 }
12016                 NDR_PULL_ALLOC(ndr, r->out.site);
12017                 ZERO_STRUCTP(r->out.site);
12018         }
12019         if (flags & NDR_OUT) {
12020                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12021                         NDR_PULL_ALLOC(ndr, r->out.site);
12022                 }
12023                 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
12024                 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
12025                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site));
12026                 if (_ptr_site) {
12027                         NDR_PULL_ALLOC(ndr, *r->out.site);
12028                 } else {
12029                         *r->out.site = NULL;
12030                 }
12031                 if (*r->out.site) {
12032                         _mem_save_site_1 = NDR_PULL_GET_MEM_CTX(ndr);
12033                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.site, 0);
12034                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
12035                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
12036                         if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
12037                                 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));
12038                         }
12039                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
12040                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
12041                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_1, 0);
12042                 }
12043                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
12044                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12045         }
12046         return NDR_ERR_SUCCESS;
12047 }
12048
12049 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
12050 {
12051         ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
12052         ndr->depth++;
12053         if (flags & NDR_SET_VALUES) {
12054                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12055         }
12056         if (flags & NDR_IN) {
12057                 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
12058                 ndr->depth++;
12059                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12060                 ndr->depth++;
12061                 if (r->in.computer_name) {
12062                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12063                 }
12064                 ndr->depth--;
12065                 ndr->depth--;
12066         }
12067         if (flags & NDR_OUT) {
12068                 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
12069                 ndr->depth++;
12070                 ndr_print_ptr(ndr, "site", r->out.site);
12071                 ndr->depth++;
12072                 ndr_print_ptr(ndr, "site", *r->out.site);
12073                 ndr->depth++;
12074                 if (*r->out.site) {
12075                         ndr_print_string(ndr, "site", *r->out.site);
12076                 }
12077                 ndr->depth--;
12078                 ndr->depth--;
12079                 ndr_print_WERROR(ndr, "result", r->out.result);
12080                 ndr->depth--;
12081         }
12082         ndr->depth--;
12083 }
12084
12085 static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
12086 {
12087         if (flags & NDR_IN) {
12088                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12089                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12090                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12091                 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));
12092                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12093                 if (r->in.computer_name) {
12094                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12095                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12096                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12097                         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));
12098                 }
12099                 if (r->in.credential == NULL) {
12100                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12101                 }
12102                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12103                 if (r->in.return_authenticator == NULL) {
12104                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12105                 }
12106                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12107                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12108                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level));
12109                 NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
12110         }
12111         if (flags & NDR_OUT) {
12112                 if (r->out.return_authenticator == NULL) {
12113                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12114                 }
12115                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12116                 if (r->out.info == NULL) {
12117                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12118                 }
12119                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
12120                 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12121                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12122         }
12123         return NDR_ERR_SUCCESS;
12124 }
12125
12126 static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
12127 {
12128         uint32_t _ptr_computer_name;
12129         TALLOC_CTX *_mem_save_computer_name_0;
12130         TALLOC_CTX *_mem_save_credential_0;
12131         TALLOC_CTX *_mem_save_return_authenticator_0;
12132         TALLOC_CTX *_mem_save_info_0;
12133         if (flags & NDR_IN) {
12134                 ZERO_STRUCT(r->out);
12135
12136                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12137                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12138                 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12139                         return 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));
12140                 }
12141                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12142                 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));
12143                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12144                 if (_ptr_computer_name) {
12145                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
12146                 } else {
12147                         r->in.computer_name = NULL;
12148                 }
12149                 if (r->in.computer_name) {
12150                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12151                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12152                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12153                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12154                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12155                                 return 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));
12156                         }
12157                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12158                         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));
12159                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12160                 }
12161                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12162                         NDR_PULL_ALLOC(ndr, r->in.credential);
12163                 }
12164                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12165                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12166                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12167                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12168                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12169                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
12170                 }
12171                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12172                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12173                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12174                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12175                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12176                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level));
12177                 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
12178                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12179                 *r->out.return_authenticator = *r->in.return_authenticator;
12180                 NDR_PULL_ALLOC(ndr, r->out.info);
12181                 ZERO_STRUCTP(r->out.info);
12182         }
12183         if (flags & NDR_OUT) {
12184                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12185                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12186                 }
12187                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12188                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12189                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12190                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12191                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12192                         NDR_PULL_ALLOC(ndr, r->out.info);
12193                 }
12194                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12195                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12196                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
12197                 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12198                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12199                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12200         }
12201         return NDR_ERR_SUCCESS;
12202 }
12203
12204 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
12205 {
12206         ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
12207         ndr->depth++;
12208         if (flags & NDR_SET_VALUES) {
12209                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12210         }
12211         if (flags & NDR_IN) {
12212                 ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
12213                 ndr->depth++;
12214                 ndr_print_string(ndr, "server_name", r->in.server_name);
12215                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12216                 ndr->depth++;
12217                 if (r->in.computer_name) {
12218                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12219                 }
12220                 ndr->depth--;
12221                 ndr_print_ptr(ndr, "credential", r->in.credential);
12222                 ndr->depth++;
12223                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12224                 ndr->depth--;
12225                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12226                 ndr->depth++;
12227                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12228                 ndr->depth--;
12229                 ndr_print_uint32(ndr, "level", r->in.level);
12230                 ndr_print_set_switch_value(ndr, &r->in.query, r->in.level);
12231                 ndr_print_netr_DomainQuery(ndr, "query", &r->in.query);
12232                 ndr->depth--;
12233         }
12234         if (flags & NDR_OUT) {
12235                 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
12236                 ndr->depth++;
12237                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12238                 ndr->depth++;
12239                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12240                 ndr->depth--;
12241                 ndr_print_ptr(ndr, "info", r->out.info);
12242                 ndr->depth++;
12243                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
12244                 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
12245                 ndr->depth--;
12246                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12247                 ndr->depth--;
12248         }
12249         ndr->depth--;
12250 }
12251
12252 static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
12253 {
12254         if (flags & NDR_IN) {
12255                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12256                 if (r->in.server_name) {
12257                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12258                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12259                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12260                         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));
12261                 }
12262                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12263                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12264                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12265                 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));
12266                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12267                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12268                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12269                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12270                 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));
12271                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
12272                 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password));
12273         }
12274         if (flags & NDR_OUT) {
12275                 if (r->out.return_authenticator == NULL) {
12276                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12277                 }
12278                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12279                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12280         }
12281         return NDR_ERR_SUCCESS;
12282 }
12283
12284 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
12285 {
12286         uint32_t _ptr_server_name;
12287         TALLOC_CTX *_mem_save_server_name_0;
12288         TALLOC_CTX *_mem_save_return_authenticator_0;
12289         if (flags & NDR_IN) {
12290                 ZERO_STRUCT(r->out);
12291
12292                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12293                 if (_ptr_server_name) {
12294                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12295                 } else {
12296                         r->in.server_name = NULL;
12297                 }
12298                 if (r->in.server_name) {
12299                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12300                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12301                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12302                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12303                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12304                                 return 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));
12305                         }
12306                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12307                         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));
12308                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12309                 }
12310                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12311                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12312                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12313                         return 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));
12314                 }
12315                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12316                 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));
12317                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12318                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12319                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12320                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12321                         return 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));
12322                 }
12323                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12324                 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));
12325                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
12326                 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password));
12327                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12328                 ZERO_STRUCTP(r->out.return_authenticator);
12329         }
12330         if (flags & NDR_OUT) {
12331                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12332                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12333                 }
12334                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12335                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12336                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12337                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12338                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12339         }
12340         return NDR_ERR_SUCCESS;
12341 }
12342
12343 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
12344 {
12345         ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
12346         ndr->depth++;
12347         if (flags & NDR_SET_VALUES) {
12348                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12349         }
12350         if (flags & NDR_IN) {
12351                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
12352                 ndr->depth++;
12353                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12354                 ndr->depth++;
12355                 if (r->in.server_name) {
12356                         ndr_print_string(ndr, "server_name", r->in.server_name);
12357                 }
12358                 ndr->depth--;
12359                 ndr_print_string(ndr, "account_name", r->in.account_name);
12360                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12361                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12362                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
12363                 ndr_print_netr_CryptPassword(ndr, "new_password", &r->in.new_password);
12364                 ndr->depth--;
12365         }
12366         if (flags & NDR_OUT) {
12367                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
12368                 ndr->depth++;
12369                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12370                 ndr->depth++;
12371                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12372                 ndr->depth--;
12373                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12374                 ndr->depth--;
12375         }
12376         ndr->depth--;
12377 }
12378
12379 static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordGet *r)
12380 {
12381         if (flags & NDR_IN) {
12382                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12383                 if (r->in.server_name) {
12384                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12385                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12386                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12387                         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));
12388                 }
12389                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12390                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12391                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12392                 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));
12393                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12394                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12395                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12396                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12397                 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));
12398                 if (r->in.credential == NULL) {
12399                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12400                 }
12401                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12402         }
12403         if (flags & NDR_OUT) {
12404                 if (r->out.return_authenticator == NULL) {
12405                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12406                 }
12407                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12408                 if (r->out.password == NULL) {
12409                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12410                 }
12411                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
12412                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12413         }
12414         return NDR_ERR_SUCCESS;
12415 }
12416
12417 static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r)
12418 {
12419         uint32_t _ptr_server_name;
12420         TALLOC_CTX *_mem_save_server_name_0;
12421         TALLOC_CTX *_mem_save_credential_0;
12422         TALLOC_CTX *_mem_save_return_authenticator_0;
12423         TALLOC_CTX *_mem_save_password_0;
12424         if (flags & NDR_IN) {
12425                 ZERO_STRUCT(r->out);
12426
12427                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12428                 if (_ptr_server_name) {
12429                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12430                 } else {
12431                         r->in.server_name = NULL;
12432                 }
12433                 if (r->in.server_name) {
12434                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12435                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12436                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12437                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12438                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12439                                 return 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));
12440                         }
12441                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12442                         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));
12443                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12444                 }
12445                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12446                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12447                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12448                         return 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));
12449                 }
12450                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12451                 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));
12452                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12453                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12454                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12455                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12456                         return 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));
12457                 }
12458                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12459                 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));
12460                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12461                         NDR_PULL_ALLOC(ndr, r->in.credential);
12462                 }
12463                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12464                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12465                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12466                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12467                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12468                 ZERO_STRUCTP(r->out.return_authenticator);
12469                 NDR_PULL_ALLOC(ndr, r->out.password);
12470                 ZERO_STRUCTP(r->out.password);
12471         }
12472         if (flags & NDR_OUT) {
12473                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12474                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12475                 }
12476                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12477                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12478                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12479                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12480                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12481                         NDR_PULL_ALLOC(ndr, r->out.password);
12482                 }
12483                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
12484                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
12485                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
12486                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
12487                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12488         }
12489         return NDR_ERR_SUCCESS;
12490 }
12491
12492 _PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordGet *r)
12493 {
12494         ndr_print_struct(ndr, name, "netr_ServerPasswordGet");
12495         ndr->depth++;
12496         if (flags & NDR_SET_VALUES) {
12497                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12498         }
12499         if (flags & NDR_IN) {
12500                 ndr_print_struct(ndr, "in", "netr_ServerPasswordGet");
12501                 ndr->depth++;
12502                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12503                 ndr->depth++;
12504                 if (r->in.server_name) {
12505                         ndr_print_string(ndr, "server_name", r->in.server_name);
12506                 }
12507                 ndr->depth--;
12508                 ndr_print_string(ndr, "account_name", r->in.account_name);
12509                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12510                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12511                 ndr_print_ptr(ndr, "credential", r->in.credential);
12512                 ndr->depth++;
12513                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12514                 ndr->depth--;
12515                 ndr->depth--;
12516         }
12517         if (flags & NDR_OUT) {
12518                 ndr_print_struct(ndr, "out", "netr_ServerPasswordGet");
12519                 ndr->depth++;
12520                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12521                 ndr->depth++;
12522                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12523                 ndr->depth--;
12524                 ndr_print_ptr(ndr, "password", r->out.password);
12525                 ndr->depth++;
12526                 ndr_print_samr_Password(ndr, "password", r->out.password);
12527                 ndr->depth--;
12528                 ndr_print_WERROR(ndr, "result", r->out.result);
12529                 ndr->depth--;
12530         }
12531         ndr->depth--;
12532 }
12533
12534 static enum ndr_err_code ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12535 {
12536         if (flags & NDR_IN) {
12537         }
12538         if (flags & NDR_OUT) {
12539                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12540         }
12541         return NDR_ERR_SUCCESS;
12542 }
12543
12544 static enum ndr_err_code ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
12545 {
12546         if (flags & NDR_IN) {
12547         }
12548         if (flags & NDR_OUT) {
12549                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12550         }
12551         return NDR_ERR_SUCCESS;
12552 }
12553
12554 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12555 {
12556         ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
12557         ndr->depth++;
12558         if (flags & NDR_SET_VALUES) {
12559                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12560         }
12561         if (flags & NDR_IN) {
12562                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
12563                 ndr->depth++;
12564                 ndr->depth--;
12565         }
12566         if (flags & NDR_OUT) {
12567                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
12568                 ndr->depth++;
12569                 ndr_print_WERROR(ndr, "result", r->out.result);
12570                 ndr->depth--;
12571         }
12572         ndr->depth--;
12573 }
12574
12575 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesW *r)
12576 {
12577         uint32_t cntr_addresses_1;
12578         if (flags & NDR_IN) {
12579                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12580                 if (r->in.server_name) {
12581                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12582                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12583                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12584                         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));
12585                 }
12586                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12587                 if (r->in.addresses == NULL) {
12588                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12589                 }
12590                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12591                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12592                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12593                 }
12594                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12595                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12596                 }
12597         }
12598         if (flags & NDR_OUT) {
12599                 if (r->out.ctr == NULL) {
12600                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12601                 }
12602                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
12603                 if (*r->out.ctr) {
12604                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12605                 }
12606                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12607         }
12608         return NDR_ERR_SUCCESS;
12609 }
12610
12611 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r)
12612 {
12613         uint32_t _ptr_server_name;
12614         uint32_t cntr_addresses_1;
12615         uint32_t _ptr_ctr;
12616         TALLOC_CTX *_mem_save_server_name_0;
12617         TALLOC_CTX *_mem_save_addresses_1;
12618         TALLOC_CTX *_mem_save_ctr_0;
12619         TALLOC_CTX *_mem_save_ctr_1;
12620         if (flags & NDR_IN) {
12621                 ZERO_STRUCT(r->out);
12622
12623                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12624                 if (_ptr_server_name) {
12625                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12626                 } else {
12627                         r->in.server_name = NULL;
12628                 }
12629                 if (r->in.server_name) {
12630                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12631                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12632                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12633                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12634                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12635                                 return 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));
12636                         }
12637                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12638                         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));
12639                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12640                 }
12641                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
12642                 if (r->in.count < 0 || r->in.count > 32000) {
12643                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
12644                 }
12645                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
12646                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12647                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
12648                 }
12649                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
12650                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
12651                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12652                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12653                 }
12654                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12655                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12656                 }
12657                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
12658                 NDR_PULL_ALLOC(ndr, r->out.ctr);
12659                 ZERO_STRUCTP(r->out.ctr);
12660                 if (r->in.addresses) {
12661                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
12662                 }
12663         }
12664         if (flags & NDR_OUT) {
12665                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12666                         NDR_PULL_ALLOC(ndr, r->out.ctr);
12667                 }
12668                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
12669                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12670                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
12671                 if (_ptr_ctr) {
12672                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
12673                 } else {
12674                         *r->out.ctr = NULL;
12675                 }
12676                 if (*r->out.ctr) {
12677                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
12678                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
12679                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12680                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
12681                 }
12682                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
12683                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12684         }
12685         return NDR_ERR_SUCCESS;
12686 }
12687
12688 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesW *r)
12689 {
12690         uint32_t cntr_addresses_1;
12691         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesW");
12692         ndr->depth++;
12693         if (flags & NDR_SET_VALUES) {
12694                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12695         }
12696         if (flags & NDR_IN) {
12697                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesW");
12698                 ndr->depth++;
12699                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12700                 ndr->depth++;
12701                 if (r->in.server_name) {
12702                         ndr_print_string(ndr, "server_name", r->in.server_name);
12703                 }
12704                 ndr->depth--;
12705                 ndr_print_uint32(ndr, "count", r->in.count);
12706                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
12707                 ndr->depth++;
12708                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", r->in.count);
12709                 ndr->depth++;
12710                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
12711                         char *idx_1=NULL;
12712                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
12713                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
12714                                 free(idx_1);
12715                         }
12716                 }
12717                 ndr->depth--;
12718                 ndr->depth--;
12719                 ndr->depth--;
12720         }
12721         if (flags & NDR_OUT) {
12722                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesW");
12723                 ndr->depth++;
12724                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
12725                 ndr->depth++;
12726                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
12727                 ndr->depth++;
12728                 if (*r->out.ctr) {
12729                         ndr_print_netr_DsRAddressToSitenamesWCtr(ndr, "ctr", *r->out.ctr);
12730                 }
12731                 ndr->depth--;
12732                 ndr->depth--;
12733                 ndr_print_WERROR(ndr, "result", r->out.result);
12734                 ndr->depth--;
12735         }
12736         ndr->depth--;
12737 }
12738
12739 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
12740 {
12741         if (flags & NDR_IN) {
12742                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
12743                 if (r->in.server_unc) {
12744                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12745                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12746                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12747                         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));
12748                 }
12749                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
12750                 if (r->in.client_account) {
12751                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12752                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12753                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12754                         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));
12755                 }
12756                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.mask));
12757                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12758                 if (r->in.domain_name) {
12759                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12760                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12761                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12762                         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));
12763                 }
12764                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
12765                 if (r->in.domain_guid) {
12766                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
12767                 }
12768                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
12769                 if (r->in.site_name) {
12770                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12771                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12772                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12773                         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));
12774                 }
12775                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
12776         }
12777         if (flags & NDR_OUT) {
12778                 if (r->out.info == NULL) {
12779                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12780                 }
12781                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
12782                 if (*r->out.info) {
12783                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12784                 }
12785                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12786         }
12787         return NDR_ERR_SUCCESS;
12788 }
12789
12790 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
12791 {
12792         uint32_t _ptr_server_unc;
12793         uint32_t _ptr_client_account;
12794         uint32_t _ptr_domain_name;
12795         uint32_t _ptr_domain_guid;
12796         uint32_t _ptr_site_name;
12797         uint32_t _ptr_info;
12798         TALLOC_CTX *_mem_save_server_unc_0;
12799         TALLOC_CTX *_mem_save_client_account_0;
12800         TALLOC_CTX *_mem_save_domain_name_0;
12801         TALLOC_CTX *_mem_save_domain_guid_0;
12802         TALLOC_CTX *_mem_save_site_name_0;
12803         TALLOC_CTX *_mem_save_info_0;
12804         TALLOC_CTX *_mem_save_info_1;
12805         if (flags & NDR_IN) {
12806                 ZERO_STRUCT(r->out);
12807
12808                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12809                 if (_ptr_server_unc) {
12810                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
12811                 } else {
12812                         r->in.server_unc = NULL;
12813                 }
12814                 if (r->in.server_unc) {
12815                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12816                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12817                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12818                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12819                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12820                                 return 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));
12821                         }
12822                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12823                         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));
12824                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12825                 }
12826                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
12827                 if (_ptr_client_account) {
12828                         NDR_PULL_ALLOC(ndr, r->in.client_account);
12829                 } else {
12830                         r->in.client_account = NULL;
12831                 }
12832                 if (r->in.client_account) {
12833                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
12834                         NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
12835                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
12836                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
12837                         if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
12838                                 return 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));
12839                         }
12840                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
12841                         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));
12842                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
12843                 }
12844                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask));
12845                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12846                 if (_ptr_domain_name) {
12847                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12848                 } else {
12849                         r->in.domain_name = NULL;
12850                 }
12851                 if (r->in.domain_name) {
12852                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12853                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12854                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12855                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12856                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12857                                 return 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));
12858                         }
12859                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12860                         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));
12861                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12862                 }
12863                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12864                 if (_ptr_domain_guid) {
12865                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12866                 } else {
12867                         r->in.domain_guid = NULL;
12868                 }
12869                 if (r->in.domain_guid) {
12870                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12871                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12872                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
12873                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12874                 }
12875                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
12876                 if (_ptr_site_name) {
12877                         NDR_PULL_ALLOC(ndr, r->in.site_name);
12878                 } else {
12879                         r->in.site_name = NULL;
12880                 }
12881                 if (r->in.site_name) {
12882                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12883                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
12884                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
12885                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
12886                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
12887                                 return 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));
12888                         }
12889                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
12890                         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));
12891                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
12892                 }
12893                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12894                 NDR_PULL_ALLOC(ndr, r->out.info);
12895                 ZERO_STRUCTP(r->out.info);
12896         }
12897         if (flags & NDR_OUT) {
12898                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12899                         NDR_PULL_ALLOC(ndr, r->out.info);
12900                 }
12901                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12902                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12903                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12904                 if (_ptr_info) {
12905                         NDR_PULL_ALLOC(ndr, *r->out.info);
12906                 } else {
12907                         *r->out.info = NULL;
12908                 }
12909                 if (*r->out.info) {
12910                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
12911                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
12912                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12913                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
12914                 }
12915                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12916                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12917         }
12918         return NDR_ERR_SUCCESS;
12919 }
12920
12921 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
12922 {
12923         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
12924         ndr->depth++;
12925         if (flags & NDR_SET_VALUES) {
12926                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12927         }
12928         if (flags & NDR_IN) {
12929                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
12930                 ndr->depth++;
12931                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
12932                 ndr->depth++;
12933                 if (r->in.server_unc) {
12934                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
12935                 }
12936                 ndr->depth--;
12937                 ndr_print_ptr(ndr, "client_account", r->in.client_account);
12938                 ndr->depth++;
12939                 if (r->in.client_account) {
12940                         ndr_print_string(ndr, "client_account", r->in.client_account);
12941                 }
12942                 ndr->depth--;
12943                 ndr_print_samr_AcctFlags(ndr, "mask", r->in.mask);
12944                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12945                 ndr->depth++;
12946                 if (r->in.domain_name) {
12947                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12948                 }
12949                 ndr->depth--;
12950                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
12951                 ndr->depth++;
12952                 if (r->in.domain_guid) {
12953                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
12954                 }
12955                 ndr->depth--;
12956                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
12957                 ndr->depth++;
12958                 if (r->in.site_name) {
12959                         ndr_print_string(ndr, "site_name", r->in.site_name);
12960                 }
12961                 ndr->depth--;
12962                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
12963                 ndr->depth--;
12964         }
12965         if (flags & NDR_OUT) {
12966                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
12967                 ndr->depth++;
12968                 ndr_print_ptr(ndr, "info", r->out.info);
12969                 ndr->depth++;
12970                 ndr_print_ptr(ndr, "info", *r->out.info);
12971                 ndr->depth++;
12972                 if (*r->out.info) {
12973                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
12974                 }
12975                 ndr->depth--;
12976                 ndr->depth--;
12977                 ndr_print_WERROR(ndr, "result", r->out.result);
12978                 ndr->depth--;
12979         }
12980         ndr->depth--;
12981 }
12982
12983 static enum ndr_err_code ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
12984 {
12985         if (flags & NDR_IN) {
12986         }
12987         if (flags & NDR_OUT) {
12988                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12989         }
12990         return NDR_ERR_SUCCESS;
12991 }
12992
12993 static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
12994 {
12995         if (flags & NDR_IN) {
12996         }
12997         if (flags & NDR_OUT) {
12998                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12999         }
13000         return NDR_ERR_SUCCESS;
13001 }
13002
13003 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
13004 {
13005         ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13006         ndr->depth++;
13007         if (flags & NDR_SET_VALUES) {
13008                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13009         }
13010         if (flags & NDR_IN) {
13011                 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13012                 ndr->depth++;
13013                 ndr->depth--;
13014         }
13015         if (flags & NDR_OUT) {
13016                 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
13017                 ndr->depth++;
13018                 ndr_print_WERROR(ndr, "result", r->out.result);
13019                 ndr->depth--;
13020         }
13021         ndr->depth--;
13022 }
13023
13024 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
13025 {
13026         if (flags & NDR_IN) {
13027                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13028                 if (r->in.server_name) {
13029                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13030                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13031                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13032                         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));
13033                 }
13034         }
13035         if (flags & NDR_OUT) {
13036                 if (r->out.dom_trust_list == NULL) {
13037                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13038                 }
13039                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
13040                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13041         }
13042         return NDR_ERR_SUCCESS;
13043 }
13044
13045 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r)
13046 {
13047         uint32_t _ptr_server_name;
13048         TALLOC_CTX *_mem_save_server_name_0;
13049         TALLOC_CTX *_mem_save_dom_trust_list_0;
13050         if (flags & NDR_IN) {
13051                 ZERO_STRUCT(r->out);
13052
13053                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13054                 if (_ptr_server_name) {
13055                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13056                 } else {
13057                         r->in.server_name = NULL;
13058                 }
13059                 if (r->in.server_name) {
13060                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13061                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13062                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13063                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13064                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13065                                 return 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));
13066                         }
13067                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13068                         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));
13069                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13070                 }
13071                 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13072                 ZERO_STRUCTP(r->out.dom_trust_list);
13073         }
13074         if (flags & NDR_OUT) {
13075                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13076                         NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13077                 }
13078                 _mem_save_dom_trust_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
13079                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dom_trust_list, LIBNDR_FLAG_REF_ALLOC);
13080                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
13081                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_trust_list_0, LIBNDR_FLAG_REF_ALLOC);
13082                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13083         }
13084         return NDR_ERR_SUCCESS;
13085 }
13086
13087 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
13088 {
13089         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomainsEx");
13090         ndr->depth++;
13091         if (flags & NDR_SET_VALUES) {
13092                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13093         }
13094         if (flags & NDR_IN) {
13095                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomainsEx");
13096                 ndr->depth++;
13097                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13098                 ndr->depth++;
13099                 if (r->in.server_name) {
13100                         ndr_print_string(ndr, "server_name", r->in.server_name);
13101                 }
13102                 ndr->depth--;
13103                 ndr->depth--;
13104         }
13105         if (flags & NDR_OUT) {
13106                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomainsEx");
13107                 ndr->depth++;
13108                 ndr_print_ptr(ndr, "dom_trust_list", r->out.dom_trust_list);
13109                 ndr->depth++;
13110                 ndr_print_netr_DomainTrustList(ndr, "dom_trust_list", r->out.dom_trust_list);
13111                 ndr->depth--;
13112                 ndr_print_WERROR(ndr, "result", r->out.result);
13113                 ndr->depth--;
13114         }
13115         ndr->depth--;
13116 }
13117
13118 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesExW *r)
13119 {
13120         uint32_t cntr_addresses_1;
13121         if (flags & NDR_IN) {
13122                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13123                 if (r->in.server_name) {
13124                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13125                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13126                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13127                         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));
13128                 }
13129                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13130                 if (r->in.addresses == NULL) {
13131                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13132                 }
13133                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13134                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13135                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13136                 }
13137                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13138                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13139                 }
13140         }
13141         if (flags & NDR_OUT) {
13142                 if (r->out.ctr == NULL) {
13143                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13144                 }
13145                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
13146                 if (*r->out.ctr) {
13147                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13148                 }
13149                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13150         }
13151         return NDR_ERR_SUCCESS;
13152 }
13153
13154 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r)
13155 {
13156         uint32_t _ptr_server_name;
13157         uint32_t cntr_addresses_1;
13158         uint32_t _ptr_ctr;
13159         TALLOC_CTX *_mem_save_server_name_0;
13160         TALLOC_CTX *_mem_save_addresses_1;
13161         TALLOC_CTX *_mem_save_ctr_0;
13162         TALLOC_CTX *_mem_save_ctr_1;
13163         if (flags & NDR_IN) {
13164                 ZERO_STRUCT(r->out);
13165
13166                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13167                 if (_ptr_server_name) {
13168                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13169                 } else {
13170                         r->in.server_name = NULL;
13171                 }
13172                 if (r->in.server_name) {
13173                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13174                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13175                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13176                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13177                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13178                                 return 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));
13179                         }
13180                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13181                         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));
13182                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13183                 }
13184                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
13185                 if (r->in.count < 0 || r->in.count > 32000) {
13186                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13187                 }
13188                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
13189                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13190                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
13191                 }
13192                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
13193                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
13194                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13195                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13196                 }
13197                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13198                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13199                 }
13200                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
13201                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13202                 ZERO_STRUCTP(r->out.ctr);
13203                 if (r->in.addresses) {
13204                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
13205                 }
13206         }
13207         if (flags & NDR_OUT) {
13208                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13209                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13210                 }
13211                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13212                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13213                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
13214                 if (_ptr_ctr) {
13215                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
13216                 } else {
13217                         *r->out.ctr = NULL;
13218                 }
13219                 if (*r->out.ctr) {
13220                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
13221                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
13222                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13223                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
13224                 }
13225                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13226                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13227         }
13228         return NDR_ERR_SUCCESS;
13229 }
13230
13231 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesExW *r)
13232 {
13233         uint32_t cntr_addresses_1;
13234         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExW");
13235         ndr->depth++;
13236         if (flags & NDR_SET_VALUES) {
13237                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13238         }
13239         if (flags & NDR_IN) {
13240                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesExW");
13241                 ndr->depth++;
13242                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13243                 ndr->depth++;
13244                 if (r->in.server_name) {
13245                         ndr_print_string(ndr, "server_name", r->in.server_name);
13246                 }
13247                 ndr->depth--;
13248                 ndr_print_uint32(ndr, "count", r->in.count);
13249                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
13250                 ndr->depth++;
13251                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", r->in.count);
13252                 ndr->depth++;
13253                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
13254                         char *idx_1=NULL;
13255                         if (asprintf(&idx_1, "[%d]", cntr_addresses_1) != -1) {
13256                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
13257                                 free(idx_1);
13258                         }
13259                 }
13260                 ndr->depth--;
13261                 ndr->depth--;
13262                 ndr->depth--;
13263         }
13264         if (flags & NDR_OUT) {
13265                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesExW");
13266                 ndr->depth++;
13267                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13268                 ndr->depth++;
13269                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
13270                 ndr->depth++;
13271                 if (*r->out.ctr) {
13272                         ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr, "ctr", *r->out.ctr);
13273                 }
13274                 ndr->depth--;
13275                 ndr->depth--;
13276                 ndr_print_WERROR(ndr, "result", r->out.result);
13277                 ndr->depth--;
13278         }
13279         ndr->depth--;
13280 }
13281
13282 static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *ndr, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13283 {
13284         if (flags & NDR_IN) {
13285                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13286                 if (r->in.server_name) {
13287                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13288                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13289                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13290                         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));
13291                 }
13292         }
13293         if (flags & NDR_OUT) {
13294                 if (r->out.ctr == NULL) {
13295                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13296                 }
13297                 NDR_CHECK(ndr_push_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13298                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13299         }
13300         return NDR_ERR_SUCCESS;
13301 }
13302
13303 static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r)
13304 {
13305         uint32_t _ptr_server_name;
13306         TALLOC_CTX *_mem_save_server_name_0;
13307         TALLOC_CTX *_mem_save_ctr_0;
13308         if (flags & NDR_IN) {
13309                 ZERO_STRUCT(r->out);
13310
13311                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13312                 if (_ptr_server_name) {
13313                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13314                 } else {
13315                         r->in.server_name = NULL;
13316                 }
13317                 if (r->in.server_name) {
13318                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13319                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13320                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13321                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13322                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13323                                 return 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));
13324                         }
13325                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13326                         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));
13327                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13328                 }
13329                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13330                 ZERO_STRUCTP(r->out.ctr);
13331         }
13332         if (flags & NDR_OUT) {
13333                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13334                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13335                 }
13336                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13337                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13338                 NDR_CHECK(ndr_pull_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13339                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13340                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13341         }
13342         return NDR_ERR_SUCCESS;
13343 }
13344
13345 _PUBLIC_ void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13346 {
13347         ndr_print_struct(ndr, name, "netr_DsrGetDcSiteCoverageW");
13348         ndr->depth++;
13349         if (flags & NDR_SET_VALUES) {
13350                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13351         }
13352         if (flags & NDR_IN) {
13353                 ndr_print_struct(ndr, "in", "netr_DsrGetDcSiteCoverageW");
13354                 ndr->depth++;
13355                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13356                 ndr->depth++;
13357                 if (r->in.server_name) {
13358                         ndr_print_string(ndr, "server_name", r->in.server_name);
13359                 }
13360                 ndr->depth--;
13361                 ndr->depth--;
13362         }
13363         if (flags & NDR_OUT) {
13364                 ndr_print_struct(ndr, "out", "netr_DsrGetDcSiteCoverageW");
13365                 ndr->depth++;
13366                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13367                 ndr->depth++;
13368                 ndr_print_DcSitesCtr(ndr, "ctr", r->out.ctr);
13369                 ndr->depth--;
13370                 ndr_print_WERROR(ndr, "result", r->out.result);
13371                 ndr->depth--;
13372         }
13373         ndr->depth--;
13374 }
13375
13376 static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
13377 {
13378         if (flags & NDR_IN) {
13379                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13380                 if (r->in.server_name) {
13381                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13382                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13383                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13384                         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));
13385                 }
13386                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13387                 if (r->in.computer_name) {
13388                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13389                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13390                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13391                         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));
13392                 }
13393                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
13394                 if (r->in.logon == NULL) {
13395                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13396                 }
13397                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.logon, r->in.logon_level));
13398                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
13399                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
13400                 if (r->in.flags == NULL) {
13401                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13402                 }
13403                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
13404         }
13405         if (flags & NDR_OUT) {
13406                 if (r->out.validation == NULL) {
13407                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13408                 }
13409                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13410                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13411                 if (r->out.authoritative == NULL) {
13412                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13413                 }
13414                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
13415                 if (r->out.flags == NULL) {
13416                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13417                 }
13418                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
13419                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13420         }
13421         return NDR_ERR_SUCCESS;
13422 }
13423
13424 static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
13425 {
13426         uint32_t _ptr_server_name;
13427         uint32_t _ptr_computer_name;
13428         TALLOC_CTX *_mem_save_server_name_0;
13429         TALLOC_CTX *_mem_save_computer_name_0;
13430         TALLOC_CTX *_mem_save_logon_0;
13431         TALLOC_CTX *_mem_save_validation_0;
13432         TALLOC_CTX *_mem_save_authoritative_0;
13433         TALLOC_CTX *_mem_save_flags_0;
13434         if (flags & NDR_IN) {
13435                 ZERO_STRUCT(r->out);
13436
13437                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13438                 if (_ptr_server_name) {
13439                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13440                 } else {
13441                         r->in.server_name = NULL;
13442                 }
13443                 if (r->in.server_name) {
13444                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13445                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13446                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13447                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13448                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13449                                 return 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));
13450                         }
13451                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13452                         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));
13453                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13454                 }
13455                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13456                 if (_ptr_computer_name) {
13457                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13458                 } else {
13459                         r->in.computer_name = NULL;
13460                 }
13461                 if (r->in.computer_name) {
13462                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13463                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13464                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13465                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13466                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13467                                 return 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));
13468                         }
13469                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13470                         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));
13471                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13472                 }
13473                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
13474                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13475                         NDR_PULL_ALLOC(ndr, r->in.logon);
13476                 }
13477                 _mem_save_logon_0 = NDR_PULL_GET_MEM_CTX(ndr);
13478                 NDR_PULL_SET_MEM_CTX(ndr, r->in.logon, LIBNDR_FLAG_REF_ALLOC);
13479                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.logon, r->in.logon_level));
13480                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.logon));
13481                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_0, LIBNDR_FLAG_REF_ALLOC);
13482                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
13483                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13484                         NDR_PULL_ALLOC(ndr, r->in.flags);
13485                 }
13486                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13487                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
13488                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
13489                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13490                 NDR_PULL_ALLOC(ndr, r->out.validation);
13491                 ZERO_STRUCTP(r->out.validation);
13492                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
13493                 ZERO_STRUCTP(r->out.authoritative);
13494                 NDR_PULL_ALLOC(ndr, r->out.flags);
13495                 *r->out.flags = *r->in.flags;
13496         }
13497         if (flags & NDR_OUT) {
13498                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13499                         NDR_PULL_ALLOC(ndr, r->out.validation);
13500                 }
13501                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
13502                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
13503                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13504                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13505                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
13506                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13507                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
13508                 }
13509                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
13510                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
13511                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
13512                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
13513                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13514                         NDR_PULL_ALLOC(ndr, r->out.flags);
13515                 }
13516                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13517                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
13518                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
13519                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13520                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13521         }
13522         return NDR_ERR_SUCCESS;
13523 }
13524
13525 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
13526 {
13527         ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
13528         ndr->depth++;
13529         if (flags & NDR_SET_VALUES) {
13530                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13531         }
13532         if (flags & NDR_IN) {
13533                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
13534                 ndr->depth++;
13535                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13536                 ndr->depth++;
13537                 if (r->in.server_name) {
13538                         ndr_print_string(ndr, "server_name", r->in.server_name);
13539                 }
13540                 ndr->depth--;
13541                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13542                 ndr->depth++;
13543                 if (r->in.computer_name) {
13544                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
13545                 }
13546                 ndr->depth--;
13547                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
13548                 ndr_print_ptr(ndr, "logon", r->in.logon);
13549                 ndr->depth++;
13550                 ndr_print_set_switch_value(ndr, r->in.logon, r->in.logon_level);
13551                 ndr_print_netr_LogonLevel(ndr, "logon", r->in.logon);
13552                 ndr->depth--;
13553                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
13554                 ndr_print_ptr(ndr, "flags", r->in.flags);
13555                 ndr->depth++;
13556                 ndr_print_uint32(ndr, "flags", *r->in.flags);
13557                 ndr->depth--;
13558                 ndr->depth--;
13559         }
13560         if (flags & NDR_OUT) {
13561                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
13562                 ndr->depth++;
13563                 ndr_print_ptr(ndr, "validation", r->out.validation);
13564                 ndr->depth++;
13565                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
13566                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
13567                 ndr->depth--;
13568                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
13569                 ndr->depth++;
13570                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
13571                 ndr->depth--;
13572                 ndr_print_ptr(ndr, "flags", r->out.flags);
13573                 ndr->depth++;
13574                 ndr_print_uint32(ndr, "flags", *r->out.flags);
13575                 ndr->depth--;
13576                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13577                 ndr->depth--;
13578         }
13579         ndr->depth--;
13580 }
13581
13582 static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13583 {
13584         if (flags & NDR_IN) {
13585                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13586                 if (r->in.server_name) {
13587                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13588                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13589                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13590                         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));
13591                 }
13592                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
13593         }
13594         if (flags & NDR_OUT) {
13595                 if (r->out.trusts == NULL) {
13596                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13597                 }
13598                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13599                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13600         }
13601         return NDR_ERR_SUCCESS;
13602 }
13603
13604 static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
13605 {
13606         uint32_t _ptr_server_name;
13607         TALLOC_CTX *_mem_save_server_name_0;
13608         TALLOC_CTX *_mem_save_trusts_0;
13609         if (flags & NDR_IN) {
13610                 ZERO_STRUCT(r->out);
13611
13612                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13613                 if (_ptr_server_name) {
13614                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13615                 } else {
13616                         r->in.server_name = NULL;
13617                 }
13618                 if (r->in.server_name) {
13619                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13620                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13621                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13622                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13623                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13624                                 return 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));
13625                         }
13626                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13627                         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));
13628                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13629                 }
13630                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
13631                 NDR_PULL_ALLOC(ndr, r->out.trusts);
13632                 ZERO_STRUCTP(r->out.trusts);
13633         }
13634         if (flags & NDR_OUT) {
13635                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13636                         NDR_PULL_ALLOC(ndr, r->out.trusts);
13637                 }
13638                 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
13639                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
13640                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13641                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, LIBNDR_FLAG_REF_ALLOC);
13642                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13643         }
13644         return NDR_ERR_SUCCESS;
13645 }
13646
13647 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13648 {
13649         ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
13650         ndr->depth++;
13651         if (flags & NDR_SET_VALUES) {
13652                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13653         }
13654         if (flags & NDR_IN) {
13655                 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
13656                 ndr->depth++;
13657                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13658                 ndr->depth++;
13659                 if (r->in.server_name) {
13660                         ndr_print_string(ndr, "server_name", r->in.server_name);
13661                 }
13662                 ndr->depth--;
13663                 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
13664                 ndr->depth--;
13665         }
13666         if (flags & NDR_OUT) {
13667                 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
13668                 ndr->depth++;
13669                 ndr_print_ptr(ndr, "trusts", r->out.trusts);
13670                 ndr->depth++;
13671                 ndr_print_netr_DomainTrustList(ndr, "trusts", r->out.trusts);
13672                 ndr->depth--;
13673                 ndr_print_WERROR(ndr, "result", r->out.result);
13674                 ndr->depth--;
13675         }
13676         ndr->depth--;
13677 }
13678
13679 static enum ndr_err_code ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push *ndr, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
13680 {
13681         if (flags & NDR_IN) {
13682                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13683                 if (r->in.server_name) {
13684                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13685                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13686                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13687                         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));
13688                 }
13689                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain));
13690                 if (r->in.domain) {
13691                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
13692                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13693                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
13694                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13695                 }
13696                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
13697                 if (r->in.domain_guid) {
13698                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
13699                 }
13700                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dsa_guid));
13701                 if (r->in.dsa_guid) {
13702                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.dsa_guid));
13703                 }
13704                 if (r->in.dns_host == NULL) {
13705                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13706                 }
13707                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
13708                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13709                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
13710                 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));
13711         }
13712         if (flags & NDR_OUT) {
13713                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13714         }
13715         return NDR_ERR_SUCCESS;
13716 }
13717
13718 static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull *ndr, int flags, struct netr_DsrDeregisterDNSHostRecords *r)
13719 {
13720         uint32_t _ptr_server_name;
13721         uint32_t _ptr_domain;
13722         uint32_t _ptr_domain_guid;
13723         uint32_t _ptr_dsa_guid;
13724         TALLOC_CTX *_mem_save_server_name_0;
13725         TALLOC_CTX *_mem_save_domain_0;
13726         TALLOC_CTX *_mem_save_domain_guid_0;
13727         TALLOC_CTX *_mem_save_dsa_guid_0;
13728         if (flags & NDR_IN) {
13729                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13730                 if (_ptr_server_name) {
13731                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13732                 } else {
13733                         r->in.server_name = NULL;
13734                 }
13735                 if (r->in.server_name) {
13736                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13737                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13738                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13739                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13740                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13741                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
13742                         }
13743                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13744                         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));
13745                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13746                 }
13747                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
13748                 if (_ptr_domain) {
13749                         NDR_PULL_ALLOC(ndr, r->in.domain);
13750                 } else {
13751                         r->in.domain = NULL;
13752                 }
13753                 if (r->in.domain) {
13754                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
13755                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain, 0);
13756                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
13757                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
13758                         if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
13759                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain), ndr_get_array_length(ndr, &r->in.domain));
13760                         }
13761                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t)));
13762                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t), CH_UTF16));
13763                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
13764                 }
13765                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
13766                 if (_ptr_domain_guid) {
13767                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
13768                 } else {
13769                         r->in.domain_guid = NULL;
13770                 }
13771                 if (r->in.domain_guid) {
13772                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13773                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
13774                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
13775                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
13776                 }
13777                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_guid));
13778                 if (_ptr_dsa_guid) {
13779                         NDR_PULL_ALLOC(ndr, r->in.dsa_guid);
13780                 } else {
13781                         r->in.dsa_guid = NULL;
13782                 }
13783                 if (r->in.dsa_guid) {
13784                         _mem_save_dsa_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13785                         NDR_PULL_SET_MEM_CTX(ndr, r->in.dsa_guid, 0);
13786                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.dsa_guid));
13787                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_guid_0, 0);
13788                 }
13789                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_host));
13790                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_host));
13791                 if (ndr_get_array_length(ndr, &r->in.dns_host) > ndr_get_array_size(ndr, &r->in.dns_host)) {
13792                         return 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));
13793                 }
13794                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t)));
13795                 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));
13796         }
13797         if (flags & NDR_OUT) {
13798                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13799         }
13800         return NDR_ERR_SUCCESS;
13801 }
13802
13803 _PUBLIC_ void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
13804 {
13805         ndr_print_struct(ndr, name, "netr_DsrDeregisterDNSHostRecords");
13806         ndr->depth++;
13807         if (flags & NDR_SET_VALUES) {
13808                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13809         }
13810         if (flags & NDR_IN) {
13811                 ndr_print_struct(ndr, "in", "netr_DsrDeregisterDNSHostRecords");
13812                 ndr->depth++;
13813                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13814                 ndr->depth++;
13815                 if (r->in.server_name) {
13816                         ndr_print_string(ndr, "server_name", r->in.server_name);
13817                 }
13818                 ndr->depth--;
13819                 ndr_print_ptr(ndr, "domain", r->in.domain);
13820                 ndr->depth++;
13821                 if (r->in.domain) {
13822                         ndr_print_string(ndr, "domain", r->in.domain);
13823                 }
13824                 ndr->depth--;
13825                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
13826                 ndr->depth++;
13827                 if (r->in.domain_guid) {
13828                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
13829                 }
13830                 ndr->depth--;
13831                 ndr_print_ptr(ndr, "dsa_guid", r->in.dsa_guid);
13832                 ndr->depth++;
13833                 if (r->in.dsa_guid) {
13834                         ndr_print_GUID(ndr, "dsa_guid", r->in.dsa_guid);
13835                 }
13836                 ndr->depth--;
13837                 ndr_print_ptr(ndr, "dns_host", r->in.dns_host);
13838                 ndr->depth++;
13839                 ndr_print_string(ndr, "dns_host", r->in.dns_host);
13840                 ndr->depth--;
13841                 ndr->depth--;
13842         }
13843         if (flags & NDR_OUT) {
13844                 ndr_print_struct(ndr, "out", "netr_DsrDeregisterDNSHostRecords");
13845                 ndr->depth++;
13846                 ndr_print_WERROR(ndr, "result", r->out.result);
13847                 ndr->depth--;
13848         }
13849         ndr->depth--;
13850 }
13851
13852 static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push *ndr, int flags, const struct netr_ServerTrustPasswordsGet *r)
13853 {
13854         if (flags & NDR_IN) {
13855                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13856                 if (r->in.server_name) {
13857                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13858                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13859                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13860                         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));
13861                 }
13862                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13863                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13864                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13865                 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));
13866                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13867                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13868                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13869                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13870                 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));
13871                 if (r->in.credential == NULL) {
13872                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13873                 }
13874                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13875         }
13876         if (flags & NDR_OUT) {
13877                 if (r->out.return_authenticator == NULL) {
13878                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13879                 }
13880                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13881                 if (r->out.password == NULL) {
13882                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13883                 }
13884                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
13885                 if (r->out.password2 == NULL) {
13886                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13887                 }
13888                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password2));
13889                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13890         }
13891         return NDR_ERR_SUCCESS;
13892 }
13893
13894 static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r)
13895 {
13896         uint32_t _ptr_server_name;
13897         TALLOC_CTX *_mem_save_server_name_0;
13898         TALLOC_CTX *_mem_save_credential_0;
13899         TALLOC_CTX *_mem_save_return_authenticator_0;
13900         TALLOC_CTX *_mem_save_password_0;
13901         TALLOC_CTX *_mem_save_password2_0;
13902         if (flags & NDR_IN) {
13903                 ZERO_STRUCT(r->out);
13904
13905                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13906                 if (_ptr_server_name) {
13907                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13908                 } else {
13909                         r->in.server_name = NULL;
13910                 }
13911                 if (r->in.server_name) {
13912                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13913                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13914                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13915                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13916                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13917                                 return 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));
13918                         }
13919                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13920                         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));
13921                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13922                 }
13923                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13924                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13925                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13926                         return 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));
13927                 }
13928                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13929                 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));
13930                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13931                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13932                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13933                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13934                         return 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));
13935                 }
13936                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13937                 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));
13938                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13939                         NDR_PULL_ALLOC(ndr, r->in.credential);
13940                 }
13941                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13942                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13943                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13944                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13945                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13946                 ZERO_STRUCTP(r->out.return_authenticator);
13947                 NDR_PULL_ALLOC(ndr, r->out.password);
13948                 ZERO_STRUCTP(r->out.password);
13949                 NDR_PULL_ALLOC(ndr, r->out.password2);
13950                 ZERO_STRUCTP(r->out.password2);
13951         }
13952         if (flags & NDR_OUT) {
13953                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13954                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13955                 }
13956                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13957                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13958                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13959                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13960                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13961                         NDR_PULL_ALLOC(ndr, r->out.password);
13962                 }
13963                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
13964                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
13965                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
13966                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
13967                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13968                         NDR_PULL_ALLOC(ndr, r->out.password2);
13969                 }
13970                 _mem_save_password2_0 = NDR_PULL_GET_MEM_CTX(ndr);
13971                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password2, LIBNDR_FLAG_REF_ALLOC);
13972                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password2));
13973                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password2_0, LIBNDR_FLAG_REF_ALLOC);
13974                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13975         }
13976         return NDR_ERR_SUCCESS;
13977 }
13978
13979 _PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerTrustPasswordsGet *r)
13980 {
13981         ndr_print_struct(ndr, name, "netr_ServerTrustPasswordsGet");
13982         ndr->depth++;
13983         if (flags & NDR_SET_VALUES) {
13984                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13985         }
13986         if (flags & NDR_IN) {
13987                 ndr_print_struct(ndr, "in", "netr_ServerTrustPasswordsGet");
13988                 ndr->depth++;
13989                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13990                 ndr->depth++;
13991                 if (r->in.server_name) {
13992                         ndr_print_string(ndr, "server_name", r->in.server_name);
13993                 }
13994                 ndr->depth--;
13995                 ndr_print_string(ndr, "account_name", r->in.account_name);
13996                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
13997                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13998                 ndr_print_ptr(ndr, "credential", r->in.credential);
13999                 ndr->depth++;
14000                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14001                 ndr->depth--;
14002                 ndr->depth--;
14003         }
14004         if (flags & NDR_OUT) {
14005                 ndr_print_struct(ndr, "out", "netr_ServerTrustPasswordsGet");
14006                 ndr->depth++;
14007                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14008                 ndr->depth++;
14009                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14010                 ndr->depth--;
14011                 ndr_print_ptr(ndr, "password", r->out.password);
14012                 ndr->depth++;
14013                 ndr_print_samr_Password(ndr, "password", r->out.password);
14014                 ndr->depth--;
14015                 ndr_print_ptr(ndr, "password2", r->out.password2);
14016                 ndr->depth++;
14017                 ndr_print_samr_Password(ndr, "password2", r->out.password2);
14018                 ndr->depth--;
14019                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14020                 ndr->depth--;
14021         }
14022         ndr->depth--;
14023 }
14024
14025 static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_DsRGetForestTrustInformation *r)
14026 {
14027         if (flags & NDR_IN) {
14028                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14029                 if (r->in.server_name) {
14030                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14031                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14032                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14033                         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));
14034                 }
14035                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.trusted_domain_name));
14036                 if (r->in.trusted_domain_name) {
14037                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14038                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14039                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14040                         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));
14041                 }
14042                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14043         }
14044         if (flags & NDR_OUT) {
14045                 if (r->out.forest_trust_info == NULL) {
14046                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14047                 }
14048                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
14049                 if (*r->out.forest_trust_info) {
14050                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14051                 }
14052                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14053         }
14054         return NDR_ERR_SUCCESS;
14055 }
14056
14057 static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r)
14058 {
14059         uint32_t _ptr_server_name;
14060         uint32_t _ptr_trusted_domain_name;
14061         uint32_t _ptr_forest_trust_info;
14062         TALLOC_CTX *_mem_save_server_name_0;
14063         TALLOC_CTX *_mem_save_trusted_domain_name_0;
14064         TALLOC_CTX *_mem_save_forest_trust_info_0;
14065         TALLOC_CTX *_mem_save_forest_trust_info_1;
14066         if (flags & NDR_IN) {
14067                 ZERO_STRUCT(r->out);
14068
14069                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14070                 if (_ptr_server_name) {
14071                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14072                 } else {
14073                         r->in.server_name = NULL;
14074                 }
14075                 if (r->in.server_name) {
14076                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14077                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14078                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14079                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14080                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14081                                 return 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));
14082                         }
14083                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14084                         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));
14085                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14086                 }
14087                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
14088                 if (_ptr_trusted_domain_name) {
14089                         NDR_PULL_ALLOC(ndr, r->in.trusted_domain_name);
14090                 } else {
14091                         r->in.trusted_domain_name = NULL;
14092                 }
14093                 if (r->in.trusted_domain_name) {
14094                         _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14095                         NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0);
14096                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
14097                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
14098                         if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
14099                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.trusted_domain_name), ndr_get_array_length(ndr, &r->in.trusted_domain_name));
14100                         }
14101                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
14102                         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));
14103                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
14104                 }
14105                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
14106                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14107                 ZERO_STRUCTP(r->out.forest_trust_info);
14108         }
14109         if (flags & NDR_OUT) {
14110                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14111                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14112                 }
14113                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14114                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
14115                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
14116                 if (_ptr_forest_trust_info) {
14117                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
14118                 } else {
14119                         *r->out.forest_trust_info = NULL;
14120                 }
14121                 if (*r->out.forest_trust_info) {
14122                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14123                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
14124                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14125                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
14126                 }
14127                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
14128                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14129         }
14130         return NDR_ERR_SUCCESS;
14131 }
14132
14133 _PUBLIC_ void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r)
14134 {
14135         ndr_print_struct(ndr, name, "netr_DsRGetForestTrustInformation");
14136         ndr->depth++;
14137         if (flags & NDR_SET_VALUES) {
14138                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14139         }
14140         if (flags & NDR_IN) {
14141                 ndr_print_struct(ndr, "in", "netr_DsRGetForestTrustInformation");
14142                 ndr->depth++;
14143                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14144                 ndr->depth++;
14145                 if (r->in.server_name) {
14146                         ndr_print_string(ndr, "server_name", r->in.server_name);
14147                 }
14148                 ndr->depth--;
14149                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14150                 ndr->depth++;
14151                 if (r->in.trusted_domain_name) {
14152                         ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14153                 }
14154                 ndr->depth--;
14155                 ndr_print_uint32(ndr, "flags", r->in.flags);
14156                 ndr->depth--;
14157         }
14158         if (flags & NDR_OUT) {
14159                 ndr_print_struct(ndr, "out", "netr_DsRGetForestTrustInformation");
14160                 ndr->depth++;
14161                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
14162                 ndr->depth++;
14163                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
14164                 ndr->depth++;
14165                 if (*r->out.forest_trust_info) {
14166                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
14167                 }
14168                 ndr->depth--;
14169                 ndr->depth--;
14170                 ndr_print_WERROR(ndr, "result", r->out.result);
14171                 ndr->depth--;
14172         }
14173         ndr->depth--;
14174 }
14175
14176 static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_GetForestTrustInformation *r)
14177 {
14178         if (flags & NDR_IN) {
14179                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14180                 if (r->in.server_name) {
14181                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14182                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14183                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14184                         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));
14185                 }
14186                 if (r->in.trusted_domain_name == NULL) {
14187                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14188                 }
14189                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14190                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14191                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14192                 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));
14193                 if (r->in.credential == NULL) {
14194                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14195                 }
14196                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14197                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14198         }
14199         if (flags & NDR_OUT) {
14200                 if (r->out.return_authenticator == NULL) {
14201                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14202                 }
14203                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14204                 if (r->out.forest_trust_info == NULL) {
14205                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14206                 }
14207                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
14208                 if (*r->out.forest_trust_info) {
14209                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14210                 }
14211                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14212         }
14213         return NDR_ERR_SUCCESS;
14214 }
14215
14216 static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r)
14217 {
14218         uint32_t _ptr_server_name;
14219         uint32_t _ptr_forest_trust_info;
14220         TALLOC_CTX *_mem_save_server_name_0;
14221         TALLOC_CTX *_mem_save_credential_0;
14222         TALLOC_CTX *_mem_save_return_authenticator_0;
14223         TALLOC_CTX *_mem_save_forest_trust_info_0;
14224         TALLOC_CTX *_mem_save_forest_trust_info_1;
14225         if (flags & NDR_IN) {
14226                 ZERO_STRUCT(r->out);
14227
14228                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14229                 if (_ptr_server_name) {
14230                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14231                 } else {
14232                         r->in.server_name = NULL;
14233                 }
14234                 if (r->in.server_name) {
14235                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14236                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14237                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14238                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14239                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14240                                 return 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));
14241                         }
14242                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14243                         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));
14244                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14245                 }
14246                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
14247                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
14248                 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
14249                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.trusted_domain_name), ndr_get_array_length(ndr, &r->in.trusted_domain_name));
14250                 }
14251                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
14252                 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));
14253                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14254                         NDR_PULL_ALLOC(ndr, r->in.credential);
14255                 }
14256                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14257                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
14258                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14259                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
14260                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
14261                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14262                 ZERO_STRUCTP(r->out.return_authenticator);
14263                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14264                 ZERO_STRUCTP(r->out.forest_trust_info);
14265         }
14266         if (flags & NDR_OUT) {
14267                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14268                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14269                 }
14270                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14271                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14272                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14273                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14274                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14275                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14276                 }
14277                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14278                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
14279                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
14280                 if (_ptr_forest_trust_info) {
14281                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
14282                 } else {
14283                         *r->out.forest_trust_info = NULL;
14284                 }
14285                 if (*r->out.forest_trust_info) {
14286                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14287                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
14288                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14289                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
14290                 }
14291                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
14292                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14293         }
14294         return NDR_ERR_SUCCESS;
14295 }
14296
14297 _PUBLIC_ void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r)
14298 {
14299         ndr_print_struct(ndr, name, "netr_GetForestTrustInformation");
14300         ndr->depth++;
14301         if (flags & NDR_SET_VALUES) {
14302                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14303         }
14304         if (flags & NDR_IN) {
14305                 ndr_print_struct(ndr, "in", "netr_GetForestTrustInformation");
14306                 ndr->depth++;
14307                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14308                 ndr->depth++;
14309                 if (r->in.server_name) {
14310                         ndr_print_string(ndr, "server_name", r->in.server_name);
14311                 }
14312                 ndr->depth--;
14313                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14314                 ndr->depth++;
14315                 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14316                 ndr->depth--;
14317                 ndr_print_ptr(ndr, "credential", r->in.credential);
14318                 ndr->depth++;
14319                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14320                 ndr->depth--;
14321                 ndr_print_uint32(ndr, "flags", r->in.flags);
14322                 ndr->depth--;
14323         }
14324         if (flags & NDR_OUT) {
14325                 ndr_print_struct(ndr, "out", "netr_GetForestTrustInformation");
14326                 ndr->depth++;
14327                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14328                 ndr->depth++;
14329                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14330                 ndr->depth--;
14331                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
14332                 ndr->depth++;
14333                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
14334                 ndr->depth++;
14335                 if (*r->out.forest_trust_info) {
14336                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
14337                 }
14338                 ndr->depth--;
14339                 ndr->depth--;
14340                 ndr_print_WERROR(ndr, "result", r->out.result);
14341                 ndr->depth--;
14342         }
14343         ndr->depth--;
14344 }
14345
14346 static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
14347 {
14348         if (flags & NDR_IN) {
14349                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14350                 if (r->in.server_name) {
14351                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14352                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14353                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14354                         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));
14355                 }
14356                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
14357                 if (r->in.computer_name) {
14358                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14359                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14360                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14361                         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));
14362                 }
14363                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
14364                 if (r->in.credential) {
14365                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14366                 }
14367                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
14368                 if (r->in.return_authenticator) {
14369                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14370                 }
14371                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
14372                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14373                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14374                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
14375                 if (r->in.flags == NULL) {
14376                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14377                 }
14378                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
14379         }
14380         if (flags & NDR_OUT) {
14381                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
14382                 if (r->out.return_authenticator) {
14383                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14384                 }
14385                 if (r->out.validation == NULL) {
14386                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14387                 }
14388                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14389                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14390                 if (r->out.authoritative == NULL) {
14391                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14392                 }
14393                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
14394                 if (r->out.flags == NULL) {
14395                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14396                 }
14397                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
14398                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
14399         }
14400         return NDR_ERR_SUCCESS;
14401 }
14402
14403 static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
14404 {
14405         uint32_t _ptr_server_name;
14406         uint32_t _ptr_computer_name;
14407         uint32_t _ptr_credential;
14408         uint32_t _ptr_return_authenticator;
14409         TALLOC_CTX *_mem_save_server_name_0;
14410         TALLOC_CTX *_mem_save_computer_name_0;
14411         TALLOC_CTX *_mem_save_credential_0;
14412         TALLOC_CTX *_mem_save_return_authenticator_0;
14413         TALLOC_CTX *_mem_save_validation_0;
14414         TALLOC_CTX *_mem_save_authoritative_0;
14415         TALLOC_CTX *_mem_save_flags_0;
14416         if (flags & NDR_IN) {
14417                 ZERO_STRUCT(r->out);
14418
14419                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14420                 if (_ptr_server_name) {
14421                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14422                 } else {
14423                         r->in.server_name = NULL;
14424                 }
14425                 if (r->in.server_name) {
14426                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14427                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14428                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14429                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14430                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14431                                 return 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));
14432                         }
14433                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14434                         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));
14435                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14436                 }
14437                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
14438                 if (_ptr_computer_name) {
14439                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
14440                 } else {
14441                         r->in.computer_name = NULL;
14442                 }
14443                 if (r->in.computer_name) {
14444                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14445                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
14446                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14447                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14448                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14449                                 return 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));
14450                         }
14451                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14452                         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));
14453                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
14454                 }
14455                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
14456                 if (_ptr_credential) {
14457                         NDR_PULL_ALLOC(ndr, r->in.credential);
14458                 } else {
14459                         r->in.credential = NULL;
14460                 }
14461                 if (r->in.credential) {
14462                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14463                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
14464                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14465                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
14466                 }
14467                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14468                 if (_ptr_return_authenticator) {
14469                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
14470                 } else {
14471                         r->in.return_authenticator = NULL;
14472                 }
14473                 if (r->in.return_authenticator) {
14474                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14475                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
14476                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14477                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14478                 }
14479                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
14480                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14481                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14482                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
14483                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14484                         NDR_PULL_ALLOC(ndr, r->in.flags);
14485                 }
14486                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14487                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
14488                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
14489                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14490                 NDR_PULL_ALLOC(ndr, r->out.validation);
14491                 ZERO_STRUCTP(r->out.validation);
14492                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
14493                 ZERO_STRUCTP(r->out.authoritative);
14494                 NDR_PULL_ALLOC(ndr, r->out.flags);
14495                 *r->out.flags = *r->in.flags;
14496         }
14497         if (flags & NDR_OUT) {
14498                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14499                 if (_ptr_return_authenticator) {
14500                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14501                 } else {
14502                         r->out.return_authenticator = NULL;
14503                 }
14504                 if (r->out.return_authenticator) {
14505                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14506                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
14507                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14508                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14509                 }
14510                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14511                         NDR_PULL_ALLOC(ndr, r->out.validation);
14512                 }
14513                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
14514                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
14515                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14516                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14517                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
14518                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14519                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
14520                 }
14521                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
14522                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
14523                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
14524                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
14525                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14526                         NDR_PULL_ALLOC(ndr, r->out.flags);
14527                 }
14528                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14529                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
14530                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
14531                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14532                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14533         }
14534         return NDR_ERR_SUCCESS;
14535 }
14536
14537 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
14538 {
14539         ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
14540         ndr->depth++;
14541         if (flags & NDR_SET_VALUES) {
14542                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14543         }
14544         if (flags & NDR_IN) {
14545                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
14546                 ndr->depth++;
14547                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14548                 ndr->depth++;
14549                 if (r->in.server_name) {
14550                         ndr_print_string(ndr, "server_name", r->in.server_name);
14551                 }
14552                 ndr->depth--;
14553                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14554                 ndr->depth++;
14555                 if (r->in.computer_name) {
14556                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
14557                 }
14558                 ndr->depth--;
14559                 ndr_print_ptr(ndr, "credential", r->in.credential);
14560                 ndr->depth++;
14561                 if (r->in.credential) {
14562                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14563                 }
14564                 ndr->depth--;
14565                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
14566                 ndr->depth++;
14567                 if (r->in.return_authenticator) {
14568                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
14569                 }
14570                 ndr->depth--;
14571                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
14572                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
14573                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
14574                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
14575                 ndr_print_ptr(ndr, "flags", r->in.flags);
14576                 ndr->depth++;
14577                 ndr_print_uint32(ndr, "flags", *r->in.flags);
14578                 ndr->depth--;
14579                 ndr->depth--;
14580         }
14581         if (flags & NDR_OUT) {
14582                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
14583                 ndr->depth++;
14584                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14585                 ndr->depth++;
14586                 if (r->out.return_authenticator) {
14587                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14588                 }
14589                 ndr->depth--;
14590                 ndr_print_ptr(ndr, "validation", r->out.validation);
14591                 ndr->depth++;
14592                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
14593                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
14594                 ndr->depth--;
14595                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
14596                 ndr->depth++;
14597                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
14598                 ndr->depth--;
14599                 ndr_print_ptr(ndr, "flags", r->out.flags);
14600                 ndr->depth++;
14601                 ndr_print_uint32(ndr, "flags", *r->out.flags);
14602                 ndr->depth--;
14603                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14604                 ndr->depth--;
14605         }
14606         ndr->depth--;
14607 }
14608
14609 static enum ndr_err_code ndr_push_netr_NETRSERVERGETTRUSTINFO(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14610 {
14611         if (flags & NDR_IN) {
14612         }
14613         if (flags & NDR_OUT) {
14614                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14615         }
14616         return NDR_ERR_SUCCESS;
14617 }
14618
14619 static enum ndr_err_code ndr_pull_netr_NETRSERVERGETTRUSTINFO(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERGETTRUSTINFO *r)
14620 {
14621         if (flags & NDR_IN) {
14622         }
14623         if (flags & NDR_OUT) {
14624                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14625         }
14626         return NDR_ERR_SUCCESS;
14627 }
14628
14629 _PUBLIC_ void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14630 {
14631         ndr_print_struct(ndr, name, "netr_NETRSERVERGETTRUSTINFO");
14632         ndr->depth++;
14633         if (flags & NDR_SET_VALUES) {
14634                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14635         }
14636         if (flags & NDR_IN) {
14637                 ndr_print_struct(ndr, "in", "netr_NETRSERVERGETTRUSTINFO");
14638                 ndr->depth++;
14639                 ndr->depth--;
14640         }
14641         if (flags & NDR_OUT) {
14642                 ndr_print_struct(ndr, "out", "netr_NETRSERVERGETTRUSTINFO");
14643                 ndr->depth++;
14644                 ndr_print_WERROR(ndr, "result", r->out.result);
14645                 ndr->depth--;
14646         }
14647         ndr->depth--;
14648 }
14649
14650 static const struct ndr_interface_call netlogon_calls[] = {
14651         {
14652                 "netr_LogonUasLogon",
14653                 sizeof(struct netr_LogonUasLogon),
14654                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
14655                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
14656                 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
14657                 false,
14658         },
14659         {
14660                 "netr_LogonUasLogoff",
14661                 sizeof(struct netr_LogonUasLogoff),
14662                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
14663                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
14664                 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
14665                 false,
14666         },
14667         {
14668                 "netr_LogonSamLogon",
14669                 sizeof(struct netr_LogonSamLogon),
14670                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
14671                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
14672                 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
14673                 false,
14674         },
14675         {
14676                 "netr_LogonSamLogoff",
14677                 sizeof(struct netr_LogonSamLogoff),
14678                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
14679                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
14680                 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
14681                 false,
14682         },
14683         {
14684                 "netr_ServerReqChallenge",
14685                 sizeof(struct netr_ServerReqChallenge),
14686                 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
14687                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
14688                 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
14689                 false,
14690         },
14691         {
14692                 "netr_ServerAuthenticate",
14693                 sizeof(struct netr_ServerAuthenticate),
14694                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
14695                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
14696                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
14697                 false,
14698         },
14699         {
14700                 "netr_ServerPasswordSet",
14701                 sizeof(struct netr_ServerPasswordSet),
14702                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
14703                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
14704                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
14705                 false,
14706         },
14707         {
14708                 "netr_DatabaseDeltas",
14709                 sizeof(struct netr_DatabaseDeltas),
14710                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
14711                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
14712                 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
14713                 false,
14714         },
14715         {
14716                 "netr_DatabaseSync",
14717                 sizeof(struct netr_DatabaseSync),
14718                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
14719                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
14720                 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
14721                 false,
14722         },
14723         {
14724                 "netr_AccountDeltas",
14725                 sizeof(struct netr_AccountDeltas),
14726                 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
14727                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
14728                 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
14729                 false,
14730         },
14731         {
14732                 "netr_AccountSync",
14733                 sizeof(struct netr_AccountSync),
14734                 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
14735                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
14736                 (ndr_print_function_t) ndr_print_netr_AccountSync,
14737                 false,
14738         },
14739         {
14740                 "netr_GetDcName",
14741                 sizeof(struct netr_GetDcName),
14742                 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
14743                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
14744                 (ndr_print_function_t) ndr_print_netr_GetDcName,
14745                 false,
14746         },
14747         {
14748                 "netr_LogonControl",
14749                 sizeof(struct netr_LogonControl),
14750                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
14751                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
14752                 (ndr_print_function_t) ndr_print_netr_LogonControl,
14753                 false,
14754         },
14755         {
14756                 "netr_GetAnyDCName",
14757                 sizeof(struct netr_GetAnyDCName),
14758                 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
14759                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
14760                 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
14761                 false,
14762         },
14763         {
14764                 "netr_LogonControl2",
14765                 sizeof(struct netr_LogonControl2),
14766                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
14767                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
14768                 (ndr_print_function_t) ndr_print_netr_LogonControl2,
14769                 false,
14770         },
14771         {
14772                 "netr_ServerAuthenticate2",
14773                 sizeof(struct netr_ServerAuthenticate2),
14774                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
14775                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
14776                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
14777                 false,
14778         },
14779         {
14780                 "netr_DatabaseSync2",
14781                 sizeof(struct netr_DatabaseSync2),
14782                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
14783                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
14784                 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
14785                 false,
14786         },
14787         {
14788                 "netr_DatabaseRedo",
14789                 sizeof(struct netr_DatabaseRedo),
14790                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
14791                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
14792                 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
14793                 false,
14794         },
14795         {
14796                 "netr_LogonControl2Ex",
14797                 sizeof(struct netr_LogonControl2Ex),
14798                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
14799                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
14800                 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
14801                 false,
14802         },
14803         {
14804                 "netr_NetrEnumerateTrustedDomains",
14805                 sizeof(struct netr_NetrEnumerateTrustedDomains),
14806                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomains,
14807                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomains,
14808                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomains,
14809                 false,
14810         },
14811         {
14812                 "netr_DsRGetDCName",
14813                 sizeof(struct netr_DsRGetDCName),
14814                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
14815                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
14816                 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
14817                 false,
14818         },
14819         {
14820                 "netr_NETRLOGONDUMMYROUTINE1",
14821                 sizeof(struct netr_NETRLOGONDUMMYROUTINE1),
14822                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONDUMMYROUTINE1,
14823                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONDUMMYROUTINE1,
14824                 (ndr_print_function_t) ndr_print_netr_NETRLOGONDUMMYROUTINE1,
14825                 false,
14826         },
14827         {
14828                 "netr_NETRLOGONSETSERVICEBITS",
14829                 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
14830                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
14831                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
14832                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
14833                 false,
14834         },
14835         {
14836                 "netr_LogonGetTrustRid",
14837                 sizeof(struct netr_LogonGetTrustRid),
14838                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetTrustRid,
14839                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetTrustRid,
14840                 (ndr_print_function_t) ndr_print_netr_LogonGetTrustRid,
14841                 false,
14842         },
14843         {
14844                 "netr_NETRLOGONCOMPUTESERVERDIGEST",
14845                 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
14846                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
14847                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
14848                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
14849                 false,
14850         },
14851         {
14852                 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
14853                 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
14854                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14855                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14856                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14857                 false,
14858         },
14859         {
14860                 "netr_ServerAuthenticate3",
14861                 sizeof(struct netr_ServerAuthenticate3),
14862                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
14863                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
14864                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
14865                 false,
14866         },
14867         {
14868                 "netr_DsRGetDCNameEx",
14869                 sizeof(struct netr_DsRGetDCNameEx),
14870                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
14871                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
14872                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
14873                 false,
14874         },
14875         {
14876                 "netr_DsRGetSiteName",
14877                 sizeof(struct netr_DsRGetSiteName),
14878                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
14879                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
14880                 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
14881                 false,
14882         },
14883         {
14884                 "netr_LogonGetDomainInfo",
14885                 sizeof(struct netr_LogonGetDomainInfo),
14886                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
14887                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
14888                 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
14889                 false,
14890         },
14891         {
14892                 "netr_ServerPasswordSet2",
14893                 sizeof(struct netr_ServerPasswordSet2),
14894                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
14895                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
14896                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
14897                 false,
14898         },
14899         {
14900                 "netr_ServerPasswordGet",
14901                 sizeof(struct netr_ServerPasswordGet),
14902                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordGet,
14903                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordGet,
14904                 (ndr_print_function_t) ndr_print_netr_ServerPasswordGet,
14905                 false,
14906         },
14907         {
14908                 "netr_NETRLOGONSENDTOSAM",
14909                 sizeof(struct netr_NETRLOGONSENDTOSAM),
14910                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
14911                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
14912                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
14913                 false,
14914         },
14915         {
14916                 "netr_DsRAddressToSitenamesW",
14917                 sizeof(struct netr_DsRAddressToSitenamesW),
14918                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesW,
14919                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesW,
14920                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesW,
14921                 false,
14922         },
14923         {
14924                 "netr_DsRGetDCNameEx2",
14925                 sizeof(struct netr_DsRGetDCNameEx2),
14926                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
14927                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
14928                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
14929                 false,
14930         },
14931         {
14932                 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
14933                 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
14934                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14935                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14936                 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14937                 false,
14938         },
14939         {
14940                 "netr_NetrEnumerateTrustedDomainsEx",
14941                 sizeof(struct netr_NetrEnumerateTrustedDomainsEx),
14942                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomainsEx,
14943                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomainsEx,
14944                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomainsEx,
14945                 false,
14946         },
14947         {
14948                 "netr_DsRAddressToSitenamesExW",
14949                 sizeof(struct netr_DsRAddressToSitenamesExW),
14950                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesExW,
14951                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesExW,
14952                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesExW,
14953                 false,
14954         },
14955         {
14956                 "netr_DsrGetDcSiteCoverageW",
14957                 sizeof(struct netr_DsrGetDcSiteCoverageW),
14958                 (ndr_push_flags_fn_t) ndr_push_netr_DsrGetDcSiteCoverageW,
14959                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrGetDcSiteCoverageW,
14960                 (ndr_print_function_t) ndr_print_netr_DsrGetDcSiteCoverageW,
14961                 false,
14962         },
14963         {
14964                 "netr_LogonSamLogonEx",
14965                 sizeof(struct netr_LogonSamLogonEx),
14966                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
14967                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
14968                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
14969                 false,
14970         },
14971         {
14972                 "netr_DsrEnumerateDomainTrusts",
14973                 sizeof(struct netr_DsrEnumerateDomainTrusts),
14974                 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
14975                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
14976                 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
14977                 false,
14978         },
14979         {
14980                 "netr_DsrDeregisterDNSHostRecords",
14981                 sizeof(struct netr_DsrDeregisterDNSHostRecords),
14982                 (ndr_push_flags_fn_t) ndr_push_netr_DsrDeregisterDNSHostRecords,
14983                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrDeregisterDNSHostRecords,
14984                 (ndr_print_function_t) ndr_print_netr_DsrDeregisterDNSHostRecords,
14985                 false,
14986         },
14987         {
14988                 "netr_ServerTrustPasswordsGet",
14989                 sizeof(struct netr_ServerTrustPasswordsGet),
14990                 (ndr_push_flags_fn_t) ndr_push_netr_ServerTrustPasswordsGet,
14991                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerTrustPasswordsGet,
14992                 (ndr_print_function_t) ndr_print_netr_ServerTrustPasswordsGet,
14993                 false,
14994         },
14995         {
14996                 "netr_DsRGetForestTrustInformation",
14997                 sizeof(struct netr_DsRGetForestTrustInformation),
14998                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetForestTrustInformation,
14999                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetForestTrustInformation,
15000                 (ndr_print_function_t) ndr_print_netr_DsRGetForestTrustInformation,
15001                 false,
15002         },
15003         {
15004                 "netr_GetForestTrustInformation",
15005                 sizeof(struct netr_GetForestTrustInformation),
15006                 (ndr_push_flags_fn_t) ndr_push_netr_GetForestTrustInformation,
15007                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetForestTrustInformation,
15008                 (ndr_print_function_t) ndr_print_netr_GetForestTrustInformation,
15009                 false,
15010         },
15011         {
15012                 "netr_LogonSamLogonWithFlags",
15013                 sizeof(struct netr_LogonSamLogonWithFlags),
15014                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
15015                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
15016                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
15017                 false,
15018         },
15019         {
15020                 "netr_NETRSERVERGETTRUSTINFO",
15021                 sizeof(struct netr_NETRSERVERGETTRUSTINFO),
15022                 (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERGETTRUSTINFO,
15023                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERGETTRUSTINFO,
15024                 (ndr_print_function_t) ndr_print_netr_NETRSERVERGETTRUSTINFO,
15025                 false,
15026         },
15027         { NULL, 0, NULL, NULL, NULL, false }
15028 };
15029
15030 static const char * const netlogon_endpoint_strings[] = {
15031         "ncacn_np:[\\pipe\\netlogon]", 
15032         "ncacn_ip_tcp:", 
15033         "ncalrpc:", 
15034 };
15035
15036 static const struct ndr_interface_string_array netlogon_endpoints = {
15037         .count  = 3,
15038         .names  = netlogon_endpoint_strings
15039 };
15040
15041 static const char * const netlogon_authservice_strings[] = {
15042         "host", 
15043 };
15044
15045 static const struct ndr_interface_string_array netlogon_authservices = {
15046         .count  = 3,
15047         .names  = netlogon_authservice_strings
15048 };
15049
15050
15051 const struct ndr_interface_table ndr_table_netlogon = {
15052         .name           = "netlogon",
15053         .syntax_id      = {
15054                 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
15055                 NDR_NETLOGON_VERSION
15056         },
15057         .helpstring     = NDR_NETLOGON_HELPSTRING,
15058         .num_calls      = 47,
15059         .calls          = netlogon_calls,
15060         .endpoints      = &netlogon_endpoints,
15061         .authservices   = &netlogon_authservices
15062 };
15063