Re-run make idl.
[ira/wip.git] / source3 / librpc / gen_ndr / ndr_netlogon.c
1 /* parser auto-generated by pidl */
2
3 #include "includes.h"
4 #include "librpc/gen_ndr/ndr_netlogon.h"
5
6 #include "librpc/gen_ndr/ndr_lsa.h"
7 #include "librpc/gen_ndr/ndr_samr.h"
8 #include "librpc/gen_ndr/ndr_security.h"
9 static enum ndr_err_code ndr_push_netr_UasInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasInfo *r)
10 {
11         if (ndr_flags & NDR_SCALARS) {
12                 NDR_CHECK(ndr_push_align(ndr, 4));
13                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
14                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priv));
15                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_flags));
16                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_count));
17                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bad_pw_count));
18                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logon));
19                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->last_logoff));
20                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->logoff_time));
21                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->kickoff_time));
22                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->password_age));
23                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_can_change));
24                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->pw_must_change));
25                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->computer));
26                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
27                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->script_path));
28                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown));
29         }
30         if (ndr_flags & NDR_BUFFERS) {
31                 if (r->account_name) {
32                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
33                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
34                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
35                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
36                 }
37                 if (r->computer) {
38                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
39                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
40                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->computer, CH_UTF16)));
41                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->computer, ndr_charset_length(r->computer, CH_UTF16), sizeof(uint16_t), CH_UTF16));
42                 }
43                 if (r->domain) {
44                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
45                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
46                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
47                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
48                 }
49                 if (r->script_path) {
50                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
51                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
52                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->script_path, CH_UTF16)));
53                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->script_path, ndr_charset_length(r->script_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
54                 }
55         }
56         return NDR_ERR_SUCCESS;
57 }
58
59 static enum ndr_err_code ndr_pull_netr_UasInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasInfo *r)
60 {
61         uint32_t _ptr_account_name;
62         TALLOC_CTX *_mem_save_account_name_0;
63         uint32_t _ptr_computer;
64         TALLOC_CTX *_mem_save_computer_0;
65         uint32_t _ptr_domain;
66         TALLOC_CTX *_mem_save_domain_0;
67         uint32_t _ptr_script_path;
68         TALLOC_CTX *_mem_save_script_path_0;
69         if (ndr_flags & NDR_SCALARS) {
70                 NDR_CHECK(ndr_pull_align(ndr, 4));
71                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
72                 if (_ptr_account_name) {
73                         NDR_PULL_ALLOC(ndr, r->account_name);
74                 } else {
75                         r->account_name = NULL;
76                 }
77                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priv));
78                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_flags));
79                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_count));
80                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bad_pw_count));
81                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logon));
82                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->last_logoff));
83                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->logoff_time));
84                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->kickoff_time));
85                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->password_age));
86                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_can_change));
87                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->pw_must_change));
88                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer));
89                 if (_ptr_computer) {
90                         NDR_PULL_ALLOC(ndr, r->computer);
91                 } else {
92                         r->computer = NULL;
93                 }
94                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
95                 if (_ptr_domain) {
96                         NDR_PULL_ALLOC(ndr, r->domain);
97                 } else {
98                         r->domain = NULL;
99                 }
100                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_script_path));
101                 if (_ptr_script_path) {
102                         NDR_PULL_ALLOC(ndr, r->script_path);
103                 } else {
104                         r->script_path = NULL;
105                 }
106                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
107         }
108         if (ndr_flags & NDR_BUFFERS) {
109                 if (r->account_name) {
110                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
111                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
112                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
113                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
114                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
115                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name));
116                         }
117                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
118                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
119                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
120                 }
121                 if (r->computer) {
122                         _mem_save_computer_0 = NDR_PULL_GET_MEM_CTX(ndr);
123                         NDR_PULL_SET_MEM_CTX(ndr, r->computer, 0);
124                         NDR_CHECK(ndr_pull_array_size(ndr, &r->computer));
125                         NDR_CHECK(ndr_pull_array_length(ndr, &r->computer));
126                         if (ndr_get_array_length(ndr, &r->computer) > ndr_get_array_size(ndr, &r->computer)) {
127                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->computer), ndr_get_array_length(ndr, &r->computer));
128                         }
129                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t)));
130                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->computer, ndr_get_array_length(ndr, &r->computer), sizeof(uint16_t), CH_UTF16));
131                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_0, 0);
132                 }
133                 if (r->domain) {
134                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
135                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
136                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
137                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
138                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
139                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
140                         }
141                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
142                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
143                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
144                 }
145                 if (r->script_path) {
146                         _mem_save_script_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
147                         NDR_PULL_SET_MEM_CTX(ndr, r->script_path, 0);
148                         NDR_CHECK(ndr_pull_array_size(ndr, &r->script_path));
149                         NDR_CHECK(ndr_pull_array_length(ndr, &r->script_path));
150                         if (ndr_get_array_length(ndr, &r->script_path) > ndr_get_array_size(ndr, &r->script_path)) {
151                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->script_path), ndr_get_array_length(ndr, &r->script_path));
152                         }
153                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t)));
154                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->script_path, ndr_get_array_length(ndr, &r->script_path), sizeof(uint16_t), CH_UTF16));
155                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_script_path_0, 0);
156                 }
157         }
158         return NDR_ERR_SUCCESS;
159 }
160
161 _PUBLIC_ void ndr_print_netr_UasInfo(struct ndr_print *ndr, const char *name, const struct netr_UasInfo *r)
162 {
163         ndr_print_struct(ndr, name, "netr_UasInfo");
164         ndr->depth++;
165         ndr_print_ptr(ndr, "account_name", r->account_name);
166         ndr->depth++;
167         if (r->account_name) {
168                 ndr_print_string(ndr, "account_name", r->account_name);
169         }
170         ndr->depth--;
171         ndr_print_uint32(ndr, "priv", r->priv);
172         ndr_print_uint32(ndr, "auth_flags", r->auth_flags);
173         ndr_print_uint32(ndr, "logon_count", r->logon_count);
174         ndr_print_uint32(ndr, "bad_pw_count", r->bad_pw_count);
175         ndr_print_time_t(ndr, "last_logon", r->last_logon);
176         ndr_print_time_t(ndr, "last_logoff", r->last_logoff);
177         ndr_print_time_t(ndr, "logoff_time", r->logoff_time);
178         ndr_print_time_t(ndr, "kickoff_time", r->kickoff_time);
179         ndr_print_uint32(ndr, "password_age", r->password_age);
180         ndr_print_time_t(ndr, "pw_can_change", r->pw_can_change);
181         ndr_print_time_t(ndr, "pw_must_change", r->pw_must_change);
182         ndr_print_ptr(ndr, "computer", r->computer);
183         ndr->depth++;
184         if (r->computer) {
185                 ndr_print_string(ndr, "computer", r->computer);
186         }
187         ndr->depth--;
188         ndr_print_ptr(ndr, "domain", r->domain);
189         ndr->depth++;
190         if (r->domain) {
191                 ndr_print_string(ndr, "domain", r->domain);
192         }
193         ndr->depth--;
194         ndr_print_ptr(ndr, "script_path", r->script_path);
195         ndr->depth++;
196         if (r->script_path) {
197                 ndr_print_string(ndr, "script_path", r->script_path);
198         }
199         ndr->depth--;
200         ndr_print_uint32(ndr, "unknown", r->unknown);
201         ndr->depth--;
202 }
203
204 static enum ndr_err_code ndr_push_netr_UasLogoffInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_UasLogoffInfo *r)
205 {
206         if (ndr_flags & NDR_SCALARS) {
207                 NDR_CHECK(ndr_push_align(ndr, 4));
208                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->duration));
209                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
210         }
211         if (ndr_flags & NDR_BUFFERS) {
212         }
213         return NDR_ERR_SUCCESS;
214 }
215
216 static enum ndr_err_code ndr_pull_netr_UasLogoffInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_UasLogoffInfo *r)
217 {
218         if (ndr_flags & NDR_SCALARS) {
219                 NDR_CHECK(ndr_pull_align(ndr, 4));
220                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->duration));
221                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
222         }
223         if (ndr_flags & NDR_BUFFERS) {
224         }
225         return NDR_ERR_SUCCESS;
226 }
227
228 _PUBLIC_ void ndr_print_netr_UasLogoffInfo(struct ndr_print *ndr, const char *name, const struct netr_UasLogoffInfo *r)
229 {
230         ndr_print_struct(ndr, name, "netr_UasLogoffInfo");
231         ndr->depth++;
232         ndr_print_uint32(ndr, "duration", r->duration);
233         ndr_print_uint16(ndr, "logon_count", r->logon_count);
234         ndr->depth--;
235 }
236
237 static enum ndr_err_code ndr_push_netr_AcctLockStr(struct ndr_push *ndr, int ndr_flags, const struct netr_AcctLockStr *r)
238 {
239         uint32_t cntr_bindata_1;
240         if (ndr_flags & NDR_SCALARS) {
241                 NDR_CHECK(ndr_push_align(ndr, 4));
242                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
243                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
244                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->bindata));
245         }
246         if (ndr_flags & NDR_BUFFERS) {
247                 if (r->bindata) {
248                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
249                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
250                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
251                         for (cntr_bindata_1 = 0; cntr_bindata_1 < r->length / 2; cntr_bindata_1++) {
252                                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bindata[cntr_bindata_1]));
253                         }
254                 }
255         }
256         return NDR_ERR_SUCCESS;
257 }
258
259 static enum ndr_err_code ndr_pull_netr_AcctLockStr(struct ndr_pull *ndr, int ndr_flags, struct netr_AcctLockStr *r)
260 {
261         uint32_t _ptr_bindata;
262         uint32_t cntr_bindata_1;
263         TALLOC_CTX *_mem_save_bindata_0;
264         TALLOC_CTX *_mem_save_bindata_1;
265         if (ndr_flags & NDR_SCALARS) {
266                 NDR_CHECK(ndr_pull_align(ndr, 4));
267                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
268                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
269                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_bindata));
270                 if (_ptr_bindata) {
271                         NDR_PULL_ALLOC(ndr, r->bindata);
272                 } else {
273                         r->bindata = NULL;
274                 }
275         }
276         if (ndr_flags & NDR_BUFFERS) {
277                 if (r->bindata) {
278                         _mem_save_bindata_0 = NDR_PULL_GET_MEM_CTX(ndr);
279                         NDR_PULL_SET_MEM_CTX(ndr, r->bindata, 0);
280                         NDR_CHECK(ndr_pull_array_size(ndr, &r->bindata));
281                         NDR_CHECK(ndr_pull_array_length(ndr, &r->bindata));
282                         if (ndr_get_array_length(ndr, &r->bindata) > ndr_get_array_size(ndr, &r->bindata)) {
283                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->bindata), ndr_get_array_length(ndr, &r->bindata));
284                         }
285                         NDR_PULL_ALLOC_N(ndr, r->bindata, ndr_get_array_size(ndr, &r->bindata));
286                         _mem_save_bindata_1 = NDR_PULL_GET_MEM_CTX(ndr);
287                         NDR_PULL_SET_MEM_CTX(ndr, r->bindata, 0);
288                         for (cntr_bindata_1 = 0; cntr_bindata_1 < r->length / 2; cntr_bindata_1++) {
289                                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bindata[cntr_bindata_1]));
290                         }
291                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bindata_1, 0);
292                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_bindata_0, 0);
293                 }
294                 if (r->bindata) {
295                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->bindata, r->size / 2));
296                 }
297                 if (r->bindata) {
298                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->bindata, r->length / 2));
299                 }
300         }
301         return NDR_ERR_SUCCESS;
302 }
303
304 _PUBLIC_ void ndr_print_netr_AcctLockStr(struct ndr_print *ndr, const char *name, const struct netr_AcctLockStr *r)
305 {
306         uint32_t cntr_bindata_1;
307         ndr_print_struct(ndr, name, "netr_AcctLockStr");
308         ndr->depth++;
309         ndr_print_uint16(ndr, "size", r->size);
310         ndr_print_uint16(ndr, "length", r->length);
311         ndr_print_ptr(ndr, "bindata", r->bindata);
312         ndr->depth++;
313         if (r->bindata) {
314                 ndr->print(ndr, "%s: ARRAY(%d)", "bindata", r->length / 2);
315                 ndr->depth++;
316                 for (cntr_bindata_1=0;cntr_bindata_1<r->length / 2;cntr_bindata_1++) {
317                         char *idx_1=NULL;
318                         asprintf(&idx_1, "[%d]", cntr_bindata_1);
319                         if (idx_1) {
320                                 ndr_print_uint16(ndr, "bindata", r->bindata[cntr_bindata_1]);
321                                 free(idx_1);
322                         }
323                 }
324                 ndr->depth--;
325         }
326         ndr->depth--;
327         ndr->depth--;
328 }
329
330 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonParameterControl(struct ndr_push *ndr, int ndr_flags, uint32_t r)
331 {
332         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
333         return NDR_ERR_SUCCESS;
334 }
335
336 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonParameterControl(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
337 {
338         uint32_t v;
339         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
340         *r = v;
341         return NDR_ERR_SUCCESS;
342 }
343
344 _PUBLIC_ void ndr_print_netr_LogonParameterControl(struct ndr_print *ndr, const char *name, uint32_t r)
345 {
346         ndr_print_uint32(ndr, name, r);
347         ndr->depth++;
348         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_CLEARTEXT_PASSWORD_ALLOWED", MSV1_0_CLEARTEXT_PASSWORD_ALLOWED, r);
349         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_UPDATE_LOGON_STATISTICS", MSV1_0_UPDATE_LOGON_STATISTICS, r);
350         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_USER_PARAMETERS", MSV1_0_RETURN_USER_PARAMETERS, r);
351         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT", MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT, r);
352         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_RETURN_PROFILE_PATH", MSV1_0_RETURN_PROFILE_PATH, r);
353         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT", MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT, r);
354         ndr->depth--;
355 }
356
357 static enum ndr_err_code ndr_push_netr_IdentityInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_IdentityInfo *r)
358 {
359         if (ndr_flags & NDR_SCALARS) {
360                 NDR_CHECK(ndr_push_align(ndr, 4));
361                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
362                 NDR_CHECK(ndr_push_netr_LogonParameterControl(ndr, NDR_SCALARS, r->parameter_control));
363                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_low));
364                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_id_high));
365                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
366                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstation));
367         }
368         if (ndr_flags & NDR_BUFFERS) {
369                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
370                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
371                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
372         }
373         return NDR_ERR_SUCCESS;
374 }
375
376 static enum ndr_err_code ndr_pull_netr_IdentityInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_IdentityInfo *r)
377 {
378         if (ndr_flags & NDR_SCALARS) {
379                 NDR_CHECK(ndr_pull_align(ndr, 4));
380                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
381                 NDR_CHECK(ndr_pull_netr_LogonParameterControl(ndr, NDR_SCALARS, &r->parameter_control));
382                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_low));
383                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_id_high));
384                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
385                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstation));
386         }
387         if (ndr_flags & NDR_BUFFERS) {
388                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
389                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
390                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstation));
391         }
392         return NDR_ERR_SUCCESS;
393 }
394
395 _PUBLIC_ void ndr_print_netr_IdentityInfo(struct ndr_print *ndr, const char *name, const struct netr_IdentityInfo *r)
396 {
397         ndr_print_struct(ndr, name, "netr_IdentityInfo");
398         ndr->depth++;
399         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
400         ndr_print_netr_LogonParameterControl(ndr, "parameter_control", r->parameter_control);
401         ndr_print_uint32(ndr, "logon_id_low", r->logon_id_low);
402         ndr_print_uint32(ndr, "logon_id_high", r->logon_id_high);
403         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
404         ndr_print_lsa_String(ndr, "workstation", &r->workstation);
405         ndr->depth--;
406 }
407
408 static enum ndr_err_code ndr_push_netr_PasswordInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordInfo *r)
409 {
410         if (ndr_flags & NDR_SCALARS) {
411                 NDR_CHECK(ndr_push_align(ndr, 4));
412                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
413                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
414                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
415         }
416         if (ndr_flags & NDR_BUFFERS) {
417                 NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
418                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
419                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
420         }
421         return NDR_ERR_SUCCESS;
422 }
423
424 static enum ndr_err_code ndr_pull_netr_PasswordInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordInfo *r)
425 {
426         if (ndr_flags & NDR_SCALARS) {
427                 NDR_CHECK(ndr_pull_align(ndr, 4));
428                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
429                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
430                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
431         }
432         if (ndr_flags & NDR_BUFFERS) {
433                 NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
434                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
435                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
436         }
437         return NDR_ERR_SUCCESS;
438 }
439
440 _PUBLIC_ void ndr_print_netr_PasswordInfo(struct ndr_print *ndr, const char *name, const struct netr_PasswordInfo *r)
441 {
442         ndr_print_struct(ndr, name, "netr_PasswordInfo");
443         ndr->depth++;
444         ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
445         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
446         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
447         ndr->depth--;
448 }
449
450 static enum ndr_err_code ndr_push_netr_ChallengeResponse(struct ndr_push *ndr, int ndr_flags, const struct netr_ChallengeResponse *r)
451 {
452         {
453                 uint32_t _flags_save_STRUCT = ndr->flags;
454                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
455                 if (ndr_flags & NDR_SCALARS) {
456                         NDR_CHECK(ndr_push_align(ndr, 4));
457                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
458                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
459                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
460                 }
461                 if (ndr_flags & NDR_BUFFERS) {
462                         if (r->data) {
463                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
464                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
465                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
466                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
467                         }
468                 }
469                 ndr->flags = _flags_save_STRUCT;
470         }
471         return NDR_ERR_SUCCESS;
472 }
473
474 static enum ndr_err_code ndr_pull_netr_ChallengeResponse(struct ndr_pull *ndr, int ndr_flags, struct netr_ChallengeResponse *r)
475 {
476         uint32_t _ptr_data;
477         TALLOC_CTX *_mem_save_data_0;
478         {
479                 uint32_t _flags_save_STRUCT = ndr->flags;
480                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
481                 if (ndr_flags & NDR_SCALARS) {
482                         NDR_CHECK(ndr_pull_align(ndr, 4));
483                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
484                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
485                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
486                         if (_ptr_data) {
487                                 NDR_PULL_ALLOC(ndr, r->data);
488                         } else {
489                                 r->data = NULL;
490                         }
491                 }
492                 if (ndr_flags & NDR_BUFFERS) {
493                         if (r->data) {
494                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
495                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
496                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
497                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
498                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
499                                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data), ndr_get_array_length(ndr, &r->data));
500                                 }
501                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
502                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_length(ndr, &r->data)));
503                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
504                         }
505                         if (r->data) {
506                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
507                         }
508                         if (r->data) {
509                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length));
510                         }
511                 }
512                 ndr->flags = _flags_save_STRUCT;
513         }
514         return NDR_ERR_SUCCESS;
515 }
516
517 _PUBLIC_ void ndr_print_netr_ChallengeResponse(struct ndr_print *ndr, const char *name, const struct netr_ChallengeResponse *r)
518 {
519         ndr_print_struct(ndr, name, "netr_ChallengeResponse");
520         {
521                 uint32_t _flags_save_STRUCT = ndr->flags;
522                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
523                 ndr->depth++;
524                 ndr_print_uint16(ndr, "length", r->length);
525                 ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
526                 ndr_print_ptr(ndr, "data", r->data);
527                 ndr->depth++;
528                 if (r->data) {
529                         ndr_print_array_uint8(ndr, "data", r->data, r->length);
530                 }
531                 ndr->depth--;
532                 ndr->depth--;
533                 ndr->flags = _flags_save_STRUCT;
534         }
535 }
536
537 static enum ndr_err_code ndr_push_netr_NetworkInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_NetworkInfo *r)
538 {
539         {
540                 uint32_t _flags_save_STRUCT = ndr->flags;
541                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
542                 if (ndr_flags & NDR_SCALARS) {
543                         NDR_CHECK(ndr_push_align(ndr, 4));
544                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
545                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
546                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
547                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
548                 }
549                 if (ndr_flags & NDR_BUFFERS) {
550                         NDR_CHECK(ndr_push_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
551                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
552                         NDR_CHECK(ndr_push_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
553                 }
554                 ndr->flags = _flags_save_STRUCT;
555         }
556         return NDR_ERR_SUCCESS;
557 }
558
559 static enum ndr_err_code ndr_pull_netr_NetworkInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_NetworkInfo *r)
560 {
561         {
562                 uint32_t _flags_save_STRUCT = ndr->flags;
563                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
564                 if (ndr_flags & NDR_SCALARS) {
565                         NDR_CHECK(ndr_pull_align(ndr, 4));
566                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_SCALARS, &r->identity_info));
567                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->challenge, 8));
568                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->nt));
569                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_SCALARS, &r->lm));
570                 }
571                 if (ndr_flags & NDR_BUFFERS) {
572                         NDR_CHECK(ndr_pull_netr_IdentityInfo(ndr, NDR_BUFFERS, &r->identity_info));
573                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->nt));
574                         NDR_CHECK(ndr_pull_netr_ChallengeResponse(ndr, NDR_BUFFERS, &r->lm));
575                 }
576                 ndr->flags = _flags_save_STRUCT;
577         }
578         return NDR_ERR_SUCCESS;
579 }
580
581 _PUBLIC_ void ndr_print_netr_NetworkInfo(struct ndr_print *ndr, const char *name, const struct netr_NetworkInfo *r)
582 {
583         ndr_print_struct(ndr, name, "netr_NetworkInfo");
584         {
585                 uint32_t _flags_save_STRUCT = ndr->flags;
586                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
587                 ndr->depth++;
588                 ndr_print_netr_IdentityInfo(ndr, "identity_info", &r->identity_info);
589                 ndr_print_array_uint8(ndr, "challenge", r->challenge, 8);
590                 ndr_print_netr_ChallengeResponse(ndr, "nt", &r->nt);
591                 ndr_print_netr_ChallengeResponse(ndr, "lm", &r->lm);
592                 ndr->depth--;
593                 ndr->flags = _flags_save_STRUCT;
594         }
595 }
596
597 _PUBLIC_ enum ndr_err_code ndr_push_netr_LogonLevel(struct ndr_push *ndr, int ndr_flags, const union netr_LogonLevel *r)
598 {
599         if (ndr_flags & NDR_SCALARS) {
600                 int level = ndr_push_get_switch_value(ndr, r);
601                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
602                 switch (level) {
603                         case 1: {
604                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
605                         break; }
606
607                         case 2: {
608                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
609                         break; }
610
611                         case 3: {
612                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
613                         break; }
614
615                         case 5: {
616                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->password));
617                         break; }
618
619                         case 6: {
620                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->network));
621                         break; }
622
623                         default:
624                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
625                 }
626         }
627         if (ndr_flags & NDR_BUFFERS) {
628                 int level = ndr_push_get_switch_value(ndr, r);
629                 switch (level) {
630                         case 1:
631                                 if (r->password) {
632                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
633                                 }
634                         break;
635
636                         case 2:
637                                 if (r->network) {
638                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
639                                 }
640                         break;
641
642                         case 3:
643                                 if (r->password) {
644                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
645                                 }
646                         break;
647
648                         case 5:
649                                 if (r->password) {
650                                         NDR_CHECK(ndr_push_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
651                                 }
652                         break;
653
654                         case 6:
655                                 if (r->network) {
656                                         NDR_CHECK(ndr_push_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
657                                 }
658                         break;
659
660                         default:
661                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
662                 }
663         }
664         return NDR_ERR_SUCCESS;
665 }
666
667 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LogonLevel(struct ndr_pull *ndr, int ndr_flags, union netr_LogonLevel *r)
668 {
669         int level;
670         uint16_t _level;
671         TALLOC_CTX *_mem_save_password_0;
672         TALLOC_CTX *_mem_save_network_0;
673         level = ndr_pull_get_switch_value(ndr, r);
674         if (ndr_flags & NDR_SCALARS) {
675                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
676                 if (_level != level) {
677                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
678                 }
679                 switch (level) {
680                         case 1: {
681                                 uint32_t _ptr_password;
682                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
683                                 if (_ptr_password) {
684                                         NDR_PULL_ALLOC(ndr, r->password);
685                                 } else {
686                                         r->password = NULL;
687                                 }
688                         break; }
689
690                         case 2: {
691                                 uint32_t _ptr_network;
692                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
693                                 if (_ptr_network) {
694                                         NDR_PULL_ALLOC(ndr, r->network);
695                                 } else {
696                                         r->network = NULL;
697                                 }
698                         break; }
699
700                         case 3: {
701                                 uint32_t _ptr_password;
702                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
703                                 if (_ptr_password) {
704                                         NDR_PULL_ALLOC(ndr, r->password);
705                                 } else {
706                                         r->password = NULL;
707                                 }
708                         break; }
709
710                         case 5: {
711                                 uint32_t _ptr_password;
712                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_password));
713                                 if (_ptr_password) {
714                                         NDR_PULL_ALLOC(ndr, r->password);
715                                 } else {
716                                         r->password = NULL;
717                                 }
718                         break; }
719
720                         case 6: {
721                                 uint32_t _ptr_network;
722                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_network));
723                                 if (_ptr_network) {
724                                         NDR_PULL_ALLOC(ndr, r->network);
725                                 } else {
726                                         r->network = NULL;
727                                 }
728                         break; }
729
730                         default:
731                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
732                 }
733         }
734         if (ndr_flags & NDR_BUFFERS) {
735                 switch (level) {
736                         case 1:
737                                 if (r->password) {
738                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
739                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
740                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
741                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
742                                 }
743                         break;
744
745                         case 2:
746                                 if (r->network) {
747                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
748                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
749                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
750                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
751                                 }
752                         break;
753
754                         case 3:
755                                 if (r->password) {
756                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
757                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
758                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
759                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
760                                 }
761                         break;
762
763                         case 5:
764                                 if (r->password) {
765                                         _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
766                                         NDR_PULL_SET_MEM_CTX(ndr, r->password, 0);
767                                         NDR_CHECK(ndr_pull_netr_PasswordInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->password));
768                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, 0);
769                                 }
770                         break;
771
772                         case 6:
773                                 if (r->network) {
774                                         _mem_save_network_0 = NDR_PULL_GET_MEM_CTX(ndr);
775                                         NDR_PULL_SET_MEM_CTX(ndr, r->network, 0);
776                                         NDR_CHECK(ndr_pull_netr_NetworkInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->network));
777                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_network_0, 0);
778                                 }
779                         break;
780
781                         default:
782                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
783                 }
784         }
785         return NDR_ERR_SUCCESS;
786 }
787
788 _PUBLIC_ void ndr_print_netr_LogonLevel(struct ndr_print *ndr, const char *name, const union netr_LogonLevel *r)
789 {
790         int level;
791         level = ndr_print_get_switch_value(ndr, r);
792         ndr_print_union(ndr, name, level, "netr_LogonLevel");
793         switch (level) {
794                 case 1:
795                         ndr_print_ptr(ndr, "password", r->password);
796                         ndr->depth++;
797                         if (r->password) {
798                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
799                         }
800                         ndr->depth--;
801                 break;
802
803                 case 2:
804                         ndr_print_ptr(ndr, "network", r->network);
805                         ndr->depth++;
806                         if (r->network) {
807                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
808                         }
809                         ndr->depth--;
810                 break;
811
812                 case 3:
813                         ndr_print_ptr(ndr, "password", r->password);
814                         ndr->depth++;
815                         if (r->password) {
816                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
817                         }
818                         ndr->depth--;
819                 break;
820
821                 case 5:
822                         ndr_print_ptr(ndr, "password", r->password);
823                         ndr->depth++;
824                         if (r->password) {
825                                 ndr_print_netr_PasswordInfo(ndr, "password", r->password);
826                         }
827                         ndr->depth--;
828                 break;
829
830                 case 6:
831                         ndr_print_ptr(ndr, "network", r->network);
832                         ndr->depth++;
833                         if (r->network) {
834                                 ndr_print_netr_NetworkInfo(ndr, "network", r->network);
835                         }
836                         ndr->depth--;
837                 break;
838
839                 default:
840                         ndr_print_bad_level(ndr, name, level);
841         }
842 }
843
844 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_UserSessionKey *r)
845 {
846         {
847                 uint32_t _flags_save_STRUCT = ndr->flags;
848                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
849                 if (ndr_flags & NDR_SCALARS) {
850                         NDR_CHECK(ndr_push_align(ndr, 1));
851                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 16));
852                 }
853                 if (ndr_flags & NDR_BUFFERS) {
854                 }
855                 ndr->flags = _flags_save_STRUCT;
856         }
857         return NDR_ERR_SUCCESS;
858 }
859
860 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_UserSessionKey *r)
861 {
862         {
863                 uint32_t _flags_save_STRUCT = ndr->flags;
864                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
865                 if (ndr_flags & NDR_SCALARS) {
866                         NDR_CHECK(ndr_pull_align(ndr, 1));
867                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 16));
868                 }
869                 if (ndr_flags & NDR_BUFFERS) {
870                 }
871                 ndr->flags = _flags_save_STRUCT;
872         }
873         return NDR_ERR_SUCCESS;
874 }
875
876 _PUBLIC_ void ndr_print_netr_UserSessionKey(struct ndr_print *ndr, const char *name, const struct netr_UserSessionKey *r)
877 {
878         ndr_print_struct(ndr, name, "netr_UserSessionKey");
879         {
880                 uint32_t _flags_save_STRUCT = ndr->flags;
881                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
882                 ndr->depth++;
883                 ndr_print_array_uint8(ndr, "key", r->key, 16);
884                 ndr->depth--;
885                 ndr->flags = _flags_save_STRUCT;
886         }
887 }
888
889 _PUBLIC_ enum ndr_err_code ndr_push_netr_LMSessionKey(struct ndr_push *ndr, int ndr_flags, const struct netr_LMSessionKey *r)
890 {
891         {
892                 uint32_t _flags_save_STRUCT = ndr->flags;
893                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
894                 if (ndr_flags & NDR_SCALARS) {
895                         NDR_CHECK(ndr_push_align(ndr, 1));
896                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->key, 8));
897                 }
898                 if (ndr_flags & NDR_BUFFERS) {
899                 }
900                 ndr->flags = _flags_save_STRUCT;
901         }
902         return NDR_ERR_SUCCESS;
903 }
904
905 _PUBLIC_ enum ndr_err_code ndr_pull_netr_LMSessionKey(struct ndr_pull *ndr, int ndr_flags, struct netr_LMSessionKey *r)
906 {
907         {
908                 uint32_t _flags_save_STRUCT = ndr->flags;
909                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
910                 if (ndr_flags & NDR_SCALARS) {
911                         NDR_CHECK(ndr_pull_align(ndr, 1));
912                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->key, 8));
913                 }
914                 if (ndr_flags & NDR_BUFFERS) {
915                 }
916                 ndr->flags = _flags_save_STRUCT;
917         }
918         return NDR_ERR_SUCCESS;
919 }
920
921 _PUBLIC_ void ndr_print_netr_LMSessionKey(struct ndr_print *ndr, const char *name, const struct netr_LMSessionKey *r)
922 {
923         ndr_print_struct(ndr, name, "netr_LMSessionKey");
924         {
925                 uint32_t _flags_save_STRUCT = ndr->flags;
926                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
927                 ndr->depth++;
928                 ndr_print_array_uint8(ndr, "key", r->key, 8);
929                 ndr->depth--;
930                 ndr->flags = _flags_save_STRUCT;
931         }
932 }
933
934 _PUBLIC_ enum ndr_err_code ndr_push_netr_UserFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
935 {
936         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
937         return NDR_ERR_SUCCESS;
938 }
939
940 _PUBLIC_ enum ndr_err_code ndr_pull_netr_UserFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
941 {
942         uint32_t v;
943         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
944         *r = v;
945         return NDR_ERR_SUCCESS;
946 }
947
948 _PUBLIC_ void ndr_print_netr_UserFlags(struct ndr_print *ndr, const char *name, uint32_t r)
949 {
950         ndr_print_uint32(ndr, name, r);
951         ndr->depth++;
952         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GUEST", NETLOGON_GUEST, r);
953         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NOENCRYPTION", NETLOGON_NOENCRYPTION, r);
954         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_CACHED_ACCOUNT", NETLOGON_CACHED_ACCOUNT, r);
955         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_USED_LM_PASSWORD", NETLOGON_USED_LM_PASSWORD, r);
956         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_EXTRA_SIDS", NETLOGON_EXTRA_SIDS, r);
957         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SUBAUTH_SESSION_KEY", NETLOGON_SUBAUTH_SESSION_KEY, r);
958         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_SERVER_TRUST_ACCOUNT", NETLOGON_SERVER_TRUST_ACCOUNT, r);
959         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_NTLMV2_ENABLED", NETLOGON_NTLMV2_ENABLED, r);
960         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_RESOURCE_GROUPS", NETLOGON_RESOURCE_GROUPS, r);
961         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_PROFILE_PATH_RETURNED", NETLOGON_PROFILE_PATH_RETURNED, r);
962         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETLOGON_GRACE_LOGON", NETLOGON_GRACE_LOGON, r);
963         ndr->depth--;
964 }
965
966 static enum ndr_err_code ndr_push_netr_SamBaseInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_SamBaseInfo *r)
967 {
968         uint32_t cntr_unknown_0;
969         if (ndr_flags & NDR_SCALARS) {
970                 NDR_CHECK(ndr_push_align(ndr, 4));
971                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
972                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
973                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
974                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
975                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->allow_password_change));
976                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->force_password_change));
977                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
978                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
979                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
980                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
981                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
982                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
983                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
984                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
985                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
986                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
987                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
988                 NDR_CHECK(ndr_push_netr_UserFlags(ndr, NDR_SCALARS, r->user_flags));
989                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
990                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
991                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
992                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_sid));
993                 NDR_CHECK(ndr_push_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
994                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
995                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
996                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
997                 }
998         }
999         if (ndr_flags & NDR_BUFFERS) {
1000                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1001                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1002                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1003                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1004                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1005                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1006                 NDR_CHECK(ndr_push_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1007                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1008                 NDR_CHECK(ndr_push_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1009                 if (r->domain_sid) {
1010                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1011                 }
1012         }
1013         return NDR_ERR_SUCCESS;
1014 }
1015
1016 static enum ndr_err_code ndr_pull_netr_SamBaseInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_SamBaseInfo *r)
1017 {
1018         uint32_t _ptr_domain_sid;
1019         TALLOC_CTX *_mem_save_domain_sid_0;
1020         uint32_t cntr_unknown_0;
1021         if (ndr_flags & NDR_SCALARS) {
1022                 NDR_CHECK(ndr_pull_align(ndr, 4));
1023                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
1024                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
1025                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
1026                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
1027                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->allow_password_change));
1028                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->force_password_change));
1029                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
1030                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
1031                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
1032                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
1033                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
1034                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
1035                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
1036                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
1037                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
1038                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
1039                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_SCALARS, &r->groups));
1040                 NDR_CHECK(ndr_pull_netr_UserFlags(ndr, NDR_SCALARS, &r->user_flags));
1041                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->key));
1042                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->logon_server));
1043                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_SCALARS, &r->domain));
1044                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_sid));
1045                 if (_ptr_domain_sid) {
1046                         NDR_PULL_ALLOC(ndr, r->domain_sid);
1047                 } else {
1048                         r->domain_sid = NULL;
1049                 }
1050                 NDR_CHECK(ndr_pull_netr_LMSessionKey(ndr, NDR_SCALARS, &r->LMSessKey));
1051                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
1052                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 7; cntr_unknown_0++) {
1053                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
1054                 }
1055         }
1056         if (ndr_flags & NDR_BUFFERS) {
1057                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
1058                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
1059                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
1060                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
1061                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
1062                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
1063                 NDR_CHECK(ndr_pull_samr_RidWithAttributeArray(ndr, NDR_BUFFERS, &r->groups));
1064                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->logon_server));
1065                 NDR_CHECK(ndr_pull_lsa_StringLarge(ndr, NDR_BUFFERS, &r->domain));
1066                 if (r->domain_sid) {
1067                         _mem_save_domain_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1068                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_sid, 0);
1069                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain_sid));
1070                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_sid_0, 0);
1071                 }
1072         }
1073         return NDR_ERR_SUCCESS;
1074 }
1075
1076 _PUBLIC_ void ndr_print_netr_SamBaseInfo(struct ndr_print *ndr, const char *name, const struct netr_SamBaseInfo *r)
1077 {
1078         uint32_t cntr_unknown_0;
1079         ndr_print_struct(ndr, name, "netr_SamBaseInfo");
1080         ndr->depth++;
1081         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
1082         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
1083         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
1084         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
1085         ndr_print_NTTIME(ndr, "allow_password_change", r->allow_password_change);
1086         ndr_print_NTTIME(ndr, "force_password_change", r->force_password_change);
1087         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
1088         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
1089         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
1090         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
1091         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
1092         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
1093         ndr_print_uint16(ndr, "logon_count", r->logon_count);
1094         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
1095         ndr_print_uint32(ndr, "rid", r->rid);
1096         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
1097         ndr_print_samr_RidWithAttributeArray(ndr, "groups", &r->groups);
1098         ndr_print_netr_UserFlags(ndr, "user_flags", r->user_flags);
1099         ndr_print_netr_UserSessionKey(ndr, "key", &r->key);
1100         ndr_print_lsa_StringLarge(ndr, "logon_server", &r->logon_server);
1101         ndr_print_lsa_StringLarge(ndr, "domain", &r->domain);
1102         ndr_print_ptr(ndr, "domain_sid", r->domain_sid);
1103         ndr->depth++;
1104         if (r->domain_sid) {
1105                 ndr_print_dom_sid2(ndr, "domain_sid", r->domain_sid);
1106         }
1107         ndr->depth--;
1108         ndr_print_netr_LMSessionKey(ndr, "LMSessKey", &r->LMSessKey);
1109         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
1110         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 7);
1111         ndr->depth++;
1112         for (cntr_unknown_0=0;cntr_unknown_0<7;cntr_unknown_0++) {
1113                 char *idx_0=NULL;
1114                 asprintf(&idx_0, "[%d]", cntr_unknown_0);
1115                 if (idx_0) {
1116                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
1117                         free(idx_0);
1118                 }
1119         }
1120         ndr->depth--;
1121         ndr->depth--;
1122 }
1123
1124 static enum ndr_err_code ndr_push_netr_SamInfo2(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo2 *r)
1125 {
1126         if (ndr_flags & NDR_SCALARS) {
1127                 NDR_CHECK(ndr_push_align(ndr, 4));
1128                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1129         }
1130         if (ndr_flags & NDR_BUFFERS) {
1131                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1132         }
1133         return NDR_ERR_SUCCESS;
1134 }
1135
1136 static enum ndr_err_code ndr_pull_netr_SamInfo2(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo2 *r)
1137 {
1138         if (ndr_flags & NDR_SCALARS) {
1139                 NDR_CHECK(ndr_pull_align(ndr, 4));
1140                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1141         }
1142         if (ndr_flags & NDR_BUFFERS) {
1143                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1144         }
1145         return NDR_ERR_SUCCESS;
1146 }
1147
1148 _PUBLIC_ void ndr_print_netr_SamInfo2(struct ndr_print *ndr, const char *name, const struct netr_SamInfo2 *r)
1149 {
1150         ndr_print_struct(ndr, name, "netr_SamInfo2");
1151         ndr->depth++;
1152         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1153         ndr->depth--;
1154 }
1155
1156 static enum ndr_err_code ndr_push_netr_SidAttr(struct ndr_push *ndr, int ndr_flags, const struct netr_SidAttr *r)
1157 {
1158         if (ndr_flags & NDR_SCALARS) {
1159                 NDR_CHECK(ndr_push_align(ndr, 4));
1160                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
1161                 NDR_CHECK(ndr_push_samr_GroupAttrs(ndr, NDR_SCALARS, r->attributes));
1162         }
1163         if (ndr_flags & NDR_BUFFERS) {
1164                 if (r->sid) {
1165                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1166                 }
1167         }
1168         return NDR_ERR_SUCCESS;
1169 }
1170
1171 static enum ndr_err_code ndr_pull_netr_SidAttr(struct ndr_pull *ndr, int ndr_flags, struct netr_SidAttr *r)
1172 {
1173         uint32_t _ptr_sid;
1174         TALLOC_CTX *_mem_save_sid_0;
1175         if (ndr_flags & NDR_SCALARS) {
1176                 NDR_CHECK(ndr_pull_align(ndr, 4));
1177                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
1178                 if (_ptr_sid) {
1179                         NDR_PULL_ALLOC(ndr, r->sid);
1180                 } else {
1181                         r->sid = NULL;
1182                 }
1183                 NDR_CHECK(ndr_pull_samr_GroupAttrs(ndr, NDR_SCALARS, &r->attributes));
1184         }
1185         if (ndr_flags & NDR_BUFFERS) {
1186                 if (r->sid) {
1187                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
1188                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
1189                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
1190                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
1191                 }
1192         }
1193         return NDR_ERR_SUCCESS;
1194 }
1195
1196 _PUBLIC_ void ndr_print_netr_SidAttr(struct ndr_print *ndr, const char *name, const struct netr_SidAttr *r)
1197 {
1198         ndr_print_struct(ndr, name, "netr_SidAttr");
1199         ndr->depth++;
1200         ndr_print_ptr(ndr, "sid", r->sid);
1201         ndr->depth++;
1202         if (r->sid) {
1203                 ndr_print_dom_sid2(ndr, "sid", r->sid);
1204         }
1205         ndr->depth--;
1206         ndr_print_samr_GroupAttrs(ndr, "attributes", r->attributes);
1207         ndr->depth--;
1208 }
1209
1210 _PUBLIC_ enum ndr_err_code ndr_push_netr_SamInfo3(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo3 *r)
1211 {
1212         uint32_t cntr_sids_1;
1213         if (ndr_flags & NDR_SCALARS) {
1214                 NDR_CHECK(ndr_push_align(ndr, 4));
1215                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1216                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1217                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1218         }
1219         if (ndr_flags & NDR_BUFFERS) {
1220                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1221                 if (r->sids) {
1222                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1223                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1224                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1225                         }
1226                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1227                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1228                         }
1229                 }
1230         }
1231         return NDR_ERR_SUCCESS;
1232 }
1233
1234 _PUBLIC_ enum ndr_err_code ndr_pull_netr_SamInfo3(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo3 *r)
1235 {
1236         uint32_t _ptr_sids;
1237         uint32_t cntr_sids_1;
1238         TALLOC_CTX *_mem_save_sids_0;
1239         TALLOC_CTX *_mem_save_sids_1;
1240         if (ndr_flags & NDR_SCALARS) {
1241                 NDR_CHECK(ndr_pull_align(ndr, 4));
1242                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1243                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1244                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1245                 if (_ptr_sids) {
1246                         NDR_PULL_ALLOC(ndr, r->sids);
1247                 } else {
1248                         r->sids = NULL;
1249                 }
1250         }
1251         if (ndr_flags & NDR_BUFFERS) {
1252                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1253                 if (r->sids) {
1254                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1255                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1256                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1257                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1258                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1259                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1260                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1261                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1262                         }
1263                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1264                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1265                         }
1266                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1267                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1268                 }
1269                 if (r->sids) {
1270                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1271                 }
1272         }
1273         return NDR_ERR_SUCCESS;
1274 }
1275
1276 _PUBLIC_ void ndr_print_netr_SamInfo3(struct ndr_print *ndr, const char *name, const struct netr_SamInfo3 *r)
1277 {
1278         uint32_t cntr_sids_1;
1279         ndr_print_struct(ndr, name, "netr_SamInfo3");
1280         ndr->depth++;
1281         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1282         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1283         ndr_print_ptr(ndr, "sids", r->sids);
1284         ndr->depth++;
1285         if (r->sids) {
1286                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", r->sidcount);
1287                 ndr->depth++;
1288                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1289                         char *idx_1=NULL;
1290                         asprintf(&idx_1, "[%d]", cntr_sids_1);
1291                         if (idx_1) {
1292                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1293                                 free(idx_1);
1294                         }
1295                 }
1296                 ndr->depth--;
1297         }
1298         ndr->depth--;
1299         ndr->depth--;
1300 }
1301
1302 static enum ndr_err_code ndr_push_netr_SamInfo6(struct ndr_push *ndr, int ndr_flags, const struct netr_SamInfo6 *r)
1303 {
1304         uint32_t cntr_sids_1;
1305         uint32_t cntr_unknown4_0;
1306         if (ndr_flags & NDR_SCALARS) {
1307                 NDR_CHECK(ndr_push_align(ndr, 4));
1308                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1309                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1310                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sids));
1311                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
1312                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principle));
1313                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1314                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4[cntr_unknown4_0]));
1315                 }
1316         }
1317         if (ndr_flags & NDR_BUFFERS) {
1318                 NDR_CHECK(ndr_push_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1319                 if (r->sids) {
1320                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sidcount));
1321                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1322                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1323                         }
1324                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1325                                 NDR_CHECK(ndr_push_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1326                         }
1327                 }
1328                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1329                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1330         }
1331         return NDR_ERR_SUCCESS;
1332 }
1333
1334 static enum ndr_err_code ndr_pull_netr_SamInfo6(struct ndr_pull *ndr, int ndr_flags, struct netr_SamInfo6 *r)
1335 {
1336         uint32_t _ptr_sids;
1337         uint32_t cntr_sids_1;
1338         TALLOC_CTX *_mem_save_sids_0;
1339         TALLOC_CTX *_mem_save_sids_1;
1340         uint32_t cntr_unknown4_0;
1341         if (ndr_flags & NDR_SCALARS) {
1342                 NDR_CHECK(ndr_pull_align(ndr, 4));
1343                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_SCALARS, &r->base));
1344                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sidcount));
1345                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sids));
1346                 if (_ptr_sids) {
1347                         NDR_PULL_ALLOC(ndr, r->sids);
1348                 } else {
1349                         r->sids = NULL;
1350                 }
1351                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
1352                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principle));
1353                 for (cntr_unknown4_0 = 0; cntr_unknown4_0 < 20; cntr_unknown4_0++) {
1354                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4[cntr_unknown4_0]));
1355                 }
1356         }
1357         if (ndr_flags & NDR_BUFFERS) {
1358                 NDR_CHECK(ndr_pull_netr_SamBaseInfo(ndr, NDR_BUFFERS, &r->base));
1359                 if (r->sids) {
1360                         _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
1361                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1362                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
1363                         NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
1364                         _mem_save_sids_1 = NDR_PULL_GET_MEM_CTX(ndr);
1365                         NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
1366                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1367                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_SCALARS, &r->sids[cntr_sids_1]));
1368                         }
1369                         for (cntr_sids_1 = 0; cntr_sids_1 < r->sidcount; cntr_sids_1++) {
1370                                 NDR_CHECK(ndr_pull_netr_SidAttr(ndr, NDR_BUFFERS, &r->sids[cntr_sids_1]));
1371                         }
1372                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_1, 0);
1373                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
1374                 }
1375                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
1376                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principle));
1377                 if (r->sids) {
1378                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->sidcount));
1379                 }
1380         }
1381         return NDR_ERR_SUCCESS;
1382 }
1383
1384 _PUBLIC_ void ndr_print_netr_SamInfo6(struct ndr_print *ndr, const char *name, const struct netr_SamInfo6 *r)
1385 {
1386         uint32_t cntr_sids_1;
1387         uint32_t cntr_unknown4_0;
1388         ndr_print_struct(ndr, name, "netr_SamInfo6");
1389         ndr->depth++;
1390         ndr_print_netr_SamBaseInfo(ndr, "base", &r->base);
1391         ndr_print_uint32(ndr, "sidcount", r->sidcount);
1392         ndr_print_ptr(ndr, "sids", r->sids);
1393         ndr->depth++;
1394         if (r->sids) {
1395                 ndr->print(ndr, "%s: ARRAY(%d)", "sids", r->sidcount);
1396                 ndr->depth++;
1397                 for (cntr_sids_1=0;cntr_sids_1<r->sidcount;cntr_sids_1++) {
1398                         char *idx_1=NULL;
1399                         asprintf(&idx_1, "[%d]", cntr_sids_1);
1400                         if (idx_1) {
1401                                 ndr_print_netr_SidAttr(ndr, "sids", &r->sids[cntr_sids_1]);
1402                                 free(idx_1);
1403                         }
1404                 }
1405                 ndr->depth--;
1406         }
1407         ndr->depth--;
1408         ndr_print_lsa_String(ndr, "forest", &r->forest);
1409         ndr_print_lsa_String(ndr, "principle", &r->principle);
1410         ndr->print(ndr, "%s: ARRAY(%d)", "unknown4", 20);
1411         ndr->depth++;
1412         for (cntr_unknown4_0=0;cntr_unknown4_0<20;cntr_unknown4_0++) {
1413                 char *idx_0=NULL;
1414                 asprintf(&idx_0, "[%d]", cntr_unknown4_0);
1415                 if (idx_0) {
1416                         ndr_print_uint32(ndr, "unknown4", r->unknown4[cntr_unknown4_0]);
1417                         free(idx_0);
1418                 }
1419         }
1420         ndr->depth--;
1421         ndr->depth--;
1422 }
1423
1424 static enum ndr_err_code ndr_push_netr_PacInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_PacInfo *r)
1425 {
1426         uint32_t cntr_expansionroom_0;
1427         if (ndr_flags & NDR_SCALARS) {
1428                 NDR_CHECK(ndr_push_align(ndr, 4));
1429                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1430                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1431                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1432                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1433                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1434                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1435                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->auth));
1436                 NDR_CHECK(ndr_push_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1437                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1438                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->expansionroom[cntr_expansionroom_0]));
1439                 }
1440                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1441                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1442                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1443                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1444         }
1445         if (ndr_flags & NDR_BUFFERS) {
1446                 if (r->pac) {
1447                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pac_size));
1448                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pac, r->pac_size));
1449                 }
1450                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1451                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1452                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1453                 if (r->auth) {
1454                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->auth_size));
1455                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->auth, r->auth_size));
1456                 }
1457                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1458                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1459                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1460                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1461         }
1462         return NDR_ERR_SUCCESS;
1463 }
1464
1465 static enum ndr_err_code ndr_pull_netr_PacInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_PacInfo *r)
1466 {
1467         uint32_t _ptr_pac;
1468         TALLOC_CTX *_mem_save_pac_0;
1469         uint32_t _ptr_auth;
1470         TALLOC_CTX *_mem_save_auth_0;
1471         uint32_t cntr_expansionroom_0;
1472         if (ndr_flags & NDR_SCALARS) {
1473                 NDR_CHECK(ndr_pull_align(ndr, 4));
1474                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pac_size));
1475                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1476                 if (_ptr_pac) {
1477                         NDR_PULL_ALLOC(ndr, r->pac);
1478                 } else {
1479                         r->pac = NULL;
1480                 }
1481                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_domain));
1482                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_server));
1483                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->principal_name));
1484                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->auth_size));
1485                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_auth));
1486                 if (_ptr_auth) {
1487                         NDR_PULL_ALLOC(ndr, r->auth);
1488                 } else {
1489                         r->auth = NULL;
1490                 }
1491                 NDR_CHECK(ndr_pull_netr_UserSessionKey(ndr, NDR_SCALARS, &r->user_session_key));
1492                 for (cntr_expansionroom_0 = 0; cntr_expansionroom_0 < 10; cntr_expansionroom_0++) {
1493                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->expansionroom[cntr_expansionroom_0]));
1494                 }
1495                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1496                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1497                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1498                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1499         }
1500         if (ndr_flags & NDR_BUFFERS) {
1501                 if (r->pac) {
1502                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1503                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1504                         NDR_CHECK(ndr_pull_array_size(ndr, &r->pac));
1505                         NDR_PULL_ALLOC_N(ndr, r->pac, ndr_get_array_size(ndr, &r->pac));
1506                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pac, ndr_get_array_size(ndr, &r->pac)));
1507                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1508                 }
1509                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_domain));
1510                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_server));
1511                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->principal_name));
1512                 if (r->auth) {
1513                         _mem_save_auth_0 = NDR_PULL_GET_MEM_CTX(ndr);
1514                         NDR_PULL_SET_MEM_CTX(ndr, r->auth, 0);
1515                         NDR_CHECK(ndr_pull_array_size(ndr, &r->auth));
1516                         NDR_PULL_ALLOC_N(ndr, r->auth, ndr_get_array_size(ndr, &r->auth));
1517                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->auth, ndr_get_array_size(ndr, &r->auth)));
1518                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_auth_0, 0);
1519                 }
1520                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1521                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1522                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1523                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1524                 if (r->pac) {
1525                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pac, r->pac_size));
1526                 }
1527                 if (r->auth) {
1528                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->auth, r->auth_size));
1529                 }
1530         }
1531         return NDR_ERR_SUCCESS;
1532 }
1533
1534 _PUBLIC_ void ndr_print_netr_PacInfo(struct ndr_print *ndr, const char *name, const struct netr_PacInfo *r)
1535 {
1536         uint32_t cntr_expansionroom_0;
1537         ndr_print_struct(ndr, name, "netr_PacInfo");
1538         ndr->depth++;
1539         ndr_print_uint32(ndr, "pac_size", r->pac_size);
1540         ndr_print_ptr(ndr, "pac", r->pac);
1541         ndr->depth++;
1542         if (r->pac) {
1543                 ndr_print_array_uint8(ndr, "pac", r->pac, r->pac_size);
1544         }
1545         ndr->depth--;
1546         ndr_print_lsa_String(ndr, "logon_domain", &r->logon_domain);
1547         ndr_print_lsa_String(ndr, "logon_server", &r->logon_server);
1548         ndr_print_lsa_String(ndr, "principal_name", &r->principal_name);
1549         ndr_print_uint32(ndr, "auth_size", r->auth_size);
1550         ndr_print_ptr(ndr, "auth", r->auth);
1551         ndr->depth++;
1552         if (r->auth) {
1553                 ndr_print_array_uint8(ndr, "auth", r->auth, r->auth_size);
1554         }
1555         ndr->depth--;
1556         ndr_print_netr_UserSessionKey(ndr, "user_session_key", &r->user_session_key);
1557         ndr->print(ndr, "%s: ARRAY(%d)", "expansionroom", 10);
1558         ndr->depth++;
1559         for (cntr_expansionroom_0=0;cntr_expansionroom_0<10;cntr_expansionroom_0++) {
1560                 char *idx_0=NULL;
1561                 asprintf(&idx_0, "[%d]", cntr_expansionroom_0);
1562                 if (idx_0) {
1563                         ndr_print_uint32(ndr, "expansionroom", r->expansionroom[cntr_expansionroom_0]);
1564                         free(idx_0);
1565                 }
1566         }
1567         ndr->depth--;
1568         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1569         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1570         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1571         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1572         ndr->depth--;
1573 }
1574
1575 _PUBLIC_ enum ndr_err_code ndr_push_netr_Validation(struct ndr_push *ndr, int ndr_flags, const union netr_Validation *r)
1576 {
1577         if (ndr_flags & NDR_SCALARS) {
1578                 int level = ndr_push_get_switch_value(ndr, r);
1579                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, level));
1580                 switch (level) {
1581                         case 2: {
1582                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam2));
1583                         break; }
1584
1585                         case 3: {
1586                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam3));
1587                         break; }
1588
1589                         case 4: {
1590                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1591                         break; }
1592
1593                         case 5: {
1594                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pac));
1595                         break; }
1596
1597                         case 6: {
1598                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sam6));
1599                         break; }
1600
1601                         default:
1602                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1603                 }
1604         }
1605         if (ndr_flags & NDR_BUFFERS) {
1606                 int level = ndr_push_get_switch_value(ndr, r);
1607                 switch (level) {
1608                         case 2:
1609                                 if (r->sam2) {
1610                                         NDR_CHECK(ndr_push_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1611                                 }
1612                         break;
1613
1614                         case 3:
1615                                 if (r->sam3) {
1616                                         NDR_CHECK(ndr_push_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1617                                 }
1618                         break;
1619
1620                         case 4:
1621                                 if (r->pac) {
1622                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1623                                 }
1624                         break;
1625
1626                         case 5:
1627                                 if (r->pac) {
1628                                         NDR_CHECK(ndr_push_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1629                                 }
1630                         break;
1631
1632                         case 6:
1633                                 if (r->sam6) {
1634                                         NDR_CHECK(ndr_push_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1635                                 }
1636                         break;
1637
1638                         default:
1639                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1640                 }
1641         }
1642         return NDR_ERR_SUCCESS;
1643 }
1644
1645 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Validation(struct ndr_pull *ndr, int ndr_flags, union netr_Validation *r)
1646 {
1647         int level;
1648         uint16_t _level;
1649         TALLOC_CTX *_mem_save_sam2_0;
1650         TALLOC_CTX *_mem_save_sam3_0;
1651         TALLOC_CTX *_mem_save_pac_0;
1652         TALLOC_CTX *_mem_save_sam6_0;
1653         level = ndr_pull_get_switch_value(ndr, r);
1654         if (ndr_flags & NDR_SCALARS) {
1655                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
1656                 if (_level != level) {
1657                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
1658                 }
1659                 switch (level) {
1660                         case 2: {
1661                                 uint32_t _ptr_sam2;
1662                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam2));
1663                                 if (_ptr_sam2) {
1664                                         NDR_PULL_ALLOC(ndr, r->sam2);
1665                                 } else {
1666                                         r->sam2 = NULL;
1667                                 }
1668                         break; }
1669
1670                         case 3: {
1671                                 uint32_t _ptr_sam3;
1672                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam3));
1673                                 if (_ptr_sam3) {
1674                                         NDR_PULL_ALLOC(ndr, r->sam3);
1675                                 } else {
1676                                         r->sam3 = NULL;
1677                                 }
1678                         break; }
1679
1680                         case 4: {
1681                                 uint32_t _ptr_pac;
1682                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1683                                 if (_ptr_pac) {
1684                                         NDR_PULL_ALLOC(ndr, r->pac);
1685                                 } else {
1686                                         r->pac = NULL;
1687                                 }
1688                         break; }
1689
1690                         case 5: {
1691                                 uint32_t _ptr_pac;
1692                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pac));
1693                                 if (_ptr_pac) {
1694                                         NDR_PULL_ALLOC(ndr, r->pac);
1695                                 } else {
1696                                         r->pac = NULL;
1697                                 }
1698                         break; }
1699
1700                         case 6: {
1701                                 uint32_t _ptr_sam6;
1702                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sam6));
1703                                 if (_ptr_sam6) {
1704                                         NDR_PULL_ALLOC(ndr, r->sam6);
1705                                 } else {
1706                                         r->sam6 = NULL;
1707                                 }
1708                         break; }
1709
1710                         default:
1711                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1712                 }
1713         }
1714         if (ndr_flags & NDR_BUFFERS) {
1715                 switch (level) {
1716                         case 2:
1717                                 if (r->sam2) {
1718                                         _mem_save_sam2_0 = NDR_PULL_GET_MEM_CTX(ndr);
1719                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam2, 0);
1720                                         NDR_CHECK(ndr_pull_netr_SamInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam2));
1721                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam2_0, 0);
1722                                 }
1723                         break;
1724
1725                         case 3:
1726                                 if (r->sam3) {
1727                                         _mem_save_sam3_0 = NDR_PULL_GET_MEM_CTX(ndr);
1728                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam3, 0);
1729                                         NDR_CHECK(ndr_pull_netr_SamInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam3));
1730                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam3_0, 0);
1731                                 }
1732                         break;
1733
1734                         case 4:
1735                                 if (r->pac) {
1736                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1737                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1738                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1739                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1740                                 }
1741                         break;
1742
1743                         case 5:
1744                                 if (r->pac) {
1745                                         _mem_save_pac_0 = NDR_PULL_GET_MEM_CTX(ndr);
1746                                         NDR_PULL_SET_MEM_CTX(ndr, r->pac, 0);
1747                                         NDR_CHECK(ndr_pull_netr_PacInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->pac));
1748                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pac_0, 0);
1749                                 }
1750                         break;
1751
1752                         case 6:
1753                                 if (r->sam6) {
1754                                         _mem_save_sam6_0 = NDR_PULL_GET_MEM_CTX(ndr);
1755                                         NDR_PULL_SET_MEM_CTX(ndr, r->sam6, 0);
1756                                         NDR_CHECK(ndr_pull_netr_SamInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->sam6));
1757                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sam6_0, 0);
1758                                 }
1759                         break;
1760
1761                         default:
1762                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
1763                 }
1764         }
1765         return NDR_ERR_SUCCESS;
1766 }
1767
1768 _PUBLIC_ void ndr_print_netr_Validation(struct ndr_print *ndr, const char *name, const union netr_Validation *r)
1769 {
1770         int level;
1771         level = ndr_print_get_switch_value(ndr, r);
1772         ndr_print_union(ndr, name, level, "netr_Validation");
1773         switch (level) {
1774                 case 2:
1775                         ndr_print_ptr(ndr, "sam2", r->sam2);
1776                         ndr->depth++;
1777                         if (r->sam2) {
1778                                 ndr_print_netr_SamInfo2(ndr, "sam2", r->sam2);
1779                         }
1780                         ndr->depth--;
1781                 break;
1782
1783                 case 3:
1784                         ndr_print_ptr(ndr, "sam3", r->sam3);
1785                         ndr->depth++;
1786                         if (r->sam3) {
1787                                 ndr_print_netr_SamInfo3(ndr, "sam3", r->sam3);
1788                         }
1789                         ndr->depth--;
1790                 break;
1791
1792                 case 4:
1793                         ndr_print_ptr(ndr, "pac", r->pac);
1794                         ndr->depth++;
1795                         if (r->pac) {
1796                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1797                         }
1798                         ndr->depth--;
1799                 break;
1800
1801                 case 5:
1802                         ndr_print_ptr(ndr, "pac", r->pac);
1803                         ndr->depth++;
1804                         if (r->pac) {
1805                                 ndr_print_netr_PacInfo(ndr, "pac", r->pac);
1806                         }
1807                         ndr->depth--;
1808                 break;
1809
1810                 case 6:
1811                         ndr_print_ptr(ndr, "sam6", r->sam6);
1812                         ndr->depth++;
1813                         if (r->sam6) {
1814                                 ndr_print_netr_SamInfo6(ndr, "sam6", r->sam6);
1815                         }
1816                         ndr->depth--;
1817                 break;
1818
1819                 default:
1820                         ndr_print_bad_level(ndr, name, level);
1821         }
1822 }
1823
1824 _PUBLIC_ enum ndr_err_code ndr_push_netr_Credential(struct ndr_push *ndr, int ndr_flags, const struct netr_Credential *r)
1825 {
1826         {
1827                 uint32_t _flags_save_STRUCT = ndr->flags;
1828                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1829                 if (ndr_flags & NDR_SCALARS) {
1830                         NDR_CHECK(ndr_push_align(ndr, 1));
1831                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1832                 }
1833                 if (ndr_flags & NDR_BUFFERS) {
1834                 }
1835                 ndr->flags = _flags_save_STRUCT;
1836         }
1837         return NDR_ERR_SUCCESS;
1838 }
1839
1840 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Credential(struct ndr_pull *ndr, int ndr_flags, struct netr_Credential *r)
1841 {
1842         {
1843                 uint32_t _flags_save_STRUCT = ndr->flags;
1844                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1845                 if (ndr_flags & NDR_SCALARS) {
1846                         NDR_CHECK(ndr_pull_align(ndr, 1));
1847                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 8));
1848                 }
1849                 if (ndr_flags & NDR_BUFFERS) {
1850                 }
1851                 ndr->flags = _flags_save_STRUCT;
1852         }
1853         return NDR_ERR_SUCCESS;
1854 }
1855
1856 _PUBLIC_ void ndr_print_netr_Credential(struct ndr_print *ndr, const char *name, const struct netr_Credential *r)
1857 {
1858         ndr_print_struct(ndr, name, "netr_Credential");
1859         {
1860                 uint32_t _flags_save_STRUCT = ndr->flags;
1861                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
1862                 ndr->depth++;
1863                 ndr_print_array_uint8(ndr, "data", r->data, 8);
1864                 ndr->depth--;
1865                 ndr->flags = _flags_save_STRUCT;
1866         }
1867 }
1868
1869 _PUBLIC_ enum ndr_err_code ndr_push_netr_Authenticator(struct ndr_push *ndr, int ndr_flags, const struct netr_Authenticator *r)
1870 {
1871         if (ndr_flags & NDR_SCALARS) {
1872                 NDR_CHECK(ndr_push_align(ndr, 4));
1873                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1874                 NDR_CHECK(ndr_push_time_t(ndr, NDR_SCALARS, r->timestamp));
1875         }
1876         if (ndr_flags & NDR_BUFFERS) {
1877         }
1878         return NDR_ERR_SUCCESS;
1879 }
1880
1881 _PUBLIC_ enum ndr_err_code ndr_pull_netr_Authenticator(struct ndr_pull *ndr, int ndr_flags, struct netr_Authenticator *r)
1882 {
1883         if (ndr_flags & NDR_SCALARS) {
1884                 NDR_CHECK(ndr_pull_align(ndr, 4));
1885                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, &r->cred));
1886                 NDR_CHECK(ndr_pull_time_t(ndr, NDR_SCALARS, &r->timestamp));
1887         }
1888         if (ndr_flags & NDR_BUFFERS) {
1889         }
1890         return NDR_ERR_SUCCESS;
1891 }
1892
1893 _PUBLIC_ void ndr_print_netr_Authenticator(struct ndr_print *ndr, const char *name, const struct netr_Authenticator *r)
1894 {
1895         ndr_print_struct(ndr, name, "netr_Authenticator");
1896         ndr->depth++;
1897         ndr_print_netr_Credential(ndr, "cred", &r->cred);
1898         ndr_print_time_t(ndr, "timestamp", r->timestamp);
1899         ndr->depth--;
1900 }
1901
1902 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_USER *r)
1903 {
1904         if (ndr_flags & NDR_SCALARS) {
1905                 NDR_CHECK(ndr_push_align(ndr, 4));
1906                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account_name));
1907                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1908                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1909                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1910                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1911                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
1912                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
1913                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
1914                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
1915         }
1916         if (ndr_flags & NDR_BUFFERS) {
1917                 if (r->account_name) {
1918                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1919                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
1920                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->account_name, CH_UTF16)));
1921                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->account_name, ndr_charset_length(r->account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
1922                 }
1923                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1924                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1925                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1926                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1927         }
1928         return NDR_ERR_SUCCESS;
1929 }
1930
1931 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_USER *r)
1932 {
1933         uint32_t _ptr_account_name;
1934         TALLOC_CTX *_mem_save_account_name_0;
1935         if (ndr_flags & NDR_SCALARS) {
1936                 NDR_CHECK(ndr_pull_align(ndr, 4));
1937                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account_name));
1938                 if (_ptr_account_name) {
1939                         NDR_PULL_ALLOC(ndr, r->account_name);
1940                 } else {
1941                         r->account_name = NULL;
1942                 }
1943                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
1944                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
1945                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
1946                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
1947                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
1948                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
1949                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
1950                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
1951         }
1952         if (ndr_flags & NDR_BUFFERS) {
1953                 if (r->account_name) {
1954                         _mem_save_account_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1955                         NDR_PULL_SET_MEM_CTX(ndr, r->account_name, 0);
1956                         NDR_CHECK(ndr_pull_array_size(ndr, &r->account_name));
1957                         NDR_CHECK(ndr_pull_array_length(ndr, &r->account_name));
1958                         if (ndr_get_array_length(ndr, &r->account_name) > ndr_get_array_size(ndr, &r->account_name)) {
1959                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->account_name), ndr_get_array_length(ndr, &r->account_name));
1960                         }
1961                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t)));
1962                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->account_name, ndr_get_array_length(ndr, &r->account_name), sizeof(uint16_t), CH_UTF16));
1963                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_name_0, 0);
1964                 }
1965                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
1966                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
1967                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
1968                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
1969         }
1970         return NDR_ERR_SUCCESS;
1971 }
1972
1973 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_USER *r)
1974 {
1975         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_USER");
1976         ndr->depth++;
1977         ndr_print_ptr(ndr, "account_name", r->account_name);
1978         ndr->depth++;
1979         if (r->account_name) {
1980                 ndr_print_string(ndr, "account_name", r->account_name);
1981         }
1982         ndr->depth--;
1983         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
1984         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
1985         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
1986         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
1987         ndr_print_uint32(ndr, "unknown5", r->unknown5);
1988         ndr_print_uint32(ndr, "unknown6", r->unknown6);
1989         ndr_print_uint32(ndr, "unknown7", r->unknown7);
1990         ndr_print_uint32(ndr, "unknown8", r->unknown8);
1991         ndr->depth--;
1992 }
1993
1994 static enum ndr_err_code ndr_push_netr_USER_KEY16(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY16 *r)
1995 {
1996         if (ndr_flags & NDR_SCALARS) {
1997                 NDR_CHECK(ndr_push_align(ndr, 4));
1998                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
1999                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
2000                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
2001                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2002         }
2003         if (ndr_flags & NDR_BUFFERS) {
2004                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
2005         }
2006         return NDR_ERR_SUCCESS;
2007 }
2008
2009 static enum ndr_err_code ndr_pull_netr_USER_KEY16(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY16 *r)
2010 {
2011         if (ndr_flags & NDR_SCALARS) {
2012                 NDR_CHECK(ndr_pull_align(ndr, 4));
2013                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
2014                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
2015                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
2016                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->pwd));
2017         }
2018         if (ndr_flags & NDR_BUFFERS) {
2019                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->pwd));
2020         }
2021         return NDR_ERR_SUCCESS;
2022 }
2023
2024 _PUBLIC_ void ndr_print_netr_USER_KEY16(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY16 *r)
2025 {
2026         ndr_print_struct(ndr, name, "netr_USER_KEY16");
2027         ndr->depth++;
2028         ndr_print_uint16(ndr, "length", r->length);
2029         ndr_print_uint16(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->length:r->size);
2030         ndr_print_uint32(ndr, "flags", r->flags);
2031         ndr_print_samr_Password(ndr, "pwd", &r->pwd);
2032         ndr->depth--;
2033 }
2034
2035 static enum ndr_err_code ndr_push_netr_PasswordHistory(struct ndr_push *ndr, int ndr_flags, const struct netr_PasswordHistory *r)
2036 {
2037         if (ndr_flags & NDR_SCALARS) {
2038                 NDR_CHECK(ndr_push_align(ndr, 4));
2039                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2040                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->nt_length));
2041                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nt_flags));
2042                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2043                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lm_length));
2044                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lm_flags));
2045                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2046                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2047         }
2048         if (ndr_flags & NDR_BUFFERS) {
2049         }
2050         return NDR_ERR_SUCCESS;
2051 }
2052
2053 static enum ndr_err_code ndr_pull_netr_PasswordHistory(struct ndr_pull *ndr, int ndr_flags, struct netr_PasswordHistory *r)
2054 {
2055         if (ndr_flags & NDR_SCALARS) {
2056                 NDR_CHECK(ndr_pull_align(ndr, 4));
2057                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_length));
2058                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->nt_size));
2059                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nt_flags));
2060                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_length));
2061                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lm_size));
2062                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lm_flags));
2063                 NDR_PULL_ALLOC_N(ndr, r->nt_history, r->nt_length);
2064                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->nt_history, r->nt_length));
2065                 NDR_PULL_ALLOC_N(ndr, r->lm_history, r->lm_length);
2066                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->lm_history, r->lm_length));
2067         }
2068         if (ndr_flags & NDR_BUFFERS) {
2069         }
2070         return NDR_ERR_SUCCESS;
2071 }
2072
2073 _PUBLIC_ void ndr_print_netr_PasswordHistory(struct ndr_print *ndr, const char *name, const struct netr_PasswordHistory *r)
2074 {
2075         ndr_print_struct(ndr, name, "netr_PasswordHistory");
2076         ndr->depth++;
2077         ndr_print_uint16(ndr, "nt_length", r->nt_length);
2078         ndr_print_uint16(ndr, "nt_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->nt_length:r->nt_size);
2079         ndr_print_uint32(ndr, "nt_flags", r->nt_flags);
2080         ndr_print_uint16(ndr, "lm_length", r->lm_length);
2081         ndr_print_uint16(ndr, "lm_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->lm_length:r->lm_size);
2082         ndr_print_uint32(ndr, "lm_flags", r->lm_flags);
2083         ndr_print_array_uint8(ndr, "nt_history", r->nt_history, r->nt_length);
2084         ndr_print_array_uint8(ndr, "lm_history", r->lm_history, r->lm_length);
2085         ndr->depth--;
2086 }
2087
2088 static enum ndr_err_code ndr_push_netr_USER_KEYS2(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS2 *r)
2089 {
2090         if (ndr_flags & NDR_SCALARS) {
2091                 NDR_CHECK(ndr_push_align(ndr, 4));
2092                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2093                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2094                 NDR_CHECK(ndr_push_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2095         }
2096         if (ndr_flags & NDR_BUFFERS) {
2097                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
2098                 NDR_CHECK(ndr_push_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
2099         }
2100         return NDR_ERR_SUCCESS;
2101 }
2102
2103 static enum ndr_err_code ndr_pull_netr_USER_KEYS2(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS2 *r)
2104 {
2105         if (ndr_flags & NDR_SCALARS) {
2106                 NDR_CHECK(ndr_pull_align(ndr, 4));
2107                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->lmpassword));
2108                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_SCALARS, &r->ntpassword));
2109                 NDR_CHECK(ndr_pull_netr_PasswordHistory(ndr, NDR_SCALARS, &r->history));
2110         }
2111         if (ndr_flags & NDR_BUFFERS) {
2112                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->lmpassword));
2113                 NDR_CHECK(ndr_pull_netr_USER_KEY16(ndr, NDR_BUFFERS, &r->ntpassword));
2114         }
2115         return NDR_ERR_SUCCESS;
2116 }
2117
2118 _PUBLIC_ void ndr_print_netr_USER_KEYS2(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS2 *r)
2119 {
2120         ndr_print_struct(ndr, name, "netr_USER_KEYS2");
2121         ndr->depth++;
2122         ndr_print_netr_USER_KEY16(ndr, "lmpassword", &r->lmpassword);
2123         ndr_print_netr_USER_KEY16(ndr, "ntpassword", &r->ntpassword);
2124         ndr_print_netr_PasswordHistory(ndr, "history", &r->history);
2125         ndr->depth--;
2126 }
2127
2128 static enum ndr_err_code ndr_push_netr_USER_KEY_UNION(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEY_UNION *r)
2129 {
2130         if (ndr_flags & NDR_SCALARS) {
2131                 NDR_CHECK(ndr_push_align(ndr, 4));
2132                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2133         }
2134         if (ndr_flags & NDR_BUFFERS) {
2135                 NDR_CHECK(ndr_push_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
2136         }
2137         return NDR_ERR_SUCCESS;
2138 }
2139
2140 static enum ndr_err_code ndr_pull_netr_USER_KEY_UNION(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEY_UNION *r)
2141 {
2142         if (ndr_flags & NDR_SCALARS) {
2143                 NDR_CHECK(ndr_pull_align(ndr, 4));
2144                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_SCALARS, &r->keys2));
2145         }
2146         if (ndr_flags & NDR_BUFFERS) {
2147                 NDR_CHECK(ndr_pull_netr_USER_KEYS2(ndr, NDR_BUFFERS, &r->keys2));
2148         }
2149         return NDR_ERR_SUCCESS;
2150 }
2151
2152 _PUBLIC_ void ndr_print_netr_USER_KEY_UNION(struct ndr_print *ndr, const char *name, const struct netr_USER_KEY_UNION *r)
2153 {
2154         ndr_print_struct(ndr, name, "netr_USER_KEY_UNION");
2155         ndr->depth++;
2156         ndr_print_netr_USER_KEYS2(ndr, "keys2", &r->keys2);
2157         ndr->depth--;
2158 }
2159
2160 _PUBLIC_ enum ndr_err_code ndr_push_netr_USER_KEYS(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_KEYS *r)
2161 {
2162         if (ndr_flags & NDR_SCALARS) {
2163                 NDR_CHECK(ndr_push_align(ndr, 4));
2164                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
2165                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2166         }
2167         if (ndr_flags & NDR_BUFFERS) {
2168                 NDR_CHECK(ndr_push_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
2169         }
2170         return NDR_ERR_SUCCESS;
2171 }
2172
2173 _PUBLIC_ enum ndr_err_code ndr_pull_netr_USER_KEYS(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_KEYS *r)
2174 {
2175         if (ndr_flags & NDR_SCALARS) {
2176                 NDR_CHECK(ndr_pull_align(ndr, 4));
2177                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
2178                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_SCALARS, &r->keys));
2179         }
2180         if (ndr_flags & NDR_BUFFERS) {
2181                 NDR_CHECK(ndr_pull_netr_USER_KEY_UNION(ndr, NDR_BUFFERS, &r->keys));
2182         }
2183         return NDR_ERR_SUCCESS;
2184 }
2185
2186 _PUBLIC_ void ndr_print_netr_USER_KEYS(struct ndr_print *ndr, const char *name, const struct netr_USER_KEYS *r)
2187 {
2188         ndr_print_struct(ndr, name, "netr_USER_KEYS");
2189         ndr->depth++;
2190         ndr_print_uint32(ndr, "version", r->version);
2191         ndr_print_netr_USER_KEY_UNION(ndr, "keys", &r->keys);
2192         ndr->depth--;
2193 }
2194
2195 static enum ndr_err_code ndr_push_netr_USER_PRIVATE_INFO(struct ndr_push *ndr, int ndr_flags, const struct netr_USER_PRIVATE_INFO *r)
2196 {
2197         if (ndr_flags & NDR_SCALARS) {
2198                 NDR_CHECK(ndr_push_align(ndr, 4));
2199                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->SensitiveDataFlag));
2200                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2201                 {
2202                         uint32_t _flags_save_uint8 = ndr->flags;
2203                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2204                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->SensitiveData));
2205                         ndr->flags = _flags_save_uint8;
2206                 }
2207         }
2208         if (ndr_flags & NDR_BUFFERS) {
2209                 {
2210                         uint32_t _flags_save_uint8 = ndr->flags;
2211                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2212                         if (r->SensitiveData) {
2213                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->DataLength));
2214                                 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, r->DataLength));
2215                         }
2216                         ndr->flags = _flags_save_uint8;
2217                 }
2218         }
2219         return NDR_ERR_SUCCESS;
2220 }
2221
2222 static enum ndr_err_code ndr_pull_netr_USER_PRIVATE_INFO(struct ndr_pull *ndr, int ndr_flags, struct netr_USER_PRIVATE_INFO *r)
2223 {
2224         uint32_t _ptr_SensitiveData;
2225         TALLOC_CTX *_mem_save_SensitiveData_0;
2226         if (ndr_flags & NDR_SCALARS) {
2227                 NDR_CHECK(ndr_pull_align(ndr, 4));
2228                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->SensitiveDataFlag));
2229                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->DataLength));
2230                 {
2231                         uint32_t _flags_save_uint8 = ndr->flags;
2232                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2233                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_SensitiveData));
2234                         if (_ptr_SensitiveData) {
2235                                 NDR_PULL_ALLOC(ndr, r->SensitiveData);
2236                         } else {
2237                                 r->SensitiveData = NULL;
2238                         }
2239                         ndr->flags = _flags_save_uint8;
2240                 }
2241         }
2242         if (ndr_flags & NDR_BUFFERS) {
2243                 {
2244                         uint32_t _flags_save_uint8 = ndr->flags;
2245                         ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
2246                         if (r->SensitiveData) {
2247                                 _mem_save_SensitiveData_0 = NDR_PULL_GET_MEM_CTX(ndr);
2248                                 NDR_PULL_SET_MEM_CTX(ndr, r->SensitiveData, 0);
2249                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->SensitiveData));
2250                                 NDR_PULL_ALLOC_N(ndr, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData));
2251                                 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->SensitiveData, ndr_get_array_size(ndr, &r->SensitiveData)));
2252                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_SensitiveData_0, 0);
2253                         }
2254                         ndr->flags = _flags_save_uint8;
2255                 }
2256                 if (r->SensitiveData) {
2257                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->SensitiveData, r->DataLength));
2258                 }
2259         }
2260         return NDR_ERR_SUCCESS;
2261 }
2262
2263 _PUBLIC_ void ndr_print_netr_USER_PRIVATE_INFO(struct ndr_print *ndr, const char *name, const struct netr_USER_PRIVATE_INFO *r)
2264 {
2265         ndr_print_struct(ndr, name, "netr_USER_PRIVATE_INFO");
2266         ndr->depth++;
2267         ndr_print_uint8(ndr, "SensitiveDataFlag", r->SensitiveDataFlag);
2268         ndr_print_uint32(ndr, "DataLength", r->DataLength);
2269         ndr_print_ptr(ndr, "SensitiveData", r->SensitiveData);
2270         ndr->depth++;
2271         if (r->SensitiveData) {
2272                 ndr_print_array_uint8(ndr, "SensitiveData", r->SensitiveData, r->DataLength);
2273         }
2274         ndr->depth--;
2275         ndr->depth--;
2276 }
2277
2278 static enum ndr_err_code ndr_push_netr_DELTA_USER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_USER *r)
2279 {
2280         if (ndr_flags & NDR_SCALARS) {
2281                 NDR_CHECK(ndr_push_align(ndr, 4));
2282                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2283                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2284                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2285                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->primary_gid));
2286                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2287                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2288                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2289                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2290                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2291                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logon));
2292                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_logoff));
2293                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2294                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->bad_password_count));
2295                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logon_count));
2296                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->last_password_change));
2297                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->acct_expiry));
2298                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->acct_flags));
2299                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2300                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2301                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->nt_password_present));
2302                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->lm_password_present));
2303                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->password_expired));
2304                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2305                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2306                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->country_code));
2307                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->code_page));
2308                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2309                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2310                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2311                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2312                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2313                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2314                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2315                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2316                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2317                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2318                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2319         }
2320         if (ndr_flags & NDR_BUFFERS) {
2321                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2322                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2323                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2324                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2325                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2326                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2327                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2328                 NDR_CHECK(ndr_push_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2329                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
2330                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
2331                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2332                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2333                 NDR_CHECK(ndr_push_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2334                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2335                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2336                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2337                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2338                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2339         }
2340         return NDR_ERR_SUCCESS;
2341 }
2342
2343 static enum ndr_err_code ndr_pull_netr_DELTA_USER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_USER *r)
2344 {
2345         if (ndr_flags & NDR_SCALARS) {
2346                 NDR_CHECK(ndr_pull_align(ndr, 4));
2347                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->account_name));
2348                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->full_name));
2349                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2350                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->primary_gid));
2351                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_directory));
2352                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->home_drive));
2353                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->logon_script));
2354                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2355                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->workstations));
2356                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logon));
2357                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_logoff));
2358                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_SCALARS, &r->logon_hours));
2359                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->bad_password_count));
2360                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logon_count));
2361                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->last_password_change));
2362                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->acct_expiry));
2363                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->acct_flags));
2364                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->lmpassword));
2365                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS, &r->ntpassword));
2366                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->nt_password_present));
2367                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->lm_password_present));
2368                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->password_expired));
2369                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2370                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->parameters));
2371                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->country_code));
2372                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->code_page));
2373                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_SCALARS, &r->user_private_info));
2374                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2375                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2376                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->profile_path));
2377                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2378                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2379                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2380                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2381                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2382                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2383                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2384         }
2385         if (ndr_flags & NDR_BUFFERS) {
2386                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->account_name));
2387                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->full_name));
2388                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_directory));
2389                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->home_drive));
2390                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->logon_script));
2391                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2392                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->workstations));
2393                 NDR_CHECK(ndr_pull_samr_LogonHours(ndr, NDR_BUFFERS, &r->logon_hours));
2394                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->lmpassword));
2395                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_BUFFERS, &r->ntpassword));
2396                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2397                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->parameters));
2398                 NDR_CHECK(ndr_pull_netr_USER_PRIVATE_INFO(ndr, NDR_BUFFERS, &r->user_private_info));
2399                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2400                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->profile_path));
2401                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2402                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2403                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2404         }
2405         return NDR_ERR_SUCCESS;
2406 }
2407
2408 _PUBLIC_ void ndr_print_netr_DELTA_USER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_USER *r)
2409 {
2410         ndr_print_struct(ndr, name, "netr_DELTA_USER");
2411         ndr->depth++;
2412         ndr_print_lsa_String(ndr, "account_name", &r->account_name);
2413         ndr_print_lsa_String(ndr, "full_name", &r->full_name);
2414         ndr_print_uint32(ndr, "rid", r->rid);
2415         ndr_print_uint32(ndr, "primary_gid", r->primary_gid);
2416         ndr_print_lsa_String(ndr, "home_directory", &r->home_directory);
2417         ndr_print_lsa_String(ndr, "home_drive", &r->home_drive);
2418         ndr_print_lsa_String(ndr, "logon_script", &r->logon_script);
2419         ndr_print_lsa_String(ndr, "description", &r->description);
2420         ndr_print_lsa_String(ndr, "workstations", &r->workstations);
2421         ndr_print_NTTIME(ndr, "last_logon", r->last_logon);
2422         ndr_print_NTTIME(ndr, "last_logoff", r->last_logoff);
2423         ndr_print_samr_LogonHours(ndr, "logon_hours", &r->logon_hours);
2424         ndr_print_uint16(ndr, "bad_password_count", r->bad_password_count);
2425         ndr_print_uint16(ndr, "logon_count", r->logon_count);
2426         ndr_print_NTTIME(ndr, "last_password_change", r->last_password_change);
2427         ndr_print_NTTIME(ndr, "acct_expiry", r->acct_expiry);
2428         ndr_print_samr_AcctFlags(ndr, "acct_flags", r->acct_flags);
2429         ndr_print_samr_Password(ndr, "lmpassword", &r->lmpassword);
2430         ndr_print_samr_Password(ndr, "ntpassword", &r->ntpassword);
2431         ndr_print_uint8(ndr, "nt_password_present", r->nt_password_present);
2432         ndr_print_uint8(ndr, "lm_password_present", r->lm_password_present);
2433         ndr_print_uint8(ndr, "password_expired", r->password_expired);
2434         ndr_print_lsa_String(ndr, "comment", &r->comment);
2435         ndr_print_lsa_String(ndr, "parameters", &r->parameters);
2436         ndr_print_uint16(ndr, "country_code", r->country_code);
2437         ndr_print_uint16(ndr, "code_page", r->code_page);
2438         ndr_print_netr_USER_PRIVATE_INFO(ndr, "user_private_info", &r->user_private_info);
2439         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2440         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2441         ndr_print_lsa_String(ndr, "profile_path", &r->profile_path);
2442         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2443         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2444         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2445         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2446         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2447         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2448         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2449         ndr->depth--;
2450 }
2451
2452 static enum ndr_err_code ndr_push_netr_DELTA_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DOMAIN *r)
2453 {
2454         if (ndr_flags & NDR_SCALARS) {
2455                 NDR_CHECK(ndr_push_align(ndr, 4));
2456                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2457                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->comment));
2458                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->force_logoff_time));
2459                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->min_password_length));
2460                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->password_history_length));
2461                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->max_password_age));
2462                 NDR_CHECK(ndr_push_dlong(ndr, NDR_SCALARS, r->min_password_age));
2463                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
2464                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->domain_create_time));
2465                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2466                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2467                 NDR_CHECK(ndr_push_netr_AcctLockStr(ndr, NDR_SCALARS, &r->account_lockout));
2468                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2469                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2470                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2471                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_to_chgpass));
2472                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2473                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2474                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2475         }
2476         if (ndr_flags & NDR_BUFFERS) {
2477                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2478                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2479                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2480                 NDR_CHECK(ndr_push_netr_AcctLockStr(ndr, NDR_BUFFERS, &r->account_lockout));
2481                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2482                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2483                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2484         }
2485         return NDR_ERR_SUCCESS;
2486 }
2487
2488 static enum ndr_err_code ndr_pull_netr_DELTA_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DOMAIN *r)
2489 {
2490         if (ndr_flags & NDR_SCALARS) {
2491                 NDR_CHECK(ndr_pull_align(ndr, 4));
2492                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
2493                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->comment));
2494                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->force_logoff_time));
2495                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->min_password_length));
2496                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->password_history_length));
2497                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->max_password_age));
2498                 NDR_CHECK(ndr_pull_dlong(ndr, NDR_SCALARS, &r->min_password_age));
2499                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
2500                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->domain_create_time));
2501                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2502                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2503                 NDR_CHECK(ndr_pull_netr_AcctLockStr(ndr, NDR_SCALARS, &r->account_lockout));
2504                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2505                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2506                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2507                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_to_chgpass));
2508                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2509                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2510                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2511         }
2512         if (ndr_flags & NDR_BUFFERS) {
2513                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
2514                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->comment));
2515                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2516                 NDR_CHECK(ndr_pull_netr_AcctLockStr(ndr, NDR_BUFFERS, &r->account_lockout));
2517                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2518                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2519                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2520         }
2521         return NDR_ERR_SUCCESS;
2522 }
2523
2524 _PUBLIC_ void ndr_print_netr_DELTA_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DOMAIN *r)
2525 {
2526         ndr_print_struct(ndr, name, "netr_DELTA_DOMAIN");
2527         ndr->depth++;
2528         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
2529         ndr_print_lsa_String(ndr, "comment", &r->comment);
2530         ndr_print_dlong(ndr, "force_logoff_time", r->force_logoff_time);
2531         ndr_print_uint16(ndr, "min_password_length", r->min_password_length);
2532         ndr_print_uint16(ndr, "password_history_length", r->password_history_length);
2533         ndr_print_dlong(ndr, "max_password_age", r->max_password_age);
2534         ndr_print_dlong(ndr, "min_password_age", r->min_password_age);
2535         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
2536         ndr_print_NTTIME(ndr, "domain_create_time", r->domain_create_time);
2537         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2538         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2539         ndr_print_netr_AcctLockStr(ndr, "account_lockout", &r->account_lockout);
2540         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2541         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2542         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2543         ndr_print_uint32(ndr, "logon_to_chgpass", r->logon_to_chgpass);
2544         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2545         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2546         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2547         ndr->depth--;
2548 }
2549
2550 static enum ndr_err_code ndr_push_netr_DELTA_GROUP(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP *r)
2551 {
2552         if (ndr_flags & NDR_SCALARS) {
2553                 NDR_CHECK(ndr_push_align(ndr, 4));
2554                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2555                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2556                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attributes));
2557                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2558                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2559                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2560                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2561                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2562                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2563                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2564                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2565                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2566                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2567                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2568         }
2569         if (ndr_flags & NDR_BUFFERS) {
2570                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2571                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2572                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2573                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2574                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2575                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2576                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2577         }
2578         return NDR_ERR_SUCCESS;
2579 }
2580
2581 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP *r)
2582 {
2583         if (ndr_flags & NDR_SCALARS) {
2584                 NDR_CHECK(ndr_pull_align(ndr, 4));
2585                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->group_name));
2586                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2587                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attributes));
2588                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2589                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2590                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2591                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2592                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2593                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2594                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2595                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2596                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2597                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2598                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2599         }
2600         if (ndr_flags & NDR_BUFFERS) {
2601                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->group_name));
2602                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2603                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2604                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2605                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2606                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2607                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2608         }
2609         return NDR_ERR_SUCCESS;
2610 }
2611
2612 _PUBLIC_ void ndr_print_netr_DELTA_GROUP(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP *r)
2613 {
2614         ndr_print_struct(ndr, name, "netr_DELTA_GROUP");
2615         ndr->depth++;
2616         ndr_print_lsa_String(ndr, "group_name", &r->group_name);
2617         ndr_print_uint32(ndr, "rid", r->rid);
2618         ndr_print_uint32(ndr, "attributes", r->attributes);
2619         ndr_print_lsa_String(ndr, "description", &r->description);
2620         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2621         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2622         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2623         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2624         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2625         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2626         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2627         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2628         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2629         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2630         ndr->depth--;
2631 }
2632
2633 static enum ndr_err_code ndr_push_netr_DELTA_RENAME(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_RENAME *r)
2634 {
2635         if (ndr_flags & NDR_SCALARS) {
2636                 NDR_CHECK(ndr_push_align(ndr, 4));
2637                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2638                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2639                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2640                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2641                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2642                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2643                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2644                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2645                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2646                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2647         }
2648         if (ndr_flags & NDR_BUFFERS) {
2649                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2650                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2651                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2652                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2653                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2654                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2655         }
2656         return NDR_ERR_SUCCESS;
2657 }
2658
2659 static enum ndr_err_code ndr_pull_netr_DELTA_RENAME(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_RENAME *r)
2660 {
2661         if (ndr_flags & NDR_SCALARS) {
2662                 NDR_CHECK(ndr_pull_align(ndr, 4));
2663                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->OldName));
2664                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->NewName));
2665                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
2666                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2667                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2668                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2669                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2670                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2671                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2672                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2673         }
2674         if (ndr_flags & NDR_BUFFERS) {
2675                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->OldName));
2676                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->NewName));
2677                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
2678                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2679                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2680                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2681         }
2682         return NDR_ERR_SUCCESS;
2683 }
2684
2685 _PUBLIC_ void ndr_print_netr_DELTA_RENAME(struct ndr_print *ndr, const char *name, const struct netr_DELTA_RENAME *r)
2686 {
2687         ndr_print_struct(ndr, name, "netr_DELTA_RENAME");
2688         ndr->depth++;
2689         ndr_print_lsa_String(ndr, "OldName", &r->OldName);
2690         ndr_print_lsa_String(ndr, "NewName", &r->NewName);
2691         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
2692         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2693         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2694         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2695         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2696         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2697         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2698         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2699         ndr->depth--;
2700 }
2701
2702 static enum ndr_err_code ndr_push_netr_DELTA_GROUP_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_GROUP_MEMBER *r)
2703 {
2704         uint32_t cntr_rids_1;
2705         uint32_t cntr_attribs_1;
2706         if (ndr_flags & NDR_SCALARS) {
2707                 NDR_CHECK(ndr_push_align(ndr, 4));
2708                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rids));
2709                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->attribs));
2710                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2711                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2712                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2713                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2714                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2715         }
2716         if (ndr_flags & NDR_BUFFERS) {
2717                 if (r->rids) {
2718                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2719                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2720                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_1]));
2721                         }
2722                 }
2723                 if (r->attribs) {
2724                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
2725                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2726                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->attribs[cntr_attribs_1]));
2727                         }
2728                 }
2729         }
2730         return NDR_ERR_SUCCESS;
2731 }
2732
2733 static enum ndr_err_code ndr_pull_netr_DELTA_GROUP_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_GROUP_MEMBER *r)
2734 {
2735         uint32_t _ptr_rids;
2736         uint32_t cntr_rids_1;
2737         TALLOC_CTX *_mem_save_rids_0;
2738         TALLOC_CTX *_mem_save_rids_1;
2739         uint32_t _ptr_attribs;
2740         uint32_t cntr_attribs_1;
2741         TALLOC_CTX *_mem_save_attribs_0;
2742         TALLOC_CTX *_mem_save_attribs_1;
2743         if (ndr_flags & NDR_SCALARS) {
2744                 NDR_CHECK(ndr_pull_align(ndr, 4));
2745                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rids));
2746                 if (_ptr_rids) {
2747                         NDR_PULL_ALLOC(ndr, r->rids);
2748                 } else {
2749                         r->rids = NULL;
2750                 }
2751                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_attribs));
2752                 if (_ptr_attribs) {
2753                         NDR_PULL_ALLOC(ndr, r->attribs);
2754                 } else {
2755                         r->attribs = NULL;
2756                 }
2757                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
2758                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2759                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2760                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2761                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2762         }
2763         if (ndr_flags & NDR_BUFFERS) {
2764                 if (r->rids) {
2765                         _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
2766                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2767                         NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
2768                         NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
2769                         _mem_save_rids_1 = NDR_PULL_GET_MEM_CTX(ndr);
2770                         NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
2771                         for (cntr_rids_1 = 0; cntr_rids_1 < r->num_rids; cntr_rids_1++) {
2772                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_1]));
2773                         }
2774                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_1, 0);
2775                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
2776                 }
2777                 if (r->attribs) {
2778                         _mem_save_attribs_0 = NDR_PULL_GET_MEM_CTX(ndr);
2779                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2780                         NDR_CHECK(ndr_pull_array_size(ndr, &r->attribs));
2781                         NDR_PULL_ALLOC_N(ndr, r->attribs, ndr_get_array_size(ndr, &r->attribs));
2782                         _mem_save_attribs_1 = NDR_PULL_GET_MEM_CTX(ndr);
2783                         NDR_PULL_SET_MEM_CTX(ndr, r->attribs, 0);
2784                         for (cntr_attribs_1 = 0; cntr_attribs_1 < r->num_rids; cntr_attribs_1++) {
2785                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->attribs[cntr_attribs_1]));
2786                         }
2787                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_1, 0);
2788                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_attribs_0, 0);
2789                 }
2790                 if (r->rids) {
2791                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
2792                 }
2793                 if (r->attribs) {
2794                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->attribs, r->num_rids));
2795                 }
2796         }
2797         return NDR_ERR_SUCCESS;
2798 }
2799
2800 _PUBLIC_ void ndr_print_netr_DELTA_GROUP_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_GROUP_MEMBER *r)
2801 {
2802         uint32_t cntr_rids_1;
2803         uint32_t cntr_attribs_1;
2804         ndr_print_struct(ndr, name, "netr_DELTA_GROUP_MEMBER");
2805         ndr->depth++;
2806         ndr_print_ptr(ndr, "rids", r->rids);
2807         ndr->depth++;
2808         if (r->rids) {
2809                 ndr->print(ndr, "%s: ARRAY(%d)", "rids", r->num_rids);
2810                 ndr->depth++;
2811                 for (cntr_rids_1=0;cntr_rids_1<r->num_rids;cntr_rids_1++) {
2812                         char *idx_1=NULL;
2813                         asprintf(&idx_1, "[%d]", cntr_rids_1);
2814                         if (idx_1) {
2815                                 ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_1]);
2816                                 free(idx_1);
2817                         }
2818                 }
2819                 ndr->depth--;
2820         }
2821         ndr->depth--;
2822         ndr_print_ptr(ndr, "attribs", r->attribs);
2823         ndr->depth++;
2824         if (r->attribs) {
2825                 ndr->print(ndr, "%s: ARRAY(%d)", "attribs", r->num_rids);
2826                 ndr->depth++;
2827                 for (cntr_attribs_1=0;cntr_attribs_1<r->num_rids;cntr_attribs_1++) {
2828                         char *idx_1=NULL;
2829                         asprintf(&idx_1, "[%d]", cntr_attribs_1);
2830                         if (idx_1) {
2831                                 ndr_print_uint32(ndr, "attribs", r->attribs[cntr_attribs_1]);
2832                                 free(idx_1);
2833                         }
2834                 }
2835                 ndr->depth--;
2836         }
2837         ndr->depth--;
2838         ndr_print_uint32(ndr, "num_rids", r->num_rids);
2839         ndr_print_uint32(ndr, "unknown1", r->unknown1);
2840         ndr_print_uint32(ndr, "unknown2", r->unknown2);
2841         ndr_print_uint32(ndr, "unknown3", r->unknown3);
2842         ndr_print_uint32(ndr, "unknown4", r->unknown4);
2843         ndr->depth--;
2844 }
2845
2846 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS *r)
2847 {
2848         if (ndr_flags & NDR_SCALARS) {
2849                 NDR_CHECK(ndr_push_align(ndr, 4));
2850                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2851                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
2852                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
2853                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2854                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->description));
2855                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2856                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2857                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2858                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
2859                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
2860                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
2861                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
2862         }
2863         if (ndr_flags & NDR_BUFFERS) {
2864                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2865                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2866                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->description));
2867                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2868                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2869                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2870         }
2871         return NDR_ERR_SUCCESS;
2872 }
2873
2874 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS *r)
2875 {
2876         if (ndr_flags & NDR_SCALARS) {
2877                 NDR_CHECK(ndr_pull_align(ndr, 4));
2878                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->alias_name));
2879                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
2880                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
2881                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
2882                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->description));
2883                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
2884                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
2885                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
2886                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
2887                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
2888                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
2889                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
2890         }
2891         if (ndr_flags & NDR_BUFFERS) {
2892                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->alias_name));
2893                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
2894                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->description));
2895                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
2896                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
2897                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
2898         }
2899         return NDR_ERR_SUCCESS;
2900 }
2901
2902 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS *r)
2903 {
2904         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS");
2905         ndr->depth++;
2906         ndr_print_lsa_String(ndr, "alias_name", &r->alias_name);
2907         ndr_print_uint32(ndr, "rid", r->rid);
2908         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
2909         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
2910         ndr_print_lsa_String(ndr, "description", &r->description);
2911         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
2912         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
2913         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
2914         ndr_print_uint32(ndr, "unknown5", r->unknown5);
2915         ndr_print_uint32(ndr, "unknown6", r->unknown6);
2916         ndr_print_uint32(ndr, "unknown7", r->unknown7);
2917         ndr_print_uint32(ndr, "unknown8", r->unknown8);
2918         ndr->depth--;
2919 }
2920
2921 static enum ndr_err_code ndr_push_netr_DELTA_ALIAS_MEMBER(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ALIAS_MEMBER *r)
2922 {
2923         if (ndr_flags & NDR_SCALARS) {
2924                 NDR_CHECK(ndr_push_align(ndr, 4));
2925                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2926                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
2927                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
2928                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
2929                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
2930         }
2931         if (ndr_flags & NDR_BUFFERS) {
2932                 NDR_CHECK(ndr_push_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2933         }
2934         return NDR_ERR_SUCCESS;
2935 }
2936
2937 static enum ndr_err_code ndr_pull_netr_DELTA_ALIAS_MEMBER(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ALIAS_MEMBER *r)
2938 {
2939         if (ndr_flags & NDR_SCALARS) {
2940                 NDR_CHECK(ndr_pull_align(ndr, 4));
2941                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_SCALARS, &r->sids));
2942                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
2943                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
2944                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
2945                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
2946         }
2947         if (ndr_flags & NDR_BUFFERS) {
2948                 NDR_CHECK(ndr_pull_lsa_SidArray(ndr, NDR_BUFFERS, &r->sids));
2949         }
2950         return NDR_ERR_SUCCESS;
2951 }
2952
2953 _PUBLIC_ void ndr_print_netr_DELTA_ALIAS_MEMBER(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ALIAS_MEMBER *r)
2954 {
2955         ndr_print_struct(ndr, name, "netr_DELTA_ALIAS_MEMBER");
2956         ndr->depth++;
2957         ndr_print_lsa_SidArray(ndr, "sids", &r->sids);
2958         ndr_print_uint32(ndr, "unknown1", r->unknown1);
2959         ndr_print_uint32(ndr, "unknown2", r->unknown2);
2960         ndr_print_uint32(ndr, "unknown3", r->unknown3);
2961         ndr_print_uint32(ndr, "unknown4", r->unknown4);
2962         ndr->depth--;
2963 }
2964
2965 static enum ndr_err_code ndr_push_netr_QUOTA_LIMITS(struct ndr_push *ndr, int ndr_flags, const struct netr_QUOTA_LIMITS *r)
2966 {
2967         if (ndr_flags & NDR_SCALARS) {
2968                 NDR_CHECK(ndr_push_align(ndr, 4));
2969                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagedpoollimit));
2970                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->nonpagedpoollimit));
2971                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minimumworkingsetsize));
2972                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maximumworkingsetsize));
2973                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pagefilelimit));
2974                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->timelimit));
2975         }
2976         if (ndr_flags & NDR_BUFFERS) {
2977         }
2978         return NDR_ERR_SUCCESS;
2979 }
2980
2981 static enum ndr_err_code ndr_pull_netr_QUOTA_LIMITS(struct ndr_pull *ndr, int ndr_flags, struct netr_QUOTA_LIMITS *r)
2982 {
2983         if (ndr_flags & NDR_SCALARS) {
2984                 NDR_CHECK(ndr_pull_align(ndr, 4));
2985                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagedpoollimit));
2986                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->nonpagedpoollimit));
2987                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minimumworkingsetsize));
2988                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maximumworkingsetsize));
2989                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pagefilelimit));
2990                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->timelimit));
2991         }
2992         if (ndr_flags & NDR_BUFFERS) {
2993         }
2994         return NDR_ERR_SUCCESS;
2995 }
2996
2997 _PUBLIC_ void ndr_print_netr_QUOTA_LIMITS(struct ndr_print *ndr, const char *name, const struct netr_QUOTA_LIMITS *r)
2998 {
2999         ndr_print_struct(ndr, name, "netr_QUOTA_LIMITS");
3000         ndr->depth++;
3001         ndr_print_uint32(ndr, "pagedpoollimit", r->pagedpoollimit);
3002         ndr_print_uint32(ndr, "nonpagedpoollimit", r->nonpagedpoollimit);
3003         ndr_print_uint32(ndr, "minimumworkingsetsize", r->minimumworkingsetsize);
3004         ndr_print_uint32(ndr, "maximumworkingsetsize", r->maximumworkingsetsize);
3005         ndr_print_uint32(ndr, "pagefilelimit", r->pagefilelimit);
3006         ndr_print_NTTIME(ndr, "timelimit", r->timelimit);
3007         ndr->depth--;
3008 }
3009
3010 static enum ndr_err_code ndr_push_netr_DELTA_POLICY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_POLICY *r)
3011 {
3012         uint32_t cntr_eventauditoptions_1;
3013         if (ndr_flags & NDR_SCALARS) {
3014                 NDR_CHECK(ndr_push_align(ndr, 4));
3015                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlogsize));
3016                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->auditretentionperiod));
3017                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->auditingmode));
3018                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount));
3019                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->eventauditoptions));
3020                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3021                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
3022                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3023                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->sequence_num));
3024                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->db_create_time));
3025                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3026                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3027                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3028                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3029                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3030                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3031                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3032                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3033                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3034                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3035         }
3036         if (ndr_flags & NDR_BUFFERS) {
3037                 if (r->eventauditoptions) {
3038                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxauditeventcount + 1));
3039                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3040                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->eventauditoptions[cntr_eventauditoptions_1]));
3041                         }
3042                 }
3043                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3044                 if (r->sid) {
3045                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3046                 }
3047                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3048                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3049                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3050                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3051                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3052         }
3053         return NDR_ERR_SUCCESS;
3054 }
3055
3056 static enum ndr_err_code ndr_pull_netr_DELTA_POLICY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_POLICY *r)
3057 {
3058         uint32_t _ptr_eventauditoptions;
3059         uint32_t cntr_eventauditoptions_1;
3060         TALLOC_CTX *_mem_save_eventauditoptions_0;
3061         TALLOC_CTX *_mem_save_eventauditoptions_1;
3062         uint32_t _ptr_sid;
3063         TALLOC_CTX *_mem_save_sid_0;
3064         if (ndr_flags & NDR_SCALARS) {
3065                 NDR_CHECK(ndr_pull_align(ndr, 4));
3066                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlogsize));
3067                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->auditretentionperiod));
3068                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->auditingmode));
3069                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxauditeventcount));
3070                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_eventauditoptions));
3071                 if (_ptr_eventauditoptions) {
3072                         NDR_PULL_ALLOC(ndr, r->eventauditoptions);
3073                 } else {
3074                         r->eventauditoptions = NULL;
3075                 }
3076                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->primary_domain_name));
3077                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
3078                 if (_ptr_sid) {
3079                         NDR_PULL_ALLOC(ndr, r->sid);
3080                 } else {
3081                         r->sid = NULL;
3082                 }
3083                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quota_limits));
3084                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->sequence_num));
3085                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->db_create_time));
3086                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3087                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3088                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3089                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3090                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3091                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3092                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3093                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3094                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3095                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3096         }
3097         if (ndr_flags & NDR_BUFFERS) {
3098                 if (r->eventauditoptions) {
3099                         _mem_save_eventauditoptions_0 = NDR_PULL_GET_MEM_CTX(ndr);
3100                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3101                         NDR_CHECK(ndr_pull_array_size(ndr, &r->eventauditoptions));
3102                         NDR_PULL_ALLOC_N(ndr, r->eventauditoptions, ndr_get_array_size(ndr, &r->eventauditoptions));
3103                         _mem_save_eventauditoptions_1 = NDR_PULL_GET_MEM_CTX(ndr);
3104                         NDR_PULL_SET_MEM_CTX(ndr, r->eventauditoptions, 0);
3105                         for (cntr_eventauditoptions_1 = 0; cntr_eventauditoptions_1 < r->maxauditeventcount + 1; cntr_eventauditoptions_1++) {
3106                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->eventauditoptions[cntr_eventauditoptions_1]));
3107                         }
3108                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_1, 0);
3109                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_eventauditoptions_0, 0);
3110                 }
3111                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->primary_domain_name));
3112                 if (r->sid) {
3113                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
3114                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
3115                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
3116                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
3117                 }
3118                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3119                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3120                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3121                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3122                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3123                 if (r->eventauditoptions) {
3124                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->eventauditoptions, r->maxauditeventcount + 1));
3125                 }
3126         }
3127         return NDR_ERR_SUCCESS;
3128 }
3129
3130 _PUBLIC_ void ndr_print_netr_DELTA_POLICY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_POLICY *r)
3131 {
3132         uint32_t cntr_eventauditoptions_1;
3133         ndr_print_struct(ndr, name, "netr_DELTA_POLICY");
3134         ndr->depth++;
3135         ndr_print_uint32(ndr, "maxlogsize", r->maxlogsize);
3136         ndr_print_NTTIME(ndr, "auditretentionperiod", r->auditretentionperiod);
3137         ndr_print_uint8(ndr, "auditingmode", r->auditingmode);
3138         ndr_print_uint32(ndr, "maxauditeventcount", r->maxauditeventcount);
3139         ndr_print_ptr(ndr, "eventauditoptions", r->eventauditoptions);
3140         ndr->depth++;
3141         if (r->eventauditoptions) {
3142                 ndr->print(ndr, "%s: ARRAY(%d)", "eventauditoptions", r->maxauditeventcount + 1);
3143                 ndr->depth++;
3144                 for (cntr_eventauditoptions_1=0;cntr_eventauditoptions_1<r->maxauditeventcount + 1;cntr_eventauditoptions_1++) {
3145                         char *idx_1=NULL;
3146                         asprintf(&idx_1, "[%d]", cntr_eventauditoptions_1);
3147                         if (idx_1) {
3148                                 ndr_print_uint32(ndr, "eventauditoptions", r->eventauditoptions[cntr_eventauditoptions_1]);
3149                                 free(idx_1);
3150                         }
3151                 }
3152                 ndr->depth--;
3153         }
3154         ndr->depth--;
3155         ndr_print_lsa_String(ndr, "primary_domain_name", &r->primary_domain_name);
3156         ndr_print_ptr(ndr, "sid", r->sid);
3157         ndr->depth++;
3158         if (r->sid) {
3159                 ndr_print_dom_sid2(ndr, "sid", r->sid);
3160         }
3161         ndr->depth--;
3162         ndr_print_netr_QUOTA_LIMITS(ndr, "quota_limits", &r->quota_limits);
3163         ndr_print_udlong(ndr, "sequence_num", r->sequence_num);
3164         ndr_print_NTTIME(ndr, "db_create_time", r->db_create_time);
3165         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3166         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3167         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3168         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3169         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3170         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3171         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3172         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3173         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3174         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3175         ndr->depth--;
3176 }
3177
3178 static enum ndr_err_code ndr_push_netr_DELTA_TRUSTED_DOMAIN(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3179 {
3180         uint32_t cntr_controller_names_1;
3181         if (ndr_flags & NDR_SCALARS) {
3182                 NDR_CHECK(ndr_push_align(ndr, 4));
3183                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3184                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3185                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->controller_names));
3186                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3187                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3188                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3189                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3190                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3191                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3192                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->posix_offset));
3193                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3194                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3195                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3196         }
3197         if (ndr_flags & NDR_BUFFERS) {
3198                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3199                 if (r->controller_names) {
3200                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_controllers));
3201                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3202                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3203                         }
3204                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3205                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3206                         }
3207                 }
3208                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3209                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3210                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3211                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3212                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3213         }
3214         return NDR_ERR_SUCCESS;
3215 }
3216
3217 static enum ndr_err_code ndr_pull_netr_DELTA_TRUSTED_DOMAIN(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_TRUSTED_DOMAIN *r)
3218 {
3219         uint32_t _ptr_controller_names;
3220         uint32_t cntr_controller_names_1;
3221         TALLOC_CTX *_mem_save_controller_names_0;
3222         TALLOC_CTX *_mem_save_controller_names_1;
3223         if (ndr_flags & NDR_SCALARS) {
3224                 NDR_CHECK(ndr_pull_align(ndr, 4));
3225                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domain_name));
3226                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_controllers));
3227                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_controller_names));
3228                 if (_ptr_controller_names) {
3229                         NDR_PULL_ALLOC(ndr, r->controller_names);
3230                 } else {
3231                         r->controller_names = NULL;
3232                 }
3233                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3234                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3235                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3236                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3237                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3238                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3239                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->posix_offset));
3240                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3241                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3242                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3243         }
3244         if (ndr_flags & NDR_BUFFERS) {
3245                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domain_name));
3246                 if (r->controller_names) {
3247                         _mem_save_controller_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
3248                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3249                         NDR_CHECK(ndr_pull_array_size(ndr, &r->controller_names));
3250                         NDR_PULL_ALLOC_N(ndr, r->controller_names, ndr_get_array_size(ndr, &r->controller_names));
3251                         _mem_save_controller_names_1 = NDR_PULL_GET_MEM_CTX(ndr);
3252                         NDR_PULL_SET_MEM_CTX(ndr, r->controller_names, 0);
3253                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3254                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->controller_names[cntr_controller_names_1]));
3255                         }
3256                         for (cntr_controller_names_1 = 0; cntr_controller_names_1 < r->num_controllers; cntr_controller_names_1++) {
3257                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->controller_names[cntr_controller_names_1]));
3258                         }
3259                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_1, 0);
3260                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_controller_names_0, 0);
3261                 }
3262                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3263                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3264                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3265                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3266                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3267                 if (r->controller_names) {
3268                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->controller_names, r->num_controllers));
3269                 }
3270         }
3271         return NDR_ERR_SUCCESS;
3272 }
3273
3274 _PUBLIC_ void ndr_print_netr_DELTA_TRUSTED_DOMAIN(struct ndr_print *ndr, const char *name, const struct netr_DELTA_TRUSTED_DOMAIN *r)
3275 {
3276         uint32_t cntr_controller_names_1;
3277         ndr_print_struct(ndr, name, "netr_DELTA_TRUSTED_DOMAIN");
3278         ndr->depth++;
3279         ndr_print_lsa_String(ndr, "domain_name", &r->domain_name);
3280         ndr_print_uint32(ndr, "num_controllers", r->num_controllers);
3281         ndr_print_ptr(ndr, "controller_names", r->controller_names);
3282         ndr->depth++;
3283         if (r->controller_names) {
3284                 ndr->print(ndr, "%s: ARRAY(%d)", "controller_names", r->num_controllers);
3285                 ndr->depth++;
3286                 for (cntr_controller_names_1=0;cntr_controller_names_1<r->num_controllers;cntr_controller_names_1++) {
3287                         char *idx_1=NULL;
3288                         asprintf(&idx_1, "[%d]", cntr_controller_names_1);
3289                         if (idx_1) {
3290                                 ndr_print_lsa_String(ndr, "controller_names", &r->controller_names[cntr_controller_names_1]);
3291                                 free(idx_1);
3292                         }
3293                 }
3294                 ndr->depth--;
3295         }
3296         ndr->depth--;
3297         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3298         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3299         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3300         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3301         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3302         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3303         ndr_print_uint32(ndr, "posix_offset", r->posix_offset);
3304         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3305         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3306         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3307         ndr->depth--;
3308 }
3309
3310 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_TRUST(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_TRUST *r)
3311 {
3312         if (ndr_flags & NDR_SCALARS) {
3313                 NDR_CHECK(ndr_push_align(ndr, 2));
3314                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3315         }
3316         if (ndr_flags & NDR_BUFFERS) {
3317         }
3318         return NDR_ERR_SUCCESS;
3319 }
3320
3321 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_TRUST(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_TRUST *r)
3322 {
3323         if (ndr_flags & NDR_SCALARS) {
3324                 NDR_CHECK(ndr_pull_align(ndr, 2));
3325                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3326         }
3327         if (ndr_flags & NDR_BUFFERS) {
3328         }
3329         return NDR_ERR_SUCCESS;
3330 }
3331
3332 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_TRUST(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_TRUST *r)
3333 {
3334         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_TRUST");
3335         ndr->depth++;
3336         ndr_print_uint16(ndr, "unknown", r->unknown);
3337         ndr->depth--;
3338 }
3339
3340 static enum ndr_err_code ndr_push_netr_DELTA_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ACCOUNT *r)
3341 {
3342         uint32_t cntr_privilege_attrib_1;
3343         uint32_t cntr_privilege_name_1;
3344         if (ndr_flags & NDR_SCALARS) {
3345                 NDR_CHECK(ndr_push_align(ndr, 4));
3346                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3347                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_control));
3348                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_attrib));
3349                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->privilege_name));
3350                 NDR_CHECK(ndr_push_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3351                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->system_flags));
3352                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3353                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3354                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3355                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3356                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3357                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3358                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3359                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3360                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3361                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3362         }
3363         if (ndr_flags & NDR_BUFFERS) {
3364                 if (r->privilege_attrib) {
3365                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3366                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3367                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_attrib[cntr_privilege_attrib_1]));
3368                         }
3369                 }
3370                 if (r->privilege_name) {
3371                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->privilege_entries));
3372                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3373                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3374                         }
3375                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3376                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3377                         }
3378                 }
3379                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3380                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3381                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3382                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3383                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3384         }
3385         return NDR_ERR_SUCCESS;
3386 }
3387
3388 static enum ndr_err_code ndr_pull_netr_DELTA_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ACCOUNT *r)
3389 {
3390         uint32_t _ptr_privilege_attrib;
3391         uint32_t cntr_privilege_attrib_1;
3392         TALLOC_CTX *_mem_save_privilege_attrib_0;
3393         TALLOC_CTX *_mem_save_privilege_attrib_1;
3394         uint32_t _ptr_privilege_name;
3395         uint32_t cntr_privilege_name_1;
3396         TALLOC_CTX *_mem_save_privilege_name_0;
3397         TALLOC_CTX *_mem_save_privilege_name_1;
3398         if (ndr_flags & NDR_SCALARS) {
3399                 NDR_CHECK(ndr_pull_align(ndr, 4));
3400                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_entries));
3401                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_control));
3402                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_attrib));
3403                 if (_ptr_privilege_attrib) {
3404                         NDR_PULL_ALLOC(ndr, r->privilege_attrib);
3405                 } else {
3406                         r->privilege_attrib = NULL;
3407                 }
3408                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_privilege_name));
3409                 if (_ptr_privilege_name) {
3410                         NDR_PULL_ALLOC(ndr, r->privilege_name);
3411                 } else {
3412                         r->privilege_name = NULL;
3413                 }
3414                 NDR_CHECK(ndr_pull_netr_QUOTA_LIMITS(ndr, NDR_SCALARS, &r->quotalimits));
3415                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->system_flags));
3416                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3417                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3418                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3419                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3420                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3421                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3422                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3423                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3424                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3425                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3426         }
3427         if (ndr_flags & NDR_BUFFERS) {
3428                 if (r->privilege_attrib) {
3429                         _mem_save_privilege_attrib_0 = NDR_PULL_GET_MEM_CTX(ndr);
3430                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3431                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_attrib));
3432                         NDR_PULL_ALLOC_N(ndr, r->privilege_attrib, ndr_get_array_size(ndr, &r->privilege_attrib));
3433                         _mem_save_privilege_attrib_1 = NDR_PULL_GET_MEM_CTX(ndr);
3434                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_attrib, 0);
3435                         for (cntr_privilege_attrib_1 = 0; cntr_privilege_attrib_1 < r->privilege_entries; cntr_privilege_attrib_1++) {
3436                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->privilege_attrib[cntr_privilege_attrib_1]));
3437                         }
3438                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_1, 0);
3439                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_attrib_0, 0);
3440                 }
3441                 if (r->privilege_name) {
3442                         _mem_save_privilege_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3443                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3444                         NDR_CHECK(ndr_pull_array_size(ndr, &r->privilege_name));
3445                         NDR_PULL_ALLOC_N(ndr, r->privilege_name, ndr_get_array_size(ndr, &r->privilege_name));
3446                         _mem_save_privilege_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
3447                         NDR_PULL_SET_MEM_CTX(ndr, r->privilege_name, 0);
3448                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3449                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->privilege_name[cntr_privilege_name_1]));
3450                         }
3451                         for (cntr_privilege_name_1 = 0; cntr_privilege_name_1 < r->privilege_entries; cntr_privilege_name_1++) {
3452                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->privilege_name[cntr_privilege_name_1]));
3453                         }
3454                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_1, 0);
3455                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_privilege_name_0, 0);
3456                 }
3457                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3458                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3459                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3460                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3461                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3462                 if (r->privilege_attrib) {
3463                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_attrib, r->privilege_entries));
3464                 }
3465                 if (r->privilege_name) {
3466                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->privilege_name, r->privilege_entries));
3467                 }
3468         }
3469         return NDR_ERR_SUCCESS;
3470 }
3471
3472 _PUBLIC_ void ndr_print_netr_DELTA_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ACCOUNT *r)
3473 {
3474         uint32_t cntr_privilege_attrib_1;
3475         uint32_t cntr_privilege_name_1;
3476         ndr_print_struct(ndr, name, "netr_DELTA_ACCOUNT");
3477         ndr->depth++;
3478         ndr_print_uint32(ndr, "privilege_entries", r->privilege_entries);
3479         ndr_print_uint32(ndr, "privilege_control", r->privilege_control);
3480         ndr_print_ptr(ndr, "privilege_attrib", r->privilege_attrib);
3481         ndr->depth++;
3482         if (r->privilege_attrib) {
3483                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_attrib", r->privilege_entries);
3484                 ndr->depth++;
3485                 for (cntr_privilege_attrib_1=0;cntr_privilege_attrib_1<r->privilege_entries;cntr_privilege_attrib_1++) {
3486                         char *idx_1=NULL;
3487                         asprintf(&idx_1, "[%d]", cntr_privilege_attrib_1);
3488                         if (idx_1) {
3489                                 ndr_print_uint32(ndr, "privilege_attrib", r->privilege_attrib[cntr_privilege_attrib_1]);
3490                                 free(idx_1);
3491                         }
3492                 }
3493                 ndr->depth--;
3494         }
3495         ndr->depth--;
3496         ndr_print_ptr(ndr, "privilege_name", r->privilege_name);
3497         ndr->depth++;
3498         if (r->privilege_name) {
3499                 ndr->print(ndr, "%s: ARRAY(%d)", "privilege_name", r->privilege_entries);
3500                 ndr->depth++;
3501                 for (cntr_privilege_name_1=0;cntr_privilege_name_1<r->privilege_entries;cntr_privilege_name_1++) {
3502                         char *idx_1=NULL;
3503                         asprintf(&idx_1, "[%d]", cntr_privilege_name_1);
3504                         if (idx_1) {
3505                                 ndr_print_lsa_String(ndr, "privilege_name", &r->privilege_name[cntr_privilege_name_1]);
3506                                 free(idx_1);
3507                         }
3508                 }
3509                 ndr->depth--;
3510         }
3511         ndr->depth--;
3512         ndr_print_netr_QUOTA_LIMITS(ndr, "quotalimits", &r->quotalimits);
3513         ndr_print_uint32(ndr, "system_flags", r->system_flags);
3514         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3515         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3516         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3517         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3518         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3519         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3520         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3521         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3522         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3523         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3524         ndr->depth--;
3525 }
3526
3527 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_ACCOUNT(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_ACCOUNT *r)
3528 {
3529         if (ndr_flags & NDR_SCALARS) {
3530                 NDR_CHECK(ndr_push_align(ndr, 2));
3531                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3532         }
3533         if (ndr_flags & NDR_BUFFERS) {
3534         }
3535         return NDR_ERR_SUCCESS;
3536 }
3537
3538 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_ACCOUNT(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_ACCOUNT *r)
3539 {
3540         if (ndr_flags & NDR_SCALARS) {
3541                 NDR_CHECK(ndr_pull_align(ndr, 2));
3542                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3543         }
3544         if (ndr_flags & NDR_BUFFERS) {
3545         }
3546         return NDR_ERR_SUCCESS;
3547 }
3548
3549 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_ACCOUNT(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_ACCOUNT *r)
3550 {
3551         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_ACCOUNT");
3552         ndr->depth++;
3553         ndr_print_uint16(ndr, "unknown", r->unknown);
3554         ndr->depth--;
3555 }
3556
3557 static enum ndr_err_code ndr_push_netr_DELTA_DELETE_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_DELETE_SECRET *r)
3558 {
3559         if (ndr_flags & NDR_SCALARS) {
3560                 NDR_CHECK(ndr_push_align(ndr, 2));
3561                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unknown));
3562         }
3563         if (ndr_flags & NDR_BUFFERS) {
3564         }
3565         return NDR_ERR_SUCCESS;
3566 }
3567
3568 static enum ndr_err_code ndr_pull_netr_DELTA_DELETE_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_DELETE_SECRET *r)
3569 {
3570         if (ndr_flags & NDR_SCALARS) {
3571                 NDR_CHECK(ndr_pull_align(ndr, 2));
3572                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unknown));
3573         }
3574         if (ndr_flags & NDR_BUFFERS) {
3575         }
3576         return NDR_ERR_SUCCESS;
3577 }
3578
3579 _PUBLIC_ void ndr_print_netr_DELTA_DELETE_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_DELETE_SECRET *r)
3580 {
3581         ndr_print_struct(ndr, name, "netr_DELTA_DELETE_SECRET");
3582         ndr->depth++;
3583         ndr_print_uint16(ndr, "unknown", r->unknown);
3584         ndr->depth--;
3585 }
3586
3587 static enum ndr_err_code ndr_push_netr_CIPHER_VALUE(struct ndr_push *ndr, int ndr_flags, const struct netr_CIPHER_VALUE *r)
3588 {
3589         if (ndr_flags & NDR_SCALARS) {
3590                 NDR_CHECK(ndr_push_align(ndr, 4));
3591                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3592                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3593                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->cipher_data));
3594         }
3595         if (ndr_flags & NDR_BUFFERS) {
3596                 if (r->cipher_data) {
3597                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->maxlen));
3598                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3599                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->len));
3600                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->cipher_data, r->len));
3601                 }
3602         }
3603         return NDR_ERR_SUCCESS;
3604 }
3605
3606 static enum ndr_err_code ndr_pull_netr_CIPHER_VALUE(struct ndr_pull *ndr, int ndr_flags, struct netr_CIPHER_VALUE *r)
3607 {
3608         uint32_t _ptr_cipher_data;
3609         TALLOC_CTX *_mem_save_cipher_data_0;
3610         if (ndr_flags & NDR_SCALARS) {
3611                 NDR_CHECK(ndr_pull_align(ndr, 4));
3612                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->len));
3613                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->maxlen));
3614                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_cipher_data));
3615                 if (_ptr_cipher_data) {
3616                         NDR_PULL_ALLOC(ndr, r->cipher_data);
3617                 } else {
3618                         r->cipher_data = NULL;
3619                 }
3620         }
3621         if (ndr_flags & NDR_BUFFERS) {
3622                 if (r->cipher_data) {
3623                         _mem_save_cipher_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
3624                         NDR_PULL_SET_MEM_CTX(ndr, r->cipher_data, 0);
3625                         NDR_CHECK(ndr_pull_array_size(ndr, &r->cipher_data));
3626                         NDR_CHECK(ndr_pull_array_length(ndr, &r->cipher_data));
3627                         if (ndr_get_array_length(ndr, &r->cipher_data) > ndr_get_array_size(ndr, &r->cipher_data)) {
3628                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->cipher_data), ndr_get_array_length(ndr, &r->cipher_data));
3629                         }
3630                         NDR_PULL_ALLOC_N(ndr, r->cipher_data, ndr_get_array_size(ndr, &r->cipher_data));
3631                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->cipher_data, ndr_get_array_length(ndr, &r->cipher_data)));
3632                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_cipher_data_0, 0);
3633                 }
3634                 if (r->cipher_data) {
3635                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->cipher_data, r->maxlen));
3636                 }
3637                 if (r->cipher_data) {
3638                         NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->cipher_data, r->len));
3639                 }
3640         }
3641         return NDR_ERR_SUCCESS;
3642 }
3643
3644 _PUBLIC_ void ndr_print_netr_CIPHER_VALUE(struct ndr_print *ndr, const char *name, const struct netr_CIPHER_VALUE *r)
3645 {
3646         ndr_print_struct(ndr, name, "netr_CIPHER_VALUE");
3647         ndr->depth++;
3648         ndr_print_uint32(ndr, "len", r->len);
3649         ndr_print_uint32(ndr, "maxlen", r->maxlen);
3650         ndr_print_ptr(ndr, "cipher_data", r->cipher_data);
3651         ndr->depth++;
3652         if (r->cipher_data) {
3653                 ndr_print_array_uint8(ndr, "cipher_data", r->cipher_data, r->len);
3654         }
3655         ndr->depth--;
3656         ndr->depth--;
3657 }
3658
3659 static enum ndr_err_code ndr_push_netr_DELTA_SECRET(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_SECRET *r)
3660 {
3661         if (ndr_flags & NDR_SCALARS) {
3662                 NDR_CHECK(ndr_push_align(ndr, 4));
3663                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3664                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->current_cipher_set_time));
3665                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3666                 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->old_cipher_set_time));
3667                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->SecurityInformation));
3668                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3669                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3670                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3671                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3672                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3673                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
3674                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown6));
3675                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7));
3676                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown8));
3677         }
3678         if (ndr_flags & NDR_BUFFERS) {
3679                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3680                 NDR_CHECK(ndr_push_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3681                 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3682                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3683                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3684                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3685                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3686         }
3687         return NDR_ERR_SUCCESS;
3688 }
3689
3690 static enum ndr_err_code ndr_pull_netr_DELTA_SECRET(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_SECRET *r)
3691 {
3692         if (ndr_flags & NDR_SCALARS) {
3693                 NDR_CHECK(ndr_pull_align(ndr, 4));
3694                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->current_cipher));
3695                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->current_cipher_set_time));
3696                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_SCALARS, &r->old_cipher));
3697                 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->old_cipher_set_time));
3698                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->SecurityInformation));
3699                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sdbuf));
3700                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown1));
3701                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown2));
3702                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown3));
3703                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown4));
3704                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
3705                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown6));
3706                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7));
3707                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown8));
3708         }
3709         if (ndr_flags & NDR_BUFFERS) {
3710                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->current_cipher));
3711                 NDR_CHECK(ndr_pull_netr_CIPHER_VALUE(ndr, NDR_BUFFERS, &r->old_cipher));
3712                 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sdbuf));
3713                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown1));
3714                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown2));
3715                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown3));
3716                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown4));
3717         }
3718         return NDR_ERR_SUCCESS;
3719 }
3720
3721 _PUBLIC_ void ndr_print_netr_DELTA_SECRET(struct ndr_print *ndr, const char *name, const struct netr_DELTA_SECRET *r)
3722 {
3723         ndr_print_struct(ndr, name, "netr_DELTA_SECRET");
3724         ndr->depth++;
3725         ndr_print_netr_CIPHER_VALUE(ndr, "current_cipher", &r->current_cipher);
3726         ndr_print_NTTIME(ndr, "current_cipher_set_time", r->current_cipher_set_time);
3727         ndr_print_netr_CIPHER_VALUE(ndr, "old_cipher", &r->old_cipher);
3728         ndr_print_NTTIME(ndr, "old_cipher_set_time", r->old_cipher_set_time);
3729         ndr_print_uint32(ndr, "SecurityInformation", r->SecurityInformation);
3730         ndr_print_sec_desc_buf(ndr, "sdbuf", &r->sdbuf);
3731         ndr_print_lsa_String(ndr, "unknown1", &r->unknown1);
3732         ndr_print_lsa_String(ndr, "unknown2", &r->unknown2);
3733         ndr_print_lsa_String(ndr, "unknown3", &r->unknown3);
3734         ndr_print_lsa_String(ndr, "unknown4", &r->unknown4);
3735         ndr_print_uint32(ndr, "unknown5", r->unknown5);
3736         ndr_print_uint32(ndr, "unknown6", r->unknown6);
3737         ndr_print_uint32(ndr, "unknown7", r->unknown7);
3738         ndr_print_uint32(ndr, "unknown8", r->unknown8);
3739         ndr->depth--;
3740 }
3741
3742 static enum ndr_err_code ndr_push_netr_DeltaEnum(struct ndr_push *ndr, int ndr_flags, enum netr_DeltaEnum r)
3743 {
3744         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
3745         return NDR_ERR_SUCCESS;
3746 }
3747
3748 static enum ndr_err_code ndr_pull_netr_DeltaEnum(struct ndr_pull *ndr, int ndr_flags, enum netr_DeltaEnum *r)
3749 {
3750         uint16_t v;
3751         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
3752         *r = v;
3753         return NDR_ERR_SUCCESS;
3754 }
3755
3756 _PUBLIC_ void ndr_print_netr_DeltaEnum(struct ndr_print *ndr, const char *name, enum netr_DeltaEnum r)
3757 {
3758         const char *val = NULL;
3759
3760         switch (r) {
3761                 case NETR_DELTA_DOMAIN: val = "NETR_DELTA_DOMAIN"; break;
3762                 case NETR_DELTA_GROUP: val = "NETR_DELTA_GROUP"; break;
3763                 case NETR_DELTA_DELETE_GROUP: val = "NETR_DELTA_DELETE_GROUP"; break;
3764                 case NETR_DELTA_RENAME_GROUP: val = "NETR_DELTA_RENAME_GROUP"; break;
3765                 case NETR_DELTA_USER: val = "NETR_DELTA_USER"; break;
3766                 case NETR_DELTA_DELETE_USER: val = "NETR_DELTA_DELETE_USER"; break;
3767                 case NETR_DELTA_RENAME_USER: val = "NETR_DELTA_RENAME_USER"; break;
3768                 case NETR_DELTA_GROUP_MEMBER: val = "NETR_DELTA_GROUP_MEMBER"; break;
3769                 case NETR_DELTA_ALIAS: val = "NETR_DELTA_ALIAS"; break;
3770                 case NETR_DELTA_DELETE_ALIAS: val = "NETR_DELTA_DELETE_ALIAS"; break;
3771                 case NETR_DELTA_RENAME_ALIAS: val = "NETR_DELTA_RENAME_ALIAS"; break;
3772                 case NETR_DELTA_ALIAS_MEMBER: val = "NETR_DELTA_ALIAS_MEMBER"; break;
3773                 case NETR_DELTA_POLICY: val = "NETR_DELTA_POLICY"; break;
3774                 case NETR_DELTA_TRUSTED_DOMAIN: val = "NETR_DELTA_TRUSTED_DOMAIN"; break;
3775                 case NETR_DELTA_DELETE_TRUST: val = "NETR_DELTA_DELETE_TRUST"; break;
3776                 case NETR_DELTA_ACCOUNT: val = "NETR_DELTA_ACCOUNT"; break;
3777                 case NETR_DELTA_DELETE_ACCOUNT: val = "NETR_DELTA_DELETE_ACCOUNT"; break;
3778                 case NETR_DELTA_SECRET: val = "NETR_DELTA_SECRET"; break;
3779                 case NETR_DELTA_DELETE_SECRET: val = "NETR_DELTA_DELETE_SECRET"; break;
3780                 case NETR_DELTA_DELETE_GROUP2: val = "NETR_DELTA_DELETE_GROUP2"; break;
3781                 case NETR_DELTA_DELETE_USER2: val = "NETR_DELTA_DELETE_USER2"; break;
3782                 case NETR_DELTA_MODIFY_COUNT: val = "NETR_DELTA_MODIFY_COUNT"; break;
3783         }
3784         ndr_print_enum(ndr, name, "ENUM", val, r);
3785 }
3786
3787 static enum ndr_err_code ndr_push_netr_DELTA_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_UNION *r)
3788 {
3789         if (ndr_flags & NDR_SCALARS) {
3790                 int level = ndr_push_get_switch_value(ndr, r);
3791                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
3792                 switch (level) {
3793                         case NETR_DELTA_DOMAIN: {
3794                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
3795                         break; }
3796
3797                         case NETR_DELTA_GROUP: {
3798                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group));
3799                         break; }
3800
3801                         case NETR_DELTA_DELETE_GROUP: {
3802                         break; }
3803
3804                         case NETR_DELTA_RENAME_GROUP: {
3805                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_group));
3806                         break; }
3807
3808                         case NETR_DELTA_USER: {
3809                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
3810                         break; }
3811
3812                         case NETR_DELTA_DELETE_USER: {
3813                         break; }
3814
3815                         case NETR_DELTA_RENAME_USER: {
3816                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_user));
3817                         break; }
3818
3819                         case NETR_DELTA_GROUP_MEMBER: {
3820                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->group_member));
3821                         break; }
3822
3823                         case NETR_DELTA_ALIAS: {
3824                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias));
3825                         break; }
3826
3827                         case NETR_DELTA_DELETE_ALIAS: {
3828                         break; }
3829
3830                         case NETR_DELTA_RENAME_ALIAS: {
3831                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->rename_alias));
3832                         break; }
3833
3834                         case NETR_DELTA_ALIAS_MEMBER: {
3835                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->alias_member));
3836                         break; }
3837
3838                         case NETR_DELTA_POLICY: {
3839                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->policy));
3840                         break; }
3841
3842                         case NETR_DELTA_TRUSTED_DOMAIN: {
3843                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusted_domain));
3844                         break; }
3845
3846                         case NETR_DELTA_DELETE_TRUST: {
3847                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
3848                         break; }
3849
3850                         case NETR_DELTA_ACCOUNT: {
3851                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->account));
3852                         break; }
3853
3854                         case NETR_DELTA_DELETE_ACCOUNT: {
3855                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
3856                         break; }
3857
3858                         case NETR_DELTA_SECRET: {
3859                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secret));
3860                         break; }
3861
3862                         case NETR_DELTA_DELETE_SECRET: {
3863                                 NDR_CHECK(ndr_push_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
3864                         break; }
3865
3866                         case NETR_DELTA_DELETE_GROUP2: {
3867                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_group));
3868                         break; }
3869
3870                         case NETR_DELTA_DELETE_USER2: {
3871                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delete_user));
3872                         break; }
3873
3874                         case NETR_DELTA_MODIFY_COUNT: {
3875                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->modified_count));
3876                         break; }
3877
3878                         default:
3879                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
3880                 }
3881         }
3882         if (ndr_flags & NDR_BUFFERS) {
3883                 int level = ndr_push_get_switch_value(ndr, r);
3884                 switch (level) {
3885                         case NETR_DELTA_DOMAIN:
3886                                 if (r->domain) {
3887                                         NDR_CHECK(ndr_push_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
3888                                 }
3889                         break;
3890
3891                         case NETR_DELTA_GROUP:
3892                                 if (r->group) {
3893                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
3894                                 }
3895                         break;
3896
3897                         case NETR_DELTA_DELETE_GROUP:
3898                         break;
3899
3900                         case NETR_DELTA_RENAME_GROUP:
3901                                 if (r->rename_group) {
3902                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
3903                                 }
3904                         break;
3905
3906                         case NETR_DELTA_USER:
3907                                 if (r->user) {
3908                                         NDR_CHECK(ndr_push_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
3909                                 }
3910                         break;
3911
3912                         case NETR_DELTA_DELETE_USER:
3913                         break;
3914
3915                         case NETR_DELTA_RENAME_USER:
3916                                 if (r->rename_user) {
3917                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
3918                                 }
3919                         break;
3920
3921                         case NETR_DELTA_GROUP_MEMBER:
3922                                 if (r->group_member) {
3923                                         NDR_CHECK(ndr_push_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
3924                                 }
3925                         break;
3926
3927                         case NETR_DELTA_ALIAS:
3928                                 if (r->alias) {
3929                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
3930                                 }
3931                         break;
3932
3933                         case NETR_DELTA_DELETE_ALIAS:
3934                         break;
3935
3936                         case NETR_DELTA_RENAME_ALIAS:
3937                                 if (r->rename_alias) {
3938                                         NDR_CHECK(ndr_push_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
3939                                 }
3940                         break;
3941
3942                         case NETR_DELTA_ALIAS_MEMBER:
3943                                 if (r->alias_member) {
3944                                         NDR_CHECK(ndr_push_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
3945                                 }
3946                         break;
3947
3948                         case NETR_DELTA_POLICY:
3949                                 if (r->policy) {
3950                                         NDR_CHECK(ndr_push_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
3951                                 }
3952                         break;
3953
3954                         case NETR_DELTA_TRUSTED_DOMAIN:
3955                                 if (r->trusted_domain) {
3956                                         NDR_CHECK(ndr_push_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
3957                                 }
3958                         break;
3959
3960                         case NETR_DELTA_DELETE_TRUST:
3961                         break;
3962
3963                         case NETR_DELTA_ACCOUNT:
3964                                 if (r->account) {
3965                                         NDR_CHECK(ndr_push_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
3966                                 }
3967                         break;
3968
3969                         case NETR_DELTA_DELETE_ACCOUNT:
3970                         break;
3971
3972                         case NETR_DELTA_SECRET:
3973                                 if (r->secret) {
3974                                         NDR_CHECK(ndr_push_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
3975                                 }
3976                         break;
3977
3978                         case NETR_DELTA_DELETE_SECRET:
3979                         break;
3980
3981                         case NETR_DELTA_DELETE_GROUP2:
3982                                 if (r->delete_group) {
3983                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
3984                                 }
3985                         break;
3986
3987                         case NETR_DELTA_DELETE_USER2:
3988                                 if (r->delete_user) {
3989                                         NDR_CHECK(ndr_push_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
3990                                 }
3991                         break;
3992
3993                         case NETR_DELTA_MODIFY_COUNT:
3994                                 if (r->modified_count) {
3995                                         NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->modified_count));
3996                                 }
3997                         break;
3998
3999                         default:
4000                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4001                 }
4002         }
4003         return NDR_ERR_SUCCESS;
4004 }
4005
4006 static enum ndr_err_code ndr_pull_netr_DELTA_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_UNION *r)
4007 {
4008         int level;
4009         uint16_t _level;
4010         TALLOC_CTX *_mem_save_domain_0;
4011         TALLOC_CTX *_mem_save_group_0;
4012         TALLOC_CTX *_mem_save_rename_group_0;
4013         TALLOC_CTX *_mem_save_user_0;
4014         TALLOC_CTX *_mem_save_rename_user_0;
4015         TALLOC_CTX *_mem_save_group_member_0;
4016         TALLOC_CTX *_mem_save_alias_0;
4017         TALLOC_CTX *_mem_save_rename_alias_0;
4018         TALLOC_CTX *_mem_save_alias_member_0;
4019         TALLOC_CTX *_mem_save_policy_0;
4020         TALLOC_CTX *_mem_save_trusted_domain_0;
4021         TALLOC_CTX *_mem_save_account_0;
4022         TALLOC_CTX *_mem_save_secret_0;
4023         TALLOC_CTX *_mem_save_delete_group_0;
4024         TALLOC_CTX *_mem_save_delete_user_0;
4025         TALLOC_CTX *_mem_save_modified_count_0;
4026         level = ndr_pull_get_switch_value(ndr, r);
4027         if (ndr_flags & NDR_SCALARS) {
4028                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4029                 if (_level != level) {
4030                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4031                 }
4032                 switch (level) {
4033                         case NETR_DELTA_DOMAIN: {
4034                                 uint32_t _ptr_domain;
4035                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
4036                                 if (_ptr_domain) {
4037                                         NDR_PULL_ALLOC(ndr, r->domain);
4038                                 } else {
4039                                         r->domain = NULL;
4040                                 }
4041                         break; }
4042
4043                         case NETR_DELTA_GROUP: {
4044                                 uint32_t _ptr_group;
4045                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group));
4046                                 if (_ptr_group) {
4047                                         NDR_PULL_ALLOC(ndr, r->group);
4048                                 } else {
4049                                         r->group = NULL;
4050                                 }
4051                         break; }
4052
4053                         case NETR_DELTA_DELETE_GROUP: {
4054                         break; }
4055
4056                         case NETR_DELTA_RENAME_GROUP: {
4057                                 uint32_t _ptr_rename_group;
4058                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_group));
4059                                 if (_ptr_rename_group) {
4060                                         NDR_PULL_ALLOC(ndr, r->rename_group);
4061                                 } else {
4062                                         r->rename_group = NULL;
4063                                 }
4064                         break; }
4065
4066                         case NETR_DELTA_USER: {
4067                                 uint32_t _ptr_user;
4068                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
4069                                 if (_ptr_user) {
4070                                         NDR_PULL_ALLOC(ndr, r->user);
4071                                 } else {
4072                                         r->user = NULL;
4073                                 }
4074                         break; }
4075
4076                         case NETR_DELTA_DELETE_USER: {
4077                         break; }
4078
4079                         case NETR_DELTA_RENAME_USER: {
4080                                 uint32_t _ptr_rename_user;
4081                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_user));
4082                                 if (_ptr_rename_user) {
4083                                         NDR_PULL_ALLOC(ndr, r->rename_user);
4084                                 } else {
4085                                         r->rename_user = NULL;
4086                                 }
4087                         break; }
4088
4089                         case NETR_DELTA_GROUP_MEMBER: {
4090                                 uint32_t _ptr_group_member;
4091                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_group_member));
4092                                 if (_ptr_group_member) {
4093                                         NDR_PULL_ALLOC(ndr, r->group_member);
4094                                 } else {
4095                                         r->group_member = NULL;
4096                                 }
4097                         break; }
4098
4099                         case NETR_DELTA_ALIAS: {
4100                                 uint32_t _ptr_alias;
4101                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias));
4102                                 if (_ptr_alias) {
4103                                         NDR_PULL_ALLOC(ndr, r->alias);
4104                                 } else {
4105                                         r->alias = NULL;
4106                                 }
4107                         break; }
4108
4109                         case NETR_DELTA_DELETE_ALIAS: {
4110                         break; }
4111
4112                         case NETR_DELTA_RENAME_ALIAS: {
4113                                 uint32_t _ptr_rename_alias;
4114                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_rename_alias));
4115                                 if (_ptr_rename_alias) {
4116                                         NDR_PULL_ALLOC(ndr, r->rename_alias);
4117                                 } else {
4118                                         r->rename_alias = NULL;
4119                                 }
4120                         break; }
4121
4122                         case NETR_DELTA_ALIAS_MEMBER: {
4123                                 uint32_t _ptr_alias_member;
4124                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_alias_member));
4125                                 if (_ptr_alias_member) {
4126                                         NDR_PULL_ALLOC(ndr, r->alias_member);
4127                                 } else {
4128                                         r->alias_member = NULL;
4129                                 }
4130                         break; }
4131
4132                         case NETR_DELTA_POLICY: {
4133                                 uint32_t _ptr_policy;
4134                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_policy));
4135                                 if (_ptr_policy) {
4136                                         NDR_PULL_ALLOC(ndr, r->policy);
4137                                 } else {
4138                                         r->policy = NULL;
4139                                 }
4140                         break; }
4141
4142                         case NETR_DELTA_TRUSTED_DOMAIN: {
4143                                 uint32_t _ptr_trusted_domain;
4144                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain));
4145                                 if (_ptr_trusted_domain) {
4146                                         NDR_PULL_ALLOC(ndr, r->trusted_domain);
4147                                 } else {
4148                                         r->trusted_domain = NULL;
4149                                 }
4150                         break; }
4151
4152                         case NETR_DELTA_DELETE_TRUST: {
4153                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_TRUST(ndr, NDR_SCALARS, &r->delete_trust));
4154                         break; }
4155
4156                         case NETR_DELTA_ACCOUNT: {
4157                                 uint32_t _ptr_account;
4158                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_account));
4159                                 if (_ptr_account) {
4160                                         NDR_PULL_ALLOC(ndr, r->account);
4161                                 } else {
4162                                         r->account = NULL;
4163                                 }
4164                         break; }
4165
4166                         case NETR_DELTA_DELETE_ACCOUNT: {
4167                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_ACCOUNT(ndr, NDR_SCALARS, &r->delete_account));
4168                         break; }
4169
4170                         case NETR_DELTA_SECRET: {
4171                                 uint32_t _ptr_secret;
4172                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secret));
4173                                 if (_ptr_secret) {
4174                                         NDR_PULL_ALLOC(ndr, r->secret);
4175                                 } else {
4176                                         r->secret = NULL;
4177                                 }
4178                         break; }
4179
4180                         case NETR_DELTA_DELETE_SECRET: {
4181                                 NDR_CHECK(ndr_pull_netr_DELTA_DELETE_SECRET(ndr, NDR_SCALARS, &r->delete_secret));
4182                         break; }
4183
4184                         case NETR_DELTA_DELETE_GROUP2: {
4185                                 uint32_t _ptr_delete_group;
4186                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_group));
4187                                 if (_ptr_delete_group) {
4188                                         NDR_PULL_ALLOC(ndr, r->delete_group);
4189                                 } else {
4190                                         r->delete_group = NULL;
4191                                 }
4192                         break; }
4193
4194                         case NETR_DELTA_DELETE_USER2: {
4195                                 uint32_t _ptr_delete_user;
4196                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delete_user));
4197                                 if (_ptr_delete_user) {
4198                                         NDR_PULL_ALLOC(ndr, r->delete_user);
4199                                 } else {
4200                                         r->delete_user = NULL;
4201                                 }
4202                         break; }
4203
4204                         case NETR_DELTA_MODIFY_COUNT: {
4205                                 uint32_t _ptr_modified_count;
4206                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_modified_count));
4207                                 if (_ptr_modified_count) {
4208                                         NDR_PULL_ALLOC(ndr, r->modified_count);
4209                                 } else {
4210                                         r->modified_count = NULL;
4211                                 }
4212                         break; }
4213
4214                         default:
4215                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4216                 }
4217         }
4218         if (ndr_flags & NDR_BUFFERS) {
4219                 switch (level) {
4220                         case NETR_DELTA_DOMAIN:
4221                                 if (r->domain) {
4222                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4223                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
4224                                         NDR_CHECK(ndr_pull_netr_DELTA_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->domain));
4225                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
4226                                 }
4227                         break;
4228
4229                         case NETR_DELTA_GROUP:
4230                                 if (r->group) {
4231                                         _mem_save_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4232                                         NDR_PULL_SET_MEM_CTX(ndr, r->group, 0);
4233                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP(ndr, NDR_SCALARS|NDR_BUFFERS, r->group));
4234                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_0, 0);
4235                                 }
4236                         break;
4237
4238                         case NETR_DELTA_DELETE_GROUP:
4239                         break;
4240
4241                         case NETR_DELTA_RENAME_GROUP:
4242                                 if (r->rename_group) {
4243                                         _mem_save_rename_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4244                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_group, 0);
4245                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_group));
4246                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_group_0, 0);
4247                                 }
4248                         break;
4249
4250                         case NETR_DELTA_USER:
4251                                 if (r->user) {
4252                                         _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4253                                         NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
4254                                         NDR_CHECK(ndr_pull_netr_DELTA_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->user));
4255                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
4256                                 }
4257                         break;
4258
4259                         case NETR_DELTA_DELETE_USER:
4260                         break;
4261
4262                         case NETR_DELTA_RENAME_USER:
4263                                 if (r->rename_user) {
4264                                         _mem_save_rename_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4265                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_user, 0);
4266                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_user));
4267                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_user_0, 0);
4268                                 }
4269                         break;
4270
4271                         case NETR_DELTA_GROUP_MEMBER:
4272                                 if (r->group_member) {
4273                                         _mem_save_group_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4274                                         NDR_PULL_SET_MEM_CTX(ndr, r->group_member, 0);
4275                                         NDR_CHECK(ndr_pull_netr_DELTA_GROUP_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->group_member));
4276                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_group_member_0, 0);
4277                                 }
4278                         break;
4279
4280                         case NETR_DELTA_ALIAS:
4281                                 if (r->alias) {
4282                                         _mem_save_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4283                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias, 0);
4284                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias));
4285                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_0, 0);
4286                                 }
4287                         break;
4288
4289                         case NETR_DELTA_DELETE_ALIAS:
4290                         break;
4291
4292                         case NETR_DELTA_RENAME_ALIAS:
4293                                 if (r->rename_alias) {
4294                                         _mem_save_rename_alias_0 = NDR_PULL_GET_MEM_CTX(ndr);
4295                                         NDR_PULL_SET_MEM_CTX(ndr, r->rename_alias, 0);
4296                                         NDR_CHECK(ndr_pull_netr_DELTA_RENAME(ndr, NDR_SCALARS|NDR_BUFFERS, r->rename_alias));
4297                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rename_alias_0, 0);
4298                                 }
4299                         break;
4300
4301                         case NETR_DELTA_ALIAS_MEMBER:
4302                                 if (r->alias_member) {
4303                                         _mem_save_alias_member_0 = NDR_PULL_GET_MEM_CTX(ndr);
4304                                         NDR_PULL_SET_MEM_CTX(ndr, r->alias_member, 0);
4305                                         NDR_CHECK(ndr_pull_netr_DELTA_ALIAS_MEMBER(ndr, NDR_SCALARS|NDR_BUFFERS, r->alias_member));
4306                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_alias_member_0, 0);
4307                                 }
4308                         break;
4309
4310                         case NETR_DELTA_POLICY:
4311                                 if (r->policy) {
4312                                         _mem_save_policy_0 = NDR_PULL_GET_MEM_CTX(ndr);
4313                                         NDR_PULL_SET_MEM_CTX(ndr, r->policy, 0);
4314                                         NDR_CHECK(ndr_pull_netr_DELTA_POLICY(ndr, NDR_SCALARS|NDR_BUFFERS, r->policy));
4315                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_policy_0, 0);
4316                                 }
4317                         break;
4318
4319                         case NETR_DELTA_TRUSTED_DOMAIN:
4320                                 if (r->trusted_domain) {
4321                                         _mem_save_trusted_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
4322                                         NDR_PULL_SET_MEM_CTX(ndr, r->trusted_domain, 0);
4323                                         NDR_CHECK(ndr_pull_netr_DELTA_TRUSTED_DOMAIN(ndr, NDR_SCALARS|NDR_BUFFERS, r->trusted_domain));
4324                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_0, 0);
4325                                 }
4326                         break;
4327
4328                         case NETR_DELTA_DELETE_TRUST:
4329                         break;
4330
4331                         case NETR_DELTA_ACCOUNT:
4332                                 if (r->account) {
4333                                         _mem_save_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
4334                                         NDR_PULL_SET_MEM_CTX(ndr, r->account, 0);
4335                                         NDR_CHECK(ndr_pull_netr_DELTA_ACCOUNT(ndr, NDR_SCALARS|NDR_BUFFERS, r->account));
4336                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_account_0, 0);
4337                                 }
4338                         break;
4339
4340                         case NETR_DELTA_DELETE_ACCOUNT:
4341                         break;
4342
4343                         case NETR_DELTA_SECRET:
4344                                 if (r->secret) {
4345                                         _mem_save_secret_0 = NDR_PULL_GET_MEM_CTX(ndr);
4346                                         NDR_PULL_SET_MEM_CTX(ndr, r->secret, 0);
4347                                         NDR_CHECK(ndr_pull_netr_DELTA_SECRET(ndr, NDR_SCALARS|NDR_BUFFERS, r->secret));
4348                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secret_0, 0);
4349                                 }
4350                         break;
4351
4352                         case NETR_DELTA_DELETE_SECRET:
4353                         break;
4354
4355                         case NETR_DELTA_DELETE_GROUP2:
4356                                 if (r->delete_group) {
4357                                         _mem_save_delete_group_0 = NDR_PULL_GET_MEM_CTX(ndr);
4358                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_group, 0);
4359                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_group));
4360                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_group_0, 0);
4361                                 }
4362                         break;
4363
4364                         case NETR_DELTA_DELETE_USER2:
4365                                 if (r->delete_user) {
4366                                         _mem_save_delete_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
4367                                         NDR_PULL_SET_MEM_CTX(ndr, r->delete_user, 0);
4368                                         NDR_CHECK(ndr_pull_netr_DELTA_DELETE_USER(ndr, NDR_SCALARS|NDR_BUFFERS, r->delete_user));
4369                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delete_user_0, 0);
4370                                 }
4371                         break;
4372
4373                         case NETR_DELTA_MODIFY_COUNT:
4374                                 if (r->modified_count) {
4375                                         _mem_save_modified_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
4376                                         NDR_PULL_SET_MEM_CTX(ndr, r->modified_count, 0);
4377                                         NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->modified_count));
4378                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_modified_count_0, 0);
4379                                 }
4380                         break;
4381
4382                         default:
4383                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4384                 }
4385         }
4386         return NDR_ERR_SUCCESS;
4387 }
4388
4389 _PUBLIC_ void ndr_print_netr_DELTA_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_UNION *r)
4390 {
4391         int level;
4392         level = ndr_print_get_switch_value(ndr, r);
4393         ndr_print_union(ndr, name, level, "netr_DELTA_UNION");
4394         switch (level) {
4395                 case NETR_DELTA_DOMAIN:
4396                         ndr_print_ptr(ndr, "domain", r->domain);
4397                         ndr->depth++;
4398                         if (r->domain) {
4399                                 ndr_print_netr_DELTA_DOMAIN(ndr, "domain", r->domain);
4400                         }
4401                         ndr->depth--;
4402                 break;
4403
4404                 case NETR_DELTA_GROUP:
4405                         ndr_print_ptr(ndr, "group", r->group);
4406                         ndr->depth++;
4407                         if (r->group) {
4408                                 ndr_print_netr_DELTA_GROUP(ndr, "group", r->group);
4409                         }
4410                         ndr->depth--;
4411                 break;
4412
4413                 case NETR_DELTA_DELETE_GROUP:
4414                 break;
4415
4416                 case NETR_DELTA_RENAME_GROUP:
4417                         ndr_print_ptr(ndr, "rename_group", r->rename_group);
4418                         ndr->depth++;
4419                         if (r->rename_group) {
4420                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_group", r->rename_group);
4421                         }
4422                         ndr->depth--;
4423                 break;
4424
4425                 case NETR_DELTA_USER:
4426                         ndr_print_ptr(ndr, "user", r->user);
4427                         ndr->depth++;
4428                         if (r->user) {
4429                                 ndr_print_netr_DELTA_USER(ndr, "user", r->user);
4430                         }
4431                         ndr->depth--;
4432                 break;
4433
4434                 case NETR_DELTA_DELETE_USER:
4435                 break;
4436
4437                 case NETR_DELTA_RENAME_USER:
4438                         ndr_print_ptr(ndr, "rename_user", r->rename_user);
4439                         ndr->depth++;
4440                         if (r->rename_user) {
4441                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_user", r->rename_user);
4442                         }
4443                         ndr->depth--;
4444                 break;
4445
4446                 case NETR_DELTA_GROUP_MEMBER:
4447                         ndr_print_ptr(ndr, "group_member", r->group_member);
4448                         ndr->depth++;
4449                         if (r->group_member) {
4450                                 ndr_print_netr_DELTA_GROUP_MEMBER(ndr, "group_member", r->group_member);
4451                         }
4452                         ndr->depth--;
4453                 break;
4454
4455                 case NETR_DELTA_ALIAS:
4456                         ndr_print_ptr(ndr, "alias", r->alias);
4457                         ndr->depth++;
4458                         if (r->alias) {
4459                                 ndr_print_netr_DELTA_ALIAS(ndr, "alias", r->alias);
4460                         }
4461                         ndr->depth--;
4462                 break;
4463
4464                 case NETR_DELTA_DELETE_ALIAS:
4465                 break;
4466
4467                 case NETR_DELTA_RENAME_ALIAS:
4468                         ndr_print_ptr(ndr, "rename_alias", r->rename_alias);
4469                         ndr->depth++;
4470                         if (r->rename_alias) {
4471                                 ndr_print_netr_DELTA_RENAME(ndr, "rename_alias", r->rename_alias);
4472                         }
4473                         ndr->depth--;
4474                 break;
4475
4476                 case NETR_DELTA_ALIAS_MEMBER:
4477                         ndr_print_ptr(ndr, "alias_member", r->alias_member);
4478                         ndr->depth++;
4479                         if (r->alias_member) {
4480                                 ndr_print_netr_DELTA_ALIAS_MEMBER(ndr, "alias_member", r->alias_member);
4481                         }
4482                         ndr->depth--;
4483                 break;
4484
4485                 case NETR_DELTA_POLICY:
4486                         ndr_print_ptr(ndr, "policy", r->policy);
4487                         ndr->depth++;
4488                         if (r->policy) {
4489                                 ndr_print_netr_DELTA_POLICY(ndr, "policy", r->policy);
4490                         }
4491                         ndr->depth--;
4492                 break;
4493
4494                 case NETR_DELTA_TRUSTED_DOMAIN:
4495                         ndr_print_ptr(ndr, "trusted_domain", r->trusted_domain);
4496                         ndr->depth++;
4497                         if (r->trusted_domain) {
4498                                 ndr_print_netr_DELTA_TRUSTED_DOMAIN(ndr, "trusted_domain", r->trusted_domain);
4499                         }
4500                         ndr->depth--;
4501                 break;
4502
4503                 case NETR_DELTA_DELETE_TRUST:
4504                         ndr_print_netr_DELTA_DELETE_TRUST(ndr, "delete_trust", &r->delete_trust);
4505                 break;
4506
4507                 case NETR_DELTA_ACCOUNT:
4508                         ndr_print_ptr(ndr, "account", r->account);
4509                         ndr->depth++;
4510                         if (r->account) {
4511                                 ndr_print_netr_DELTA_ACCOUNT(ndr, "account", r->account);
4512                         }
4513                         ndr->depth--;
4514                 break;
4515
4516                 case NETR_DELTA_DELETE_ACCOUNT:
4517                         ndr_print_netr_DELTA_DELETE_ACCOUNT(ndr, "delete_account", &r->delete_account);
4518                 break;
4519
4520                 case NETR_DELTA_SECRET:
4521                         ndr_print_ptr(ndr, "secret", r->secret);
4522                         ndr->depth++;
4523                         if (r->secret) {
4524                                 ndr_print_netr_DELTA_SECRET(ndr, "secret", r->secret);
4525                         }
4526                         ndr->depth--;
4527                 break;
4528
4529                 case NETR_DELTA_DELETE_SECRET:
4530                         ndr_print_netr_DELTA_DELETE_SECRET(ndr, "delete_secret", &r->delete_secret);
4531                 break;
4532
4533                 case NETR_DELTA_DELETE_GROUP2:
4534                         ndr_print_ptr(ndr, "delete_group", r->delete_group);
4535                         ndr->depth++;
4536                         if (r->delete_group) {
4537                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_group", r->delete_group);
4538                         }
4539                         ndr->depth--;
4540                 break;
4541
4542                 case NETR_DELTA_DELETE_USER2:
4543                         ndr_print_ptr(ndr, "delete_user", r->delete_user);
4544                         ndr->depth++;
4545                         if (r->delete_user) {
4546                                 ndr_print_netr_DELTA_DELETE_USER(ndr, "delete_user", r->delete_user);
4547                         }
4548                         ndr->depth--;
4549                 break;
4550
4551                 case NETR_DELTA_MODIFY_COUNT:
4552                         ndr_print_ptr(ndr, "modified_count", r->modified_count);
4553                         ndr->depth++;
4554                         if (r->modified_count) {
4555                                 ndr_print_udlong(ndr, "modified_count", *r->modified_count);
4556                         }
4557                         ndr->depth--;
4558                 break;
4559
4560                 default:
4561                         ndr_print_bad_level(ndr, name, level);
4562         }
4563 }
4564
4565 static enum ndr_err_code ndr_push_netr_DELTA_ID_UNION(struct ndr_push *ndr, int ndr_flags, const union netr_DELTA_ID_UNION *r)
4566 {
4567         if (ndr_flags & NDR_SCALARS) {
4568                 int level = ndr_push_get_switch_value(ndr, r);
4569                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, level));
4570                 switch (level) {
4571                         case NETR_DELTA_DOMAIN: {
4572                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4573                         break; }
4574
4575                         case NETR_DELTA_GROUP: {
4576                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4577                         break; }
4578
4579                         case NETR_DELTA_DELETE_GROUP: {
4580                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4581                         break; }
4582
4583                         case NETR_DELTA_RENAME_GROUP: {
4584                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4585                         break; }
4586
4587                         case NETR_DELTA_USER: {
4588                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4589                         break; }
4590
4591                         case NETR_DELTA_DELETE_USER: {
4592                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4593                         break; }
4594
4595                         case NETR_DELTA_RENAME_USER: {
4596                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4597                         break; }
4598
4599                         case NETR_DELTA_GROUP_MEMBER: {
4600                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4601                         break; }
4602
4603                         case NETR_DELTA_ALIAS: {
4604                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4605                         break; }
4606
4607                         case NETR_DELTA_DELETE_ALIAS: {
4608                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4609                         break; }
4610
4611                         case NETR_DELTA_RENAME_ALIAS: {
4612                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4613                         break; }
4614
4615                         case NETR_DELTA_ALIAS_MEMBER: {
4616                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4617                         break; }
4618
4619                         case NETR_DELTA_POLICY: {
4620                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4621                         break; }
4622
4623                         case NETR_DELTA_TRUSTED_DOMAIN: {
4624                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4625                         break; }
4626
4627                         case NETR_DELTA_DELETE_TRUST: {
4628                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4629                         break; }
4630
4631                         case NETR_DELTA_ACCOUNT: {
4632                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4633                         break; }
4634
4635                         case NETR_DELTA_DELETE_ACCOUNT: {
4636                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
4637                         break; }
4638
4639                         case NETR_DELTA_SECRET: {
4640                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4641                         break; }
4642
4643                         case NETR_DELTA_DELETE_SECRET: {
4644                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
4645                         break; }
4646
4647                         case NETR_DELTA_DELETE_GROUP2: {
4648                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4649                         break; }
4650
4651                         case NETR_DELTA_DELETE_USER2: {
4652                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rid));
4653                         break; }
4654
4655                         case NETR_DELTA_MODIFY_COUNT: {
4656                         break; }
4657
4658                         default:
4659                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4660                 }
4661         }
4662         if (ndr_flags & NDR_BUFFERS) {
4663                 int level = ndr_push_get_switch_value(ndr, r);
4664                 switch (level) {
4665                         case NETR_DELTA_DOMAIN:
4666                         break;
4667
4668                         case NETR_DELTA_GROUP:
4669                         break;
4670
4671                         case NETR_DELTA_DELETE_GROUP:
4672                         break;
4673
4674                         case NETR_DELTA_RENAME_GROUP:
4675                         break;
4676
4677                         case NETR_DELTA_USER:
4678                         break;
4679
4680                         case NETR_DELTA_DELETE_USER:
4681                         break;
4682
4683                         case NETR_DELTA_RENAME_USER:
4684                         break;
4685
4686                         case NETR_DELTA_GROUP_MEMBER:
4687                         break;
4688
4689                         case NETR_DELTA_ALIAS:
4690                         break;
4691
4692                         case NETR_DELTA_DELETE_ALIAS:
4693                         break;
4694
4695                         case NETR_DELTA_RENAME_ALIAS:
4696                         break;
4697
4698                         case NETR_DELTA_ALIAS_MEMBER:
4699                         break;
4700
4701                         case NETR_DELTA_POLICY:
4702                                 if (r->sid) {
4703                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4704                                 }
4705                         break;
4706
4707                         case NETR_DELTA_TRUSTED_DOMAIN:
4708                                 if (r->sid) {
4709                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4710                                 }
4711                         break;
4712
4713                         case NETR_DELTA_DELETE_TRUST:
4714                                 if (r->sid) {
4715                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4716                                 }
4717                         break;
4718
4719                         case NETR_DELTA_ACCOUNT:
4720                                 if (r->sid) {
4721                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4722                                 }
4723                         break;
4724
4725                         case NETR_DELTA_DELETE_ACCOUNT:
4726                                 if (r->sid) {
4727                                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4728                                 }
4729                         break;
4730
4731                         case NETR_DELTA_SECRET:
4732                                 if (r->name) {
4733                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4734                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4735                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4736                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4737                                 }
4738                         break;
4739
4740                         case NETR_DELTA_DELETE_SECRET:
4741                                 if (r->name) {
4742                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4743                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4744                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
4745                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4746                                 }
4747                         break;
4748
4749                         case NETR_DELTA_DELETE_GROUP2:
4750                         break;
4751
4752                         case NETR_DELTA_DELETE_USER2:
4753                         break;
4754
4755                         case NETR_DELTA_MODIFY_COUNT:
4756                         break;
4757
4758                         default:
4759                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4760                 }
4761         }
4762         return NDR_ERR_SUCCESS;
4763 }
4764
4765 static enum ndr_err_code ndr_pull_netr_DELTA_ID_UNION(struct ndr_pull *ndr, int ndr_flags, union netr_DELTA_ID_UNION *r)
4766 {
4767         int level;
4768         uint16_t _level;
4769         TALLOC_CTX *_mem_save_sid_0;
4770         TALLOC_CTX *_mem_save_name_0;
4771         level = ndr_pull_get_switch_value(ndr, r);
4772         if (ndr_flags & NDR_SCALARS) {
4773                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &_level));
4774                 if (_level != level) {
4775                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4776                 }
4777                 switch (level) {
4778                         case NETR_DELTA_DOMAIN: {
4779                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4780                         break; }
4781
4782                         case NETR_DELTA_GROUP: {
4783                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4784                         break; }
4785
4786                         case NETR_DELTA_DELETE_GROUP: {
4787                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4788                         break; }
4789
4790                         case NETR_DELTA_RENAME_GROUP: {
4791                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4792                         break; }
4793
4794                         case NETR_DELTA_USER: {
4795                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4796                         break; }
4797
4798                         case NETR_DELTA_DELETE_USER: {
4799                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4800                         break; }
4801
4802                         case NETR_DELTA_RENAME_USER: {
4803                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4804                         break; }
4805
4806                         case NETR_DELTA_GROUP_MEMBER: {
4807                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4808                         break; }
4809
4810                         case NETR_DELTA_ALIAS: {
4811                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4812                         break; }
4813
4814                         case NETR_DELTA_DELETE_ALIAS: {
4815                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4816                         break; }
4817
4818                         case NETR_DELTA_RENAME_ALIAS: {
4819                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4820                         break; }
4821
4822                         case NETR_DELTA_ALIAS_MEMBER: {
4823                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4824                         break; }
4825
4826                         case NETR_DELTA_POLICY: {
4827                                 uint32_t _ptr_sid;
4828                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4829                                 if (_ptr_sid) {
4830                                         NDR_PULL_ALLOC(ndr, r->sid);
4831                                 } else {
4832                                         r->sid = NULL;
4833                                 }
4834                         break; }
4835
4836                         case NETR_DELTA_TRUSTED_DOMAIN: {
4837                                 uint32_t _ptr_sid;
4838                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4839                                 if (_ptr_sid) {
4840                                         NDR_PULL_ALLOC(ndr, r->sid);
4841                                 } else {
4842                                         r->sid = NULL;
4843                                 }
4844                         break; }
4845
4846                         case NETR_DELTA_DELETE_TRUST: {
4847                                 uint32_t _ptr_sid;
4848                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4849                                 if (_ptr_sid) {
4850                                         NDR_PULL_ALLOC(ndr, r->sid);
4851                                 } else {
4852                                         r->sid = NULL;
4853                                 }
4854                         break; }
4855
4856                         case NETR_DELTA_ACCOUNT: {
4857                                 uint32_t _ptr_sid;
4858                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4859                                 if (_ptr_sid) {
4860                                         NDR_PULL_ALLOC(ndr, r->sid);
4861                                 } else {
4862                                         r->sid = NULL;
4863                                 }
4864                         break; }
4865
4866                         case NETR_DELTA_DELETE_ACCOUNT: {
4867                                 uint32_t _ptr_sid;
4868                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
4869                                 if (_ptr_sid) {
4870                                         NDR_PULL_ALLOC(ndr, r->sid);
4871                                 } else {
4872                                         r->sid = NULL;
4873                                 }
4874                         break; }
4875
4876                         case NETR_DELTA_SECRET: {
4877                                 uint32_t _ptr_name;
4878                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4879                                 if (_ptr_name) {
4880                                         NDR_PULL_ALLOC(ndr, r->name);
4881                                 } else {
4882                                         r->name = NULL;
4883                                 }
4884                         break; }
4885
4886                         case NETR_DELTA_DELETE_SECRET: {
4887                                 uint32_t _ptr_name;
4888                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
4889                                 if (_ptr_name) {
4890                                         NDR_PULL_ALLOC(ndr, r->name);
4891                                 } else {
4892                                         r->name = NULL;
4893                                 }
4894                         break; }
4895
4896                         case NETR_DELTA_DELETE_GROUP2: {
4897                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4898                         break; }
4899
4900                         case NETR_DELTA_DELETE_USER2: {
4901                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rid));
4902                         break; }
4903
4904                         case NETR_DELTA_MODIFY_COUNT: {
4905                         break; }
4906
4907                         default:
4908                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
4909                 }
4910         }
4911         if (ndr_flags & NDR_BUFFERS) {
4912                 switch (level) {
4913                         case NETR_DELTA_DOMAIN:
4914                         break;
4915
4916                         case NETR_DELTA_GROUP:
4917                         break;
4918
4919                         case NETR_DELTA_DELETE_GROUP:
4920                         break;
4921
4922                         case NETR_DELTA_RENAME_GROUP:
4923                         break;
4924
4925                         case NETR_DELTA_USER:
4926                         break;
4927
4928                         case NETR_DELTA_DELETE_USER:
4929                         break;
4930
4931                         case NETR_DELTA_RENAME_USER:
4932                         break;
4933
4934                         case NETR_DELTA_GROUP_MEMBER:
4935                         break;
4936
4937                         case NETR_DELTA_ALIAS:
4938                         break;
4939
4940                         case NETR_DELTA_DELETE_ALIAS:
4941                         break;
4942
4943                         case NETR_DELTA_RENAME_ALIAS:
4944                         break;
4945
4946                         case NETR_DELTA_ALIAS_MEMBER:
4947                         break;
4948
4949                         case NETR_DELTA_POLICY:
4950                                 if (r->sid) {
4951                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4952                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4953                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4954                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4955                                 }
4956                         break;
4957
4958                         case NETR_DELTA_TRUSTED_DOMAIN:
4959                                 if (r->sid) {
4960                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4961                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4962                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4963                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4964                                 }
4965                         break;
4966
4967                         case NETR_DELTA_DELETE_TRUST:
4968                                 if (r->sid) {
4969                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4970                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4971                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4972                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4973                                 }
4974                         break;
4975
4976                         case NETR_DELTA_ACCOUNT:
4977                                 if (r->sid) {
4978                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4979                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4980                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4981                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4982                                 }
4983                         break;
4984
4985                         case NETR_DELTA_DELETE_ACCOUNT:
4986                                 if (r->sid) {
4987                                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4988                                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
4989                                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
4990                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
4991                                 }
4992                         break;
4993
4994                         case NETR_DELTA_SECRET:
4995                                 if (r->name) {
4996                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4997                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
4998                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
4999                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5000                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5001                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
5002                                         }
5003                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5004                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5005                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5006                                 }
5007                         break;
5008
5009                         case NETR_DELTA_DELETE_SECRET:
5010                                 if (r->name) {
5011                                         _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5012                                         NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5013                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5014                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5015                                         if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5016                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
5017                                         }
5018                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5019                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5020                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5021                                 }
5022                         break;
5023
5024                         case NETR_DELTA_DELETE_GROUP2:
5025                         break;
5026
5027                         case NETR_DELTA_DELETE_USER2:
5028                         break;
5029
5030                         case NETR_DELTA_MODIFY_COUNT:
5031                         break;
5032
5033                         default:
5034                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5035                 }
5036         }
5037         return NDR_ERR_SUCCESS;
5038 }
5039
5040 _PUBLIC_ void ndr_print_netr_DELTA_ID_UNION(struct ndr_print *ndr, const char *name, const union netr_DELTA_ID_UNION *r)
5041 {
5042         int level;
5043         level = ndr_print_get_switch_value(ndr, r);
5044         ndr_print_union(ndr, name, level, "netr_DELTA_ID_UNION");
5045         switch (level) {
5046                 case NETR_DELTA_DOMAIN:
5047                         ndr_print_uint32(ndr, "rid", r->rid);
5048                 break;
5049
5050                 case NETR_DELTA_GROUP:
5051                         ndr_print_uint32(ndr, "rid", r->rid);
5052                 break;
5053
5054                 case NETR_DELTA_DELETE_GROUP:
5055                         ndr_print_uint32(ndr, "rid", r->rid);
5056                 break;
5057
5058                 case NETR_DELTA_RENAME_GROUP:
5059                         ndr_print_uint32(ndr, "rid", r->rid);
5060                 break;
5061
5062                 case NETR_DELTA_USER:
5063                         ndr_print_uint32(ndr, "rid", r->rid);
5064                 break;
5065
5066                 case NETR_DELTA_DELETE_USER:
5067                         ndr_print_uint32(ndr, "rid", r->rid);
5068                 break;
5069
5070                 case NETR_DELTA_RENAME_USER:
5071                         ndr_print_uint32(ndr, "rid", r->rid);
5072                 break;
5073
5074                 case NETR_DELTA_GROUP_MEMBER:
5075                         ndr_print_uint32(ndr, "rid", r->rid);
5076                 break;
5077
5078                 case NETR_DELTA_ALIAS:
5079                         ndr_print_uint32(ndr, "rid", r->rid);
5080                 break;
5081
5082                 case NETR_DELTA_DELETE_ALIAS:
5083                         ndr_print_uint32(ndr, "rid", r->rid);
5084                 break;
5085
5086                 case NETR_DELTA_RENAME_ALIAS:
5087                         ndr_print_uint32(ndr, "rid", r->rid);
5088                 break;
5089
5090                 case NETR_DELTA_ALIAS_MEMBER:
5091                         ndr_print_uint32(ndr, "rid", r->rid);
5092                 break;
5093
5094                 case NETR_DELTA_POLICY:
5095                         ndr_print_ptr(ndr, "sid", r->sid);
5096                         ndr->depth++;
5097                         if (r->sid) {
5098                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5099                         }
5100                         ndr->depth--;
5101                 break;
5102
5103                 case NETR_DELTA_TRUSTED_DOMAIN:
5104                         ndr_print_ptr(ndr, "sid", r->sid);
5105                         ndr->depth++;
5106                         if (r->sid) {
5107                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5108                         }
5109                         ndr->depth--;
5110                 break;
5111
5112                 case NETR_DELTA_DELETE_TRUST:
5113                         ndr_print_ptr(ndr, "sid", r->sid);
5114                         ndr->depth++;
5115                         if (r->sid) {
5116                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5117                         }
5118                         ndr->depth--;
5119                 break;
5120
5121                 case NETR_DELTA_ACCOUNT:
5122                         ndr_print_ptr(ndr, "sid", r->sid);
5123                         ndr->depth++;
5124                         if (r->sid) {
5125                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5126                         }
5127                         ndr->depth--;
5128                 break;
5129
5130                 case NETR_DELTA_DELETE_ACCOUNT:
5131                         ndr_print_ptr(ndr, "sid", r->sid);
5132                         ndr->depth++;
5133                         if (r->sid) {
5134                                 ndr_print_dom_sid2(ndr, "sid", r->sid);
5135                         }
5136                         ndr->depth--;
5137                 break;
5138
5139                 case NETR_DELTA_SECRET:
5140                         ndr_print_ptr(ndr, "name", r->name);
5141                         ndr->depth++;
5142                         if (r->name) {
5143                                 ndr_print_string(ndr, "name", r->name);
5144                         }
5145                         ndr->depth--;
5146                 break;
5147
5148                 case NETR_DELTA_DELETE_SECRET:
5149                         ndr_print_ptr(ndr, "name", r->name);
5150                         ndr->depth++;
5151                         if (r->name) {
5152                                 ndr_print_string(ndr, "name", r->name);
5153                         }
5154                         ndr->depth--;
5155                 break;
5156
5157                 case NETR_DELTA_DELETE_GROUP2:
5158                         ndr_print_uint32(ndr, "rid", r->rid);
5159                 break;
5160
5161                 case NETR_DELTA_DELETE_USER2:
5162                         ndr_print_uint32(ndr, "rid", r->rid);
5163                 break;
5164
5165                 case NETR_DELTA_MODIFY_COUNT:
5166                 break;
5167
5168                 default:
5169                         ndr_print_bad_level(ndr, name, level);
5170         }
5171 }
5172
5173 static enum ndr_err_code ndr_push_netr_DELTA_ENUM(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM *r)
5174 {
5175         if (ndr_flags & NDR_SCALARS) {
5176                 NDR_CHECK(ndr_push_align(ndr, 4));
5177                 NDR_CHECK(ndr_push_netr_DeltaEnum(ndr, NDR_SCALARS, r->delta_type));
5178                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5179                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5180                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->delta_union, r->delta_type));
5181                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5182         }
5183         if (ndr_flags & NDR_BUFFERS) {
5184                 NDR_CHECK(ndr_push_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5185                 NDR_CHECK(ndr_push_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5186         }
5187         return NDR_ERR_SUCCESS;
5188 }
5189
5190 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM *r)
5191 {
5192         if (ndr_flags & NDR_SCALARS) {
5193                 NDR_CHECK(ndr_pull_align(ndr, 4));
5194                 NDR_CHECK(ndr_pull_netr_DeltaEnum(ndr, NDR_SCALARS, &r->delta_type));
5195                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_id_union, r->delta_type));
5196                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_SCALARS, &r->delta_id_union));
5197                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->delta_union, r->delta_type));
5198                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_SCALARS, &r->delta_union));
5199         }
5200         if (ndr_flags & NDR_BUFFERS) {
5201                 NDR_CHECK(ndr_pull_netr_DELTA_ID_UNION(ndr, NDR_BUFFERS, &r->delta_id_union));
5202                 NDR_CHECK(ndr_pull_netr_DELTA_UNION(ndr, NDR_BUFFERS, &r->delta_union));
5203         }
5204         return NDR_ERR_SUCCESS;
5205 }
5206
5207 _PUBLIC_ void ndr_print_netr_DELTA_ENUM(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM *r)
5208 {
5209         ndr_print_struct(ndr, name, "netr_DELTA_ENUM");
5210         ndr->depth++;
5211         ndr_print_netr_DeltaEnum(ndr, "delta_type", r->delta_type);
5212         ndr_print_set_switch_value(ndr, &r->delta_id_union, r->delta_type);
5213         ndr_print_netr_DELTA_ID_UNION(ndr, "delta_id_union", &r->delta_id_union);
5214         ndr_print_set_switch_value(ndr, &r->delta_union, r->delta_type);
5215         ndr_print_netr_DELTA_UNION(ndr, "delta_union", &r->delta_union);
5216         ndr->depth--;
5217 }
5218
5219 static enum ndr_err_code ndr_push_netr_DELTA_ENUM_ARRAY(struct ndr_push *ndr, int ndr_flags, const struct netr_DELTA_ENUM_ARRAY *r)
5220 {
5221         uint32_t cntr_delta_enum_1;
5222         if (ndr_flags & NDR_SCALARS) {
5223                 NDR_CHECK(ndr_push_align(ndr, 4));
5224                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5225                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->delta_enum));
5226         }
5227         if (ndr_flags & NDR_BUFFERS) {
5228                 if (r->delta_enum) {
5229                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_deltas));
5230                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5231                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5232                         }
5233                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5234                                 NDR_CHECK(ndr_push_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5235                         }
5236                 }
5237         }
5238         return NDR_ERR_SUCCESS;
5239 }
5240
5241 static enum ndr_err_code ndr_pull_netr_DELTA_ENUM_ARRAY(struct ndr_pull *ndr, int ndr_flags, struct netr_DELTA_ENUM_ARRAY *r)
5242 {
5243         uint32_t _ptr_delta_enum;
5244         uint32_t cntr_delta_enum_1;
5245         TALLOC_CTX *_mem_save_delta_enum_0;
5246         TALLOC_CTX *_mem_save_delta_enum_1;
5247         if (ndr_flags & NDR_SCALARS) {
5248                 NDR_CHECK(ndr_pull_align(ndr, 4));
5249                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_deltas));
5250                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum));
5251                 if (_ptr_delta_enum) {
5252                         NDR_PULL_ALLOC(ndr, r->delta_enum);
5253                 } else {
5254                         r->delta_enum = NULL;
5255                 }
5256         }
5257         if (ndr_flags & NDR_BUFFERS) {
5258                 if (r->delta_enum) {
5259                         _mem_save_delta_enum_0 = NDR_PULL_GET_MEM_CTX(ndr);
5260                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5261                         NDR_CHECK(ndr_pull_array_size(ndr, &r->delta_enum));
5262                         NDR_PULL_ALLOC_N(ndr, r->delta_enum, ndr_get_array_size(ndr, &r->delta_enum));
5263                         _mem_save_delta_enum_1 = NDR_PULL_GET_MEM_CTX(ndr);
5264                         NDR_PULL_SET_MEM_CTX(ndr, r->delta_enum, 0);
5265                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5266                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_SCALARS, &r->delta_enum[cntr_delta_enum_1]));
5267                         }
5268                         for (cntr_delta_enum_1 = 0; cntr_delta_enum_1 < r->num_deltas; cntr_delta_enum_1++) {
5269                                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM(ndr, NDR_BUFFERS, &r->delta_enum[cntr_delta_enum_1]));
5270                         }
5271                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_1, 0);
5272                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_0, 0);
5273                 }
5274                 if (r->delta_enum) {
5275                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->delta_enum, r->num_deltas));
5276                 }
5277         }
5278         return NDR_ERR_SUCCESS;
5279 }
5280
5281 _PUBLIC_ void ndr_print_netr_DELTA_ENUM_ARRAY(struct ndr_print *ndr, const char *name, const struct netr_DELTA_ENUM_ARRAY *r)
5282 {
5283         uint32_t cntr_delta_enum_1;
5284         ndr_print_struct(ndr, name, "netr_DELTA_ENUM_ARRAY");
5285         ndr->depth++;
5286         ndr_print_uint32(ndr, "num_deltas", r->num_deltas);
5287         ndr_print_ptr(ndr, "delta_enum", r->delta_enum);
5288         ndr->depth++;
5289         if (r->delta_enum) {
5290                 ndr->print(ndr, "%s: ARRAY(%d)", "delta_enum", r->num_deltas);
5291                 ndr->depth++;
5292                 for (cntr_delta_enum_1=0;cntr_delta_enum_1<r->num_deltas;cntr_delta_enum_1++) {
5293                         char *idx_1=NULL;
5294                         asprintf(&idx_1, "[%d]", cntr_delta_enum_1);
5295                         if (idx_1) {
5296                                 ndr_print_netr_DELTA_ENUM(ndr, "delta_enum", &r->delta_enum[cntr_delta_enum_1]);
5297                                 free(idx_1);
5298                         }
5299                 }
5300                 ndr->depth--;
5301         }
5302         ndr->depth--;
5303         ndr->depth--;
5304 }
5305
5306 static enum ndr_err_code ndr_push_netr_UAS_INFO_0(struct ndr_push *ndr, int ndr_flags, const struct netr_UAS_INFO_0 *r)
5307 {
5308         {
5309                 uint32_t _flags_save_STRUCT = ndr->flags;
5310                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5311                 if (ndr_flags & NDR_SCALARS) {
5312                         NDR_CHECK(ndr_push_align(ndr, 4));
5313                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5314                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->timecreated));
5315                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->serial_number));
5316                 }
5317                 if (ndr_flags & NDR_BUFFERS) {
5318                 }
5319                 ndr->flags = _flags_save_STRUCT;
5320         }
5321         return NDR_ERR_SUCCESS;
5322 }
5323
5324 static enum ndr_err_code ndr_pull_netr_UAS_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct netr_UAS_INFO_0 *r)
5325 {
5326         {
5327                 uint32_t _flags_save_STRUCT = ndr->flags;
5328                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5329                 if (ndr_flags & NDR_SCALARS) {
5330                         NDR_CHECK(ndr_pull_align(ndr, 4));
5331                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->computer_name, 16));
5332                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->timecreated));
5333                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->serial_number));
5334                 }
5335                 if (ndr_flags & NDR_BUFFERS) {
5336                 }
5337                 ndr->flags = _flags_save_STRUCT;
5338         }
5339         return NDR_ERR_SUCCESS;
5340 }
5341
5342 _PUBLIC_ void ndr_print_netr_UAS_INFO_0(struct ndr_print *ndr, const char *name, const struct netr_UAS_INFO_0 *r)
5343 {
5344         ndr_print_struct(ndr, name, "netr_UAS_INFO_0");
5345         {
5346                 uint32_t _flags_save_STRUCT = ndr->flags;
5347                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
5348                 ndr->depth++;
5349                 ndr_print_array_uint8(ndr, "computer_name", r->computer_name, 16);
5350                 ndr_print_uint32(ndr, "timecreated", r->timecreated);
5351                 ndr_print_uint32(ndr, "serial_number", r->serial_number);
5352                 ndr->depth--;
5353                 ndr->flags = _flags_save_STRUCT;
5354         }
5355 }
5356
5357 static enum ndr_err_code ndr_push_netr_AccountBuffer(struct ndr_push *ndr, int ndr_flags, const struct netr_AccountBuffer *r)
5358 {
5359         if (ndr_flags & NDR_SCALARS) {
5360                 NDR_CHECK(ndr_push_align(ndr, 4));
5361                 {
5362                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5363                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5364                         NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->blob));
5365                         ndr->flags = _flags_save_DATA_BLOB;
5366                 }
5367         }
5368         if (ndr_flags & NDR_BUFFERS) {
5369         }
5370         return NDR_ERR_SUCCESS;
5371 }
5372
5373 static enum ndr_err_code ndr_pull_netr_AccountBuffer(struct ndr_pull *ndr, int ndr_flags, struct netr_AccountBuffer *r)
5374 {
5375         if (ndr_flags & NDR_SCALARS) {
5376                 NDR_CHECK(ndr_pull_align(ndr, 4));
5377                 {
5378                         uint32_t _flags_save_DATA_BLOB = ndr->flags;
5379                         ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
5380                         NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->blob));
5381                         ndr->flags = _flags_save_DATA_BLOB;
5382                 }
5383         }
5384         if (ndr_flags & NDR_BUFFERS) {
5385         }
5386         return NDR_ERR_SUCCESS;
5387 }
5388
5389 _PUBLIC_ void ndr_print_netr_AccountBuffer(struct ndr_print *ndr, const char *name, const struct netr_AccountBuffer *r)
5390 {
5391         ndr_print_struct(ndr, name, "netr_AccountBuffer");
5392         ndr->depth++;
5393         ndr_print_DATA_BLOB(ndr, "blob", r->blob);
5394         ndr->depth--;
5395 }
5396
5397 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_1(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_1 *r)
5398 {
5399         if (ndr_flags & NDR_SCALARS) {
5400                 NDR_CHECK(ndr_push_align(ndr, 4));
5401                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
5402                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5403         }
5404         if (ndr_flags & NDR_BUFFERS) {
5405         }
5406         return NDR_ERR_SUCCESS;
5407 }
5408
5409 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_1(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_1 *r)
5410 {
5411         if (ndr_flags & NDR_SCALARS) {
5412                 NDR_CHECK(ndr_pull_align(ndr, 4));
5413                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
5414                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5415         }
5416         if (ndr_flags & NDR_BUFFERS) {
5417         }
5418         return NDR_ERR_SUCCESS;
5419 }
5420
5421 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_1(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_1 *r)
5422 {
5423         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_1");
5424         ndr->depth++;
5425         ndr_print_uint32(ndr, "flags", r->flags);
5426         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5427         ndr->depth--;
5428 }
5429
5430 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_2(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_2 *r)
5431 {
5432         if (ndr_flags & NDR_SCALARS) {
5433                 NDR_CHECK(ndr_push_align(ndr, 4));
5434                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
5435                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pdc_connection_status));
5436                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5437                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5438                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->trusted_dc_name, CH_UTF16)));
5439                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->trusted_dc_name, ndr_charset_length(r->trusted_dc_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5440                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->tc_connection_status));
5441         }
5442         if (ndr_flags & NDR_BUFFERS) {
5443         }
5444         return NDR_ERR_SUCCESS;
5445 }
5446
5447 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_2(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_2 *r)
5448 {
5449         if (ndr_flags & NDR_SCALARS) {
5450                 NDR_CHECK(ndr_pull_align(ndr, 4));
5451                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
5452                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pdc_connection_status));
5453                 NDR_CHECK(ndr_pull_array_size(ndr, &r->trusted_dc_name));
5454                 NDR_CHECK(ndr_pull_array_length(ndr, &r->trusted_dc_name));
5455                 if (ndr_get_array_length(ndr, &r->trusted_dc_name) > ndr_get_array_size(ndr, &r->trusted_dc_name)) {
5456                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->trusted_dc_name), ndr_get_array_length(ndr, &r->trusted_dc_name));
5457                 }
5458                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t)));
5459                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->trusted_dc_name, ndr_get_array_length(ndr, &r->trusted_dc_name), sizeof(uint16_t), CH_UTF16));
5460                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->tc_connection_status));
5461         }
5462         if (ndr_flags & NDR_BUFFERS) {
5463         }
5464         return NDR_ERR_SUCCESS;
5465 }
5466
5467 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_2(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_2 *r)
5468 {
5469         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_2");
5470         ndr->depth++;
5471         ndr_print_uint32(ndr, "flags", r->flags);
5472         ndr_print_uint32(ndr, "pdc_connection_status", r->pdc_connection_status);
5473         ndr_print_string(ndr, "trusted_dc_name", r->trusted_dc_name);
5474         ndr_print_uint32(ndr, "tc_connection_status", r->tc_connection_status);
5475         ndr->depth--;
5476 }
5477
5478 static enum ndr_err_code ndr_push_netr_NETLOGON_INFO_3(struct ndr_push *ndr, int ndr_flags, const struct netr_NETLOGON_INFO_3 *r)
5479 {
5480         if (ndr_flags & NDR_SCALARS) {
5481                 NDR_CHECK(ndr_push_align(ndr, 4));
5482                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
5483                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->logon_attempts));
5484                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown1));
5485                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
5486                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
5487                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown4));
5488                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown5));
5489         }
5490         if (ndr_flags & NDR_BUFFERS) {
5491         }
5492         return NDR_ERR_SUCCESS;
5493 }
5494
5495 static enum ndr_err_code ndr_pull_netr_NETLOGON_INFO_3(struct ndr_pull *ndr, int ndr_flags, struct netr_NETLOGON_INFO_3 *r)
5496 {
5497         if (ndr_flags & NDR_SCALARS) {
5498                 NDR_CHECK(ndr_pull_align(ndr, 4));
5499                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
5500                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->logon_attempts));
5501                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
5502                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
5503                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
5504                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown4));
5505                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown5));
5506         }
5507         if (ndr_flags & NDR_BUFFERS) {
5508         }
5509         return NDR_ERR_SUCCESS;
5510 }
5511
5512 _PUBLIC_ void ndr_print_netr_NETLOGON_INFO_3(struct ndr_print *ndr, const char *name, const struct netr_NETLOGON_INFO_3 *r)
5513 {
5514         ndr_print_struct(ndr, name, "netr_NETLOGON_INFO_3");
5515         ndr->depth++;
5516         ndr_print_uint32(ndr, "flags", r->flags);
5517         ndr_print_uint32(ndr, "logon_attempts", r->logon_attempts);
5518         ndr_print_uint32(ndr, "unknown1", r->unknown1);
5519         ndr_print_uint32(ndr, "unknown2", r->unknown2);
5520         ndr_print_uint32(ndr, "unknown3", r->unknown3);
5521         ndr_print_uint32(ndr, "unknown4", r->unknown4);
5522         ndr_print_uint32(ndr, "unknown5", r->unknown5);
5523         ndr->depth--;
5524 }
5525
5526 static enum ndr_err_code ndr_push_netr_CONTROL_QUERY_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_QUERY_INFORMATION *r)
5527 {
5528         if (ndr_flags & NDR_SCALARS) {
5529                 int level = ndr_push_get_switch_value(ndr, r);
5530                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5531                 switch (level) {
5532                         case 1: {
5533                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5534                         break; }
5535
5536                         case 2: {
5537                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5538                         break; }
5539
5540                         case 3: {
5541                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5542                         break; }
5543
5544                         default:
5545                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5546                 }
5547         }
5548         if (ndr_flags & NDR_BUFFERS) {
5549                 int level = ndr_push_get_switch_value(ndr, r);
5550                 switch (level) {
5551                         case 1:
5552                                 if (r->info1) {
5553                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5554                                 }
5555                         break;
5556
5557                         case 2:
5558                                 if (r->info2) {
5559                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS, r->info2));
5560                                 }
5561                         break;
5562
5563                         case 3:
5564                                 if (r->info3) {
5565                                         NDR_CHECK(ndr_push_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5566                                 }
5567                         break;
5568
5569                         default:
5570                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5571                 }
5572         }
5573         return NDR_ERR_SUCCESS;
5574 }
5575
5576 static enum ndr_err_code ndr_pull_netr_CONTROL_QUERY_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_QUERY_INFORMATION *r)
5577 {
5578         int level;
5579         uint32_t _level;
5580         TALLOC_CTX *_mem_save_info1_0;
5581         TALLOC_CTX *_mem_save_info2_0;
5582         TALLOC_CTX *_mem_save_info3_0;
5583         level = ndr_pull_get_switch_value(ndr, r);
5584         if (ndr_flags & NDR_SCALARS) {
5585                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5586                 if (_level != level) {
5587                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5588                 }
5589                 switch (level) {
5590                         case 1: {
5591                                 uint32_t _ptr_info1;
5592                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5593                                 if (_ptr_info1) {
5594                                         NDR_PULL_ALLOC(ndr, r->info1);
5595                                 } else {
5596                                         r->info1 = NULL;
5597                                 }
5598                         break; }
5599
5600                         case 2: {
5601                                 uint32_t _ptr_info2;
5602                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5603                                 if (_ptr_info2) {
5604                                         NDR_PULL_ALLOC(ndr, r->info2);
5605                                 } else {
5606                                         r->info2 = NULL;
5607                                 }
5608                         break; }
5609
5610                         case 3: {
5611                                 uint32_t _ptr_info3;
5612                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5613                                 if (_ptr_info3) {
5614                                         NDR_PULL_ALLOC(ndr, r->info3);
5615                                 } else {
5616                                         r->info3 = NULL;
5617                                 }
5618                         break; }
5619
5620                         default:
5621                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5622                 }
5623         }
5624         if (ndr_flags & NDR_BUFFERS) {
5625                 switch (level) {
5626                         case 1:
5627                                 if (r->info1) {
5628                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5629                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5630                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_1(ndr, NDR_SCALARS, r->info1));
5631                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5632                                 }
5633                         break;
5634
5635                         case 2:
5636                                 if (r->info2) {
5637                                         _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5638                                         NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5639                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_2(ndr, NDR_SCALARS, r->info2));
5640                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5641                                 }
5642                         break;
5643
5644                         case 3:
5645                                 if (r->info3) {
5646                                         _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5647                                         NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5648                                         NDR_CHECK(ndr_pull_netr_NETLOGON_INFO_3(ndr, NDR_SCALARS, r->info3));
5649                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5650                                 }
5651                         break;
5652
5653                         default:
5654                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5655                 }
5656         }
5657         return NDR_ERR_SUCCESS;
5658 }
5659
5660 _PUBLIC_ void ndr_print_netr_CONTROL_QUERY_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_QUERY_INFORMATION *r)
5661 {
5662         int level;
5663         level = ndr_print_get_switch_value(ndr, r);
5664         ndr_print_union(ndr, name, level, "netr_CONTROL_QUERY_INFORMATION");
5665         switch (level) {
5666                 case 1:
5667                         ndr_print_ptr(ndr, "info1", r->info1);
5668                         ndr->depth++;
5669                         if (r->info1) {
5670                                 ndr_print_netr_NETLOGON_INFO_1(ndr, "info1", r->info1);
5671                         }
5672                         ndr->depth--;
5673                 break;
5674
5675                 case 2:
5676                         ndr_print_ptr(ndr, "info2", r->info2);
5677                         ndr->depth++;
5678                         if (r->info2) {
5679                                 ndr_print_netr_NETLOGON_INFO_2(ndr, "info2", r->info2);
5680                         }
5681                         ndr->depth--;
5682                 break;
5683
5684                 case 3:
5685                         ndr_print_ptr(ndr, "info3", r->info3);
5686                         ndr->depth++;
5687                         if (r->info3) {
5688                                 ndr_print_netr_NETLOGON_INFO_3(ndr, "info3", r->info3);
5689                         }
5690                         ndr->depth--;
5691                 break;
5692
5693                 default:
5694                         ndr_print_bad_level(ndr, name, level);
5695         }
5696 }
5697
5698 static enum ndr_err_code ndr_push_netr_LogonControlCode(struct ndr_push *ndr, int ndr_flags, enum netr_LogonControlCode r)
5699 {
5700         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5701         return NDR_ERR_SUCCESS;
5702 }
5703
5704 static enum ndr_err_code ndr_pull_netr_LogonControlCode(struct ndr_pull *ndr, int ndr_flags, enum netr_LogonControlCode *r)
5705 {
5706         uint32_t v;
5707         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5708         *r = v;
5709         return NDR_ERR_SUCCESS;
5710 }
5711
5712 _PUBLIC_ void ndr_print_netr_LogonControlCode(struct ndr_print *ndr, const char *name, enum netr_LogonControlCode r)
5713 {
5714         const char *val = NULL;
5715
5716         switch (r) {
5717                 case NETLOGON_CONTROL_REDISCOVER: val = "NETLOGON_CONTROL_REDISCOVER"; break;
5718                 case NETLOGON_CONTROL_TC_QUERY: val = "NETLOGON_CONTROL_TC_QUERY"; break;
5719                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY: val = "NETLOGON_CONTROL_TRANSPORT_NOTIFY"; break;
5720                 case NETLOGON_CONTROL_SET_DBFLAG: val = "NETLOGON_CONTROL_SET_DBFLAG"; break;
5721         }
5722         ndr_print_enum(ndr, name, "ENUM", val, r);
5723 }
5724
5725 static enum ndr_err_code ndr_push_netr_CONTROL_DATA_INFORMATION(struct ndr_push *ndr, int ndr_flags, const union netr_CONTROL_DATA_INFORMATION *r)
5726 {
5727         if (ndr_flags & NDR_SCALARS) {
5728                 int level = ndr_push_get_switch_value(ndr, r);
5729                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5730                 switch (level) {
5731                         case NETLOGON_CONTROL_REDISCOVER: {
5732                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5733                         break; }
5734
5735                         case NETLOGON_CONTROL_TC_QUERY: {
5736                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5737                         break; }
5738
5739                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5740                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain));
5741                         break; }
5742
5743                         case NETLOGON_CONTROL_SET_DBFLAG: {
5744                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->debug_level));
5745                         break; }
5746
5747                         default:
5748                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5749                 }
5750         }
5751         if (ndr_flags & NDR_BUFFERS) {
5752                 int level = ndr_push_get_switch_value(ndr, r);
5753                 switch (level) {
5754                         case NETLOGON_CONTROL_REDISCOVER:
5755                                 if (r->domain) {
5756                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5757                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5758                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5759                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5760                                 }
5761                         break;
5762
5763                         case NETLOGON_CONTROL_TC_QUERY:
5764                                 if (r->domain) {
5765                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5766                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5767                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5768                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5769                                 }
5770                         break;
5771
5772                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5773                                 if (r->domain) {
5774                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5775                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5776                                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain, CH_UTF16)));
5777                                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain, ndr_charset_length(r->domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5778                                 }
5779                         break;
5780
5781                         case NETLOGON_CONTROL_SET_DBFLAG:
5782                         break;
5783
5784                         default:
5785                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5786                 }
5787         }
5788         return NDR_ERR_SUCCESS;
5789 }
5790
5791 static enum ndr_err_code ndr_pull_netr_CONTROL_DATA_INFORMATION(struct ndr_pull *ndr, int ndr_flags, union netr_CONTROL_DATA_INFORMATION *r)
5792 {
5793         int level;
5794         uint32_t _level;
5795         TALLOC_CTX *_mem_save_domain_0;
5796         level = ndr_pull_get_switch_value(ndr, r);
5797         if (ndr_flags & NDR_SCALARS) {
5798                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5799                 if (_level != level) {
5800                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5801                 }
5802                 switch (level) {
5803                         case NETLOGON_CONTROL_REDISCOVER: {
5804                                 uint32_t _ptr_domain;
5805                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5806                                 if (_ptr_domain) {
5807                                         NDR_PULL_ALLOC(ndr, r->domain);
5808                                 } else {
5809                                         r->domain = NULL;
5810                                 }
5811                         break; }
5812
5813                         case NETLOGON_CONTROL_TC_QUERY: {
5814                                 uint32_t _ptr_domain;
5815                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5816                                 if (_ptr_domain) {
5817                                         NDR_PULL_ALLOC(ndr, r->domain);
5818                                 } else {
5819                                         r->domain = NULL;
5820                                 }
5821                         break; }
5822
5823                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY: {
5824                                 uint32_t _ptr_domain;
5825                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
5826                                 if (_ptr_domain) {
5827                                         NDR_PULL_ALLOC(ndr, r->domain);
5828                                 } else {
5829                                         r->domain = NULL;
5830                                 }
5831                         break; }
5832
5833                         case NETLOGON_CONTROL_SET_DBFLAG: {
5834                                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->debug_level));
5835                         break; }
5836
5837                         default:
5838                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5839                 }
5840         }
5841         if (ndr_flags & NDR_BUFFERS) {
5842                 switch (level) {
5843                         case NETLOGON_CONTROL_REDISCOVER:
5844                                 if (r->domain) {
5845                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5846                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5847                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5848                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5849                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5850                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
5851                                         }
5852                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5853                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5854                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5855                                 }
5856                         break;
5857
5858                         case NETLOGON_CONTROL_TC_QUERY:
5859                                 if (r->domain) {
5860                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5861                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5862                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5863                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5864                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5865                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
5866                                         }
5867                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5868                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5869                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5870                                 }
5871                         break;
5872
5873                         case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5874                                 if (r->domain) {
5875                                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
5876                                         NDR_PULL_SET_MEM_CTX(ndr, r->domain, 0);
5877                                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain));
5878                                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain));
5879                                         if (ndr_get_array_length(ndr, &r->domain) > ndr_get_array_size(ndr, &r->domain)) {
5880                                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain), ndr_get_array_length(ndr, &r->domain));
5881                                         }
5882                                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t)));
5883                                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain, ndr_get_array_length(ndr, &r->domain), sizeof(uint16_t), CH_UTF16));
5884                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
5885                                 }
5886                         break;
5887
5888                         case NETLOGON_CONTROL_SET_DBFLAG:
5889                         break;
5890
5891                         default:
5892                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
5893                 }
5894         }
5895         return NDR_ERR_SUCCESS;
5896 }
5897
5898 _PUBLIC_ void ndr_print_netr_CONTROL_DATA_INFORMATION(struct ndr_print *ndr, const char *name, const union netr_CONTROL_DATA_INFORMATION *r)
5899 {
5900         int level;
5901         level = ndr_print_get_switch_value(ndr, r);
5902         ndr_print_union(ndr, name, level, "netr_CONTROL_DATA_INFORMATION");
5903         switch (level) {
5904                 case NETLOGON_CONTROL_REDISCOVER:
5905                         ndr_print_ptr(ndr, "domain", r->domain);
5906                         ndr->depth++;
5907                         if (r->domain) {
5908                                 ndr_print_string(ndr, "domain", r->domain);
5909                         }
5910                         ndr->depth--;
5911                 break;
5912
5913                 case NETLOGON_CONTROL_TC_QUERY:
5914                         ndr_print_ptr(ndr, "domain", r->domain);
5915                         ndr->depth++;
5916                         if (r->domain) {
5917                                 ndr_print_string(ndr, "domain", r->domain);
5918                         }
5919                         ndr->depth--;
5920                 break;
5921
5922                 case NETLOGON_CONTROL_TRANSPORT_NOTIFY:
5923                         ndr_print_ptr(ndr, "domain", r->domain);
5924                         ndr->depth++;
5925                         if (r->domain) {
5926                                 ndr_print_string(ndr, "domain", r->domain);
5927                         }
5928                         ndr->depth--;
5929                 break;
5930
5931                 case NETLOGON_CONTROL_SET_DBFLAG:
5932                         ndr_print_uint32(ndr, "debug_level", r->debug_level);
5933                 break;
5934
5935                 default:
5936                         ndr_print_bad_level(ndr, name, level);
5937         }
5938 }
5939
5940 static enum ndr_err_code ndr_push_netr_Blob(struct ndr_push *ndr, int ndr_flags, const struct netr_Blob *r)
5941 {
5942         if (ndr_flags & NDR_SCALARS) {
5943                 NDR_CHECK(ndr_push_align(ndr, 4));
5944                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
5945                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
5946         }
5947         if (ndr_flags & NDR_BUFFERS) {
5948                 if (r->data) {
5949                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
5950                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, r->length));
5951                 }
5952         }
5953         return NDR_ERR_SUCCESS;
5954 }
5955
5956 static enum ndr_err_code ndr_pull_netr_Blob(struct ndr_pull *ndr, int ndr_flags, struct netr_Blob *r)
5957 {
5958         uint32_t _ptr_data;
5959         TALLOC_CTX *_mem_save_data_0;
5960         if (ndr_flags & NDR_SCALARS) {
5961                 NDR_CHECK(ndr_pull_align(ndr, 4));
5962                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
5963                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
5964                 if (_ptr_data) {
5965                         NDR_PULL_ALLOC(ndr, r->data);
5966                 } else {
5967                         r->data = NULL;
5968                 }
5969         }
5970         if (ndr_flags & NDR_BUFFERS) {
5971                 if (r->data) {
5972                         _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
5973                         NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
5974                         NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
5975                         NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
5976                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, ndr_get_array_size(ndr, &r->data)));
5977                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
5978                 }
5979                 if (r->data) {
5980                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->length));
5981                 }
5982         }
5983         return NDR_ERR_SUCCESS;
5984 }
5985
5986 _PUBLIC_ void ndr_print_netr_Blob(struct ndr_print *ndr, const char *name, const struct netr_Blob *r)
5987 {
5988         ndr_print_struct(ndr, name, "netr_Blob");
5989         ndr->depth++;
5990         ndr_print_uint32(ndr, "length", r->length);
5991         ndr_print_ptr(ndr, "data", r->data);
5992         ndr->depth++;
5993         if (r->data) {
5994                 ndr_print_array_uint8(ndr, "data", r->data, r->length);
5995         }
5996         ndr->depth--;
5997         ndr->depth--;
5998 }
5999
6000 static enum ndr_err_code ndr_push_netr_DsRGetDCName_flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6001 {
6002         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6003         return NDR_ERR_SUCCESS;
6004 }
6005
6006 static enum ndr_err_code ndr_pull_netr_DsRGetDCName_flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6007 {
6008         uint32_t v;
6009         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6010         *r = v;
6011         return NDR_ERR_SUCCESS;
6012 }
6013
6014 _PUBLIC_ void ndr_print_netr_DsRGetDCName_flags(struct ndr_print *ndr, const char *name, uint32_t r)
6015 {
6016         ndr_print_uint32(ndr, name, r);
6017         ndr->depth++;
6018         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_FORCE_REDISCOVERY", DS_FORCE_REDISCOVERY, r);
6019         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_REQUIRED", DS_DIRECTORY_SERVICE_REQUIRED, r);
6020         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_PREFERRED", DS_DIRECTORY_SERVICE_PREFERRED, r);
6021         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GC_SERVER_REQUIRED", DS_GC_SERVER_REQUIRED, r);
6022         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_PDC_REQUIRED", DS_PDC_REQUIRED, r);
6023         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_BACKGROUND_ONLY", DS_BACKGROUND_ONLY, r);
6024         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IP_REQUIRED", DS_IP_REQUIRED, r);
6025         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_KDC_REQUIRED", DS_KDC_REQUIRED, r);
6026         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TIMESERV_REQUIRED", DS_TIMESERV_REQUIRED, r);
6027         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_WRITABLE_REQUIRED", DS_WRITABLE_REQUIRED, r);
6028         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_GOOD_TIMESERV_PREFERRED", DS_GOOD_TIMESERV_PREFERRED, r);
6029         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_AVOID_SELF", DS_AVOID_SELF, r);
6030         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_ONLY_LDAP_NEEDED", DS_ONLY_LDAP_NEEDED, r);
6031         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_FLAT_NAME", DS_IS_FLAT_NAME, r);
6032         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_IS_DNS_NAME", DS_IS_DNS_NAME, r);
6033         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_TRY_NEXTCLOSEST_SITE", DS_TRY_NEXTCLOSEST_SITE, r);
6034         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DIRECTORY_SERVICE_6_REQUIRED", DS_DIRECTORY_SERVICE_6_REQUIRED, r);
6035         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_DNS_NAME", DS_RETURN_DNS_NAME, r);
6036         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_RETURN_FLAT_NAME", DS_RETURN_FLAT_NAME, r);
6037         ndr->depth--;
6038 }
6039
6040 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo_AddressType(struct ndr_push *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType r)
6041 {
6042         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6043         return NDR_ERR_SUCCESS;
6044 }
6045
6046 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo_AddressType(struct ndr_pull *ndr, int ndr_flags, enum netr_DsRGetDCNameInfo_AddressType *r)
6047 {
6048         uint32_t v;
6049         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6050         *r = v;
6051         return NDR_ERR_SUCCESS;
6052 }
6053
6054 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo_AddressType(struct ndr_print *ndr, const char *name, enum netr_DsRGetDCNameInfo_AddressType r)
6055 {
6056         const char *val = NULL;
6057
6058         switch (r) {
6059                 case DS_ADDRESS_TYPE_INET: val = "DS_ADDRESS_TYPE_INET"; break;
6060                 case DS_ADDRESS_TYPE_NETBIOS: val = "DS_ADDRESS_TYPE_NETBIOS"; break;
6061         }
6062         ndr_print_enum(ndr, name, "ENUM", val, r);
6063 }
6064
6065 static enum ndr_err_code ndr_push_netr_DsR_DcFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
6066 {
6067         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
6068         return NDR_ERR_SUCCESS;
6069 }
6070
6071 static enum ndr_err_code ndr_pull_netr_DsR_DcFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
6072 {
6073         uint32_t v;
6074         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
6075         *r = v;
6076         return NDR_ERR_SUCCESS;
6077 }
6078
6079 _PUBLIC_ void ndr_print_netr_DsR_DcFlags(struct ndr_print *ndr, const char *name, uint32_t r)
6080 {
6081         ndr_print_uint32(ndr, name, r);
6082         ndr->depth++;
6083         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_PDC", DS_SERVER_PDC, r);
6084         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GC", DS_SERVER_GC, r);
6085         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_LDAP", DS_SERVER_LDAP, r);
6086         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_DS", DS_SERVER_DS, r);
6087         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_KDC", DS_SERVER_KDC, r);
6088         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_TIMESERV", DS_SERVER_TIMESERV, r);
6089         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_CLOSEST", DS_SERVER_CLOSEST, r);
6090         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_WRITABLE", DS_SERVER_WRITABLE, r);
6091         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_GOOD_TIMESERV", DS_SERVER_GOOD_TIMESERV, r);
6092         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_NDNC", DS_SERVER_NDNC, r);
6093         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_SELECT_SECRET_DOMAIN_6", DS_SERVER_SELECT_SECRET_DOMAIN_6, r);
6094         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_SERVER_FULL_SECRET_DOMAIN_6", DS_SERVER_FULL_SECRET_DOMAIN_6, r);
6095         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_CONTROLLER", DS_DNS_CONTROLLER, r);
6096         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_DOMAIN", DS_DNS_DOMAIN, r);
6097         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DS_DNS_FOREST", DS_DNS_FOREST, r);
6098         ndr->depth--;
6099 }
6100
6101 static enum ndr_err_code ndr_push_netr_DsRGetDCNameInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRGetDCNameInfo *r)
6102 {
6103         if (ndr_flags & NDR_SCALARS) {
6104                 NDR_CHECK(ndr_push_align(ndr, 4));
6105                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_unc));
6106                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_address));
6107                 NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, r->dc_address_type));
6108                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6109                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->domain_name));
6110                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->forest_name));
6111                 NDR_CHECK(ndr_push_netr_DsR_DcFlags(ndr, NDR_SCALARS, r->dc_flags));
6112                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dc_site_name));
6113                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client_site_name));
6114         }
6115         if (ndr_flags & NDR_BUFFERS) {
6116                 if (r->dc_unc) {
6117                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6118                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6119                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_unc, CH_UTF16)));
6120                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_unc, ndr_charset_length(r->dc_unc, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6121                 }
6122                 if (r->dc_address) {
6123                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6124                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6125                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_address, CH_UTF16)));
6126                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_address, ndr_charset_length(r->dc_address, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6127                 }
6128                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6129                 if (r->domain_name) {
6130                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6131                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6132                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->domain_name, CH_UTF16)));
6133                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->domain_name, ndr_charset_length(r->domain_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6134                 }
6135                 if (r->forest_name) {
6136                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6137                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6138                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->forest_name, CH_UTF16)));
6139                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->forest_name, ndr_charset_length(r->forest_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6140                 }
6141                 if (r->dc_site_name) {
6142                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6143                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6144                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dc_site_name, CH_UTF16)));
6145                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dc_site_name, ndr_charset_length(r->dc_site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6146                 }
6147                 if (r->client_site_name) {
6148                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6149                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6150                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client_site_name, CH_UTF16)));
6151                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client_site_name, ndr_charset_length(r->client_site_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6152                 }
6153         }
6154         return NDR_ERR_SUCCESS;
6155 }
6156
6157 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRGetDCNameInfo *r)
6158 {
6159         uint32_t _ptr_dc_unc;
6160         TALLOC_CTX *_mem_save_dc_unc_0;
6161         uint32_t _ptr_dc_address;
6162         TALLOC_CTX *_mem_save_dc_address_0;
6163         uint32_t _ptr_domain_name;
6164         TALLOC_CTX *_mem_save_domain_name_0;
6165         uint32_t _ptr_forest_name;
6166         TALLOC_CTX *_mem_save_forest_name_0;
6167         uint32_t _ptr_dc_site_name;
6168         TALLOC_CTX *_mem_save_dc_site_name_0;
6169         uint32_t _ptr_client_site_name;
6170         TALLOC_CTX *_mem_save_client_site_name_0;
6171         if (ndr_flags & NDR_SCALARS) {
6172                 NDR_CHECK(ndr_pull_align(ndr, 4));
6173                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_unc));
6174                 if (_ptr_dc_unc) {
6175                         NDR_PULL_ALLOC(ndr, r->dc_unc);
6176                 } else {
6177                         r->dc_unc = NULL;
6178                 }
6179                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_address));
6180                 if (_ptr_dc_address) {
6181                         NDR_PULL_ALLOC(ndr, r->dc_address);
6182                 } else {
6183                         r->dc_address = NULL;
6184                 }
6185                 NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo_AddressType(ndr, NDR_SCALARS, &r->dc_address_type));
6186                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->domain_guid));
6187                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
6188                 if (_ptr_domain_name) {
6189                         NDR_PULL_ALLOC(ndr, r->domain_name);
6190                 } else {
6191                         r->domain_name = NULL;
6192                 }
6193                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_name));
6194                 if (_ptr_forest_name) {
6195                         NDR_PULL_ALLOC(ndr, r->forest_name);
6196                 } else {
6197                         r->forest_name = NULL;
6198                 }
6199                 NDR_CHECK(ndr_pull_netr_DsR_DcFlags(ndr, NDR_SCALARS, &r->dc_flags));
6200                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dc_site_name));
6201                 if (_ptr_dc_site_name) {
6202                         NDR_PULL_ALLOC(ndr, r->dc_site_name);
6203                 } else {
6204                         r->dc_site_name = NULL;
6205                 }
6206                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_site_name));
6207                 if (_ptr_client_site_name) {
6208                         NDR_PULL_ALLOC(ndr, r->client_site_name);
6209                 } else {
6210                         r->client_site_name = NULL;
6211                 }
6212         }
6213         if (ndr_flags & NDR_BUFFERS) {
6214                 if (r->dc_unc) {
6215                         _mem_save_dc_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6216                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_unc, 0);
6217                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_unc));
6218                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_unc));
6219                         if (ndr_get_array_length(ndr, &r->dc_unc) > ndr_get_array_size(ndr, &r->dc_unc)) {
6220                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_unc), ndr_get_array_length(ndr, &r->dc_unc));
6221                         }
6222                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t)));
6223                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_unc, ndr_get_array_length(ndr, &r->dc_unc), sizeof(uint16_t), CH_UTF16));
6224                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_unc_0, 0);
6225                 }
6226                 if (r->dc_address) {
6227                         _mem_save_dc_address_0 = NDR_PULL_GET_MEM_CTX(ndr);
6228                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_address, 0);
6229                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_address));
6230                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_address));
6231                         if (ndr_get_array_length(ndr, &r->dc_address) > ndr_get_array_size(ndr, &r->dc_address)) {
6232                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_address), ndr_get_array_length(ndr, &r->dc_address));
6233                         }
6234                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t)));
6235                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_address, ndr_get_array_length(ndr, &r->dc_address), sizeof(uint16_t), CH_UTF16));
6236                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_address_0, 0);
6237                 }
6238                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->domain_guid));
6239                 if (r->domain_name) {
6240                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6241                         NDR_PULL_SET_MEM_CTX(ndr, r->domain_name, 0);
6242                         NDR_CHECK(ndr_pull_array_size(ndr, &r->domain_name));
6243                         NDR_CHECK(ndr_pull_array_length(ndr, &r->domain_name));
6244                         if (ndr_get_array_length(ndr, &r->domain_name) > ndr_get_array_size(ndr, &r->domain_name)) {
6245                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->domain_name), ndr_get_array_length(ndr, &r->domain_name));
6246                         }
6247                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t)));
6248                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->domain_name, ndr_get_array_length(ndr, &r->domain_name), sizeof(uint16_t), CH_UTF16));
6249                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
6250                 }
6251                 if (r->forest_name) {
6252                         _mem_save_forest_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6253                         NDR_PULL_SET_MEM_CTX(ndr, r->forest_name, 0);
6254                         NDR_CHECK(ndr_pull_array_size(ndr, &r->forest_name));
6255                         NDR_CHECK(ndr_pull_array_length(ndr, &r->forest_name));
6256                         if (ndr_get_array_length(ndr, &r->forest_name) > ndr_get_array_size(ndr, &r->forest_name)) {
6257                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->forest_name), ndr_get_array_length(ndr, &r->forest_name));
6258                         }
6259                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t)));
6260                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->forest_name, ndr_get_array_length(ndr, &r->forest_name), sizeof(uint16_t), CH_UTF16));
6261                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_name_0, 0);
6262                 }
6263                 if (r->dc_site_name) {
6264                         _mem_save_dc_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6265                         NDR_PULL_SET_MEM_CTX(ndr, r->dc_site_name, 0);
6266                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dc_site_name));
6267                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dc_site_name));
6268                         if (ndr_get_array_length(ndr, &r->dc_site_name) > ndr_get_array_size(ndr, &r->dc_site_name)) {
6269                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dc_site_name), ndr_get_array_length(ndr, &r->dc_site_name));
6270                         }
6271                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t)));
6272                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dc_site_name, ndr_get_array_length(ndr, &r->dc_site_name), sizeof(uint16_t), CH_UTF16));
6273                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dc_site_name_0, 0);
6274                 }
6275                 if (r->client_site_name) {
6276                         _mem_save_client_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6277                         NDR_PULL_SET_MEM_CTX(ndr, r->client_site_name, 0);
6278                         NDR_CHECK(ndr_pull_array_size(ndr, &r->client_site_name));
6279                         NDR_CHECK(ndr_pull_array_length(ndr, &r->client_site_name));
6280                         if (ndr_get_array_length(ndr, &r->client_site_name) > ndr_get_array_size(ndr, &r->client_site_name)) {
6281                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client_site_name), ndr_get_array_length(ndr, &r->client_site_name));
6282                         }
6283                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t)));
6284                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client_site_name, ndr_get_array_length(ndr, &r->client_site_name), sizeof(uint16_t), CH_UTF16));
6285                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_site_name_0, 0);
6286                 }
6287         }
6288         return NDR_ERR_SUCCESS;
6289 }
6290
6291 _PUBLIC_ void ndr_print_netr_DsRGetDCNameInfo(struct ndr_print *ndr, const char *name, const struct netr_DsRGetDCNameInfo *r)
6292 {
6293         ndr_print_struct(ndr, name, "netr_DsRGetDCNameInfo");
6294         ndr->depth++;
6295         ndr_print_ptr(ndr, "dc_unc", r->dc_unc);
6296         ndr->depth++;
6297         if (r->dc_unc) {
6298                 ndr_print_string(ndr, "dc_unc", r->dc_unc);
6299         }
6300         ndr->depth--;
6301         ndr_print_ptr(ndr, "dc_address", r->dc_address);
6302         ndr->depth++;
6303         if (r->dc_address) {
6304                 ndr_print_string(ndr, "dc_address", r->dc_address);
6305         }
6306         ndr->depth--;
6307         ndr_print_netr_DsRGetDCNameInfo_AddressType(ndr, "dc_address_type", r->dc_address_type);
6308         ndr_print_GUID(ndr, "domain_guid", &r->domain_guid);
6309         ndr_print_ptr(ndr, "domain_name", r->domain_name);
6310         ndr->depth++;
6311         if (r->domain_name) {
6312                 ndr_print_string(ndr, "domain_name", r->domain_name);
6313         }
6314         ndr->depth--;
6315         ndr_print_ptr(ndr, "forest_name", r->forest_name);
6316         ndr->depth++;
6317         if (r->forest_name) {
6318                 ndr_print_string(ndr, "forest_name", r->forest_name);
6319         }
6320         ndr->depth--;
6321         ndr_print_netr_DsR_DcFlags(ndr, "dc_flags", r->dc_flags);
6322         ndr_print_ptr(ndr, "dc_site_name", r->dc_site_name);
6323         ndr->depth++;
6324         if (r->dc_site_name) {
6325                 ndr_print_string(ndr, "dc_site_name", r->dc_site_name);
6326         }
6327         ndr->depth--;
6328         ndr_print_ptr(ndr, "client_site_name", r->client_site_name);
6329         ndr->depth++;
6330         if (r->client_site_name) {
6331                 ndr_print_string(ndr, "client_site_name", r->client_site_name);
6332         }
6333         ndr->depth--;
6334         ndr->depth--;
6335 }
6336
6337 static enum ndr_err_code ndr_push_netr_BinaryString(struct ndr_push *ndr, int ndr_flags, const struct netr_BinaryString *r)
6338 {
6339         uint32_t cntr_data_1;
6340         {
6341                 uint32_t _flags_save_STRUCT = ndr->flags;
6342                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6343                 if (ndr_flags & NDR_SCALARS) {
6344                         NDR_CHECK(ndr_push_align(ndr, 4));
6345                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->length));
6346                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
6347                         NDR_CHECK(ndr_push_unique_ptr(ndr, r->data));
6348                 }
6349                 if (ndr_flags & NDR_BUFFERS) {
6350                         if (r->data) {
6351                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
6352                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6353                                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length / 2));
6354                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6355                                         NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->data[cntr_data_1]));
6356                                 }
6357                         }
6358                 }
6359                 ndr->flags = _flags_save_STRUCT;
6360         }
6361         return NDR_ERR_SUCCESS;
6362 }
6363
6364 static enum ndr_err_code ndr_pull_netr_BinaryString(struct ndr_pull *ndr, int ndr_flags, struct netr_BinaryString *r)
6365 {
6366         uint32_t _ptr_data;
6367         uint32_t cntr_data_1;
6368         TALLOC_CTX *_mem_save_data_0;
6369         TALLOC_CTX *_mem_save_data_1;
6370         {
6371                 uint32_t _flags_save_STRUCT = ndr->flags;
6372                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6373                 if (ndr_flags & NDR_SCALARS) {
6374                         NDR_CHECK(ndr_pull_align(ndr, 4));
6375                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->length));
6376                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
6377                         NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
6378                         if (_ptr_data) {
6379                                 NDR_PULL_ALLOC(ndr, r->data);
6380                         } else {
6381                                 r->data = NULL;
6382                         }
6383                 }
6384                 if (ndr_flags & NDR_BUFFERS) {
6385                         if (r->data) {
6386                                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
6387                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6388                                 NDR_CHECK(ndr_pull_array_size(ndr, &r->data));
6389                                 NDR_CHECK(ndr_pull_array_length(ndr, &r->data));
6390                                 if (ndr_get_array_length(ndr, &r->data) > ndr_get_array_size(ndr, &r->data)) {
6391                                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data), ndr_get_array_length(ndr, &r->data));
6392                                 }
6393                                 NDR_PULL_ALLOC_N(ndr, r->data, ndr_get_array_size(ndr, &r->data));
6394                                 _mem_save_data_1 = NDR_PULL_GET_MEM_CTX(ndr);
6395                                 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
6396                                 for (cntr_data_1 = 0; cntr_data_1 < r->length / 2; cntr_data_1++) {
6397                                         NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->data[cntr_data_1]));
6398                                 }
6399                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_1, 0);
6400                                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
6401                         }
6402                         if (r->data) {
6403                                 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->data, r->size / 2));
6404                         }
6405                         if (r->data) {
6406                                 NDR_CHECK(ndr_check_array_length(ndr, (void*)&r->data, r->length / 2));
6407                         }
6408                 }
6409                 ndr->flags = _flags_save_STRUCT;
6410         }
6411         return NDR_ERR_SUCCESS;
6412 }
6413
6414 _PUBLIC_ void ndr_print_netr_BinaryString(struct ndr_print *ndr, const char *name, const struct netr_BinaryString *r)
6415 {
6416         uint32_t cntr_data_1;
6417         ndr_print_struct(ndr, name, "netr_BinaryString");
6418         {
6419                 uint32_t _flags_save_STRUCT = ndr->flags;
6420                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
6421                 ndr->depth++;
6422                 ndr_print_uint16(ndr, "length", r->length);
6423                 ndr_print_uint16(ndr, "size", r->size);
6424                 ndr_print_ptr(ndr, "data", r->data);
6425                 ndr->depth++;
6426                 if (r->data) {
6427                         ndr->print(ndr, "%s: ARRAY(%d)", "data", r->length / 2);
6428                         ndr->depth++;
6429                         for (cntr_data_1=0;cntr_data_1<r->length / 2;cntr_data_1++) {
6430                                 char *idx_1=NULL;
6431                                 asprintf(&idx_1, "[%d]", cntr_data_1);
6432                                 if (idx_1) {
6433                                         ndr_print_uint16(ndr, "data", r->data[cntr_data_1]);
6434                                         free(idx_1);
6435                                 }
6436                         }
6437                         ndr->depth--;
6438                 }
6439                 ndr->depth--;
6440                 ndr->depth--;
6441                 ndr->flags = _flags_save_STRUCT;
6442         }
6443 }
6444
6445 static enum ndr_err_code ndr_push_netr_DomainQuery1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainQuery1 *r)
6446 {
6447         uint32_t cntr_unknown7_0;
6448         if (ndr_flags & NDR_SCALARS) {
6449                 NDR_CHECK(ndr_push_align(ndr, 4));
6450                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6451                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_domain));
6452                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->workstation_site));
6453                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown1));
6454                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown2));
6455                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown3));
6456                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->unknown4));
6457                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6458                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->product));
6459                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6460                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6461                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6462                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown7[cntr_unknown7_0]));
6463                 }
6464         }
6465         if (ndr_flags & NDR_BUFFERS) {
6466                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6467                 if (r->workstation_domain) {
6468                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6469                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6470                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_domain, CH_UTF16)));
6471                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_domain, ndr_charset_length(r->workstation_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6472                 }
6473                 if (r->workstation_site) {
6474                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6475                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6476                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->workstation_site, CH_UTF16)));
6477                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->workstation_site, ndr_charset_length(r->workstation_site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6478                 }
6479                 if (r->unknown1) {
6480                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6481                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6482                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown1, CH_UTF16)));
6483                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown1, ndr_charset_length(r->unknown1, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6484                 }
6485                 if (r->unknown2) {
6486                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6487                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6488                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown2, CH_UTF16)));
6489                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown2, ndr_charset_length(r->unknown2, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6490                 }
6491                 if (r->unknown3) {
6492                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6493                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6494                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown3, CH_UTF16)));
6495                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown3, ndr_charset_length(r->unknown3, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6496                 }
6497                 if (r->unknown4) {
6498                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6499                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6500                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->unknown4, CH_UTF16)));
6501                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->unknown4, ndr_charset_length(r->unknown4, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6502                 }
6503                 NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6504                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->product));
6505                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6506                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6507         }
6508         return NDR_ERR_SUCCESS;
6509 }
6510
6511 static enum ndr_err_code ndr_pull_netr_DomainQuery1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainQuery1 *r)
6512 {
6513         uint32_t _ptr_workstation_domain;
6514         TALLOC_CTX *_mem_save_workstation_domain_0;
6515         uint32_t _ptr_workstation_site;
6516         TALLOC_CTX *_mem_save_workstation_site_0;
6517         uint32_t _ptr_unknown1;
6518         TALLOC_CTX *_mem_save_unknown1_0;
6519         uint32_t _ptr_unknown2;
6520         TALLOC_CTX *_mem_save_unknown2_0;
6521         uint32_t _ptr_unknown3;
6522         TALLOC_CTX *_mem_save_unknown3_0;
6523         uint32_t _ptr_unknown4;
6524         TALLOC_CTX *_mem_save_unknown4_0;
6525         uint32_t cntr_unknown7_0;
6526         if (ndr_flags & NDR_SCALARS) {
6527                 NDR_CHECK(ndr_pull_align(ndr, 4));
6528                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS, &r->blob));
6529                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_domain));
6530                 if (_ptr_workstation_domain) {
6531                         NDR_PULL_ALLOC(ndr, r->workstation_domain);
6532                 } else {
6533                         r->workstation_domain = NULL;
6534                 }
6535                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_workstation_site));
6536                 if (_ptr_workstation_site) {
6537                         NDR_PULL_ALLOC(ndr, r->workstation_site);
6538                 } else {
6539                         r->workstation_site = NULL;
6540                 }
6541                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown1));
6542                 if (_ptr_unknown1) {
6543                         NDR_PULL_ALLOC(ndr, r->unknown1);
6544                 } else {
6545                         r->unknown1 = NULL;
6546                 }
6547                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown2));
6548                 if (_ptr_unknown2) {
6549                         NDR_PULL_ALLOC(ndr, r->unknown2);
6550                 } else {
6551                         r->unknown2 = NULL;
6552                 }
6553                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown3));
6554                 if (_ptr_unknown3) {
6555                         NDR_PULL_ALLOC(ndr, r->unknown3);
6556                 } else {
6557                         r->unknown3 = NULL;
6558                 }
6559                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_unknown4));
6560                 if (_ptr_unknown4) {
6561                         NDR_PULL_ALLOC(ndr, r->unknown4);
6562                 } else {
6563                         r->unknown4 = NULL;
6564                 }
6565                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->blob2));
6566                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->product));
6567                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown5));
6568                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->unknown6));
6569                 for (cntr_unknown7_0 = 0; cntr_unknown7_0 < 4; cntr_unknown7_0++) {
6570                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown7[cntr_unknown7_0]));
6571                 }
6572         }
6573         if (ndr_flags & NDR_BUFFERS) {
6574                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_BUFFERS, &r->blob));
6575                 if (r->workstation_domain) {
6576                         _mem_save_workstation_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
6577                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_domain, 0);
6578                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_domain));
6579                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_domain));
6580                         if (ndr_get_array_length(ndr, &r->workstation_domain) > ndr_get_array_size(ndr, &r->workstation_domain)) {
6581                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_domain), ndr_get_array_length(ndr, &r->workstation_domain));
6582                         }
6583                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t)));
6584                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_domain, ndr_get_array_length(ndr, &r->workstation_domain), sizeof(uint16_t), CH_UTF16));
6585                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_domain_0, 0);
6586                 }
6587                 if (r->workstation_site) {
6588                         _mem_save_workstation_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
6589                         NDR_PULL_SET_MEM_CTX(ndr, r->workstation_site, 0);
6590                         NDR_CHECK(ndr_pull_array_size(ndr, &r->workstation_site));
6591                         NDR_CHECK(ndr_pull_array_length(ndr, &r->workstation_site));
6592                         if (ndr_get_array_length(ndr, &r->workstation_site) > ndr_get_array_size(ndr, &r->workstation_site)) {
6593                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->workstation_site), ndr_get_array_length(ndr, &r->workstation_site));
6594                         }
6595                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t)));
6596                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->workstation_site, ndr_get_array_length(ndr, &r->workstation_site), sizeof(uint16_t), CH_UTF16));
6597                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_workstation_site_0, 0);
6598                 }
6599                 if (r->unknown1) {
6600                         _mem_save_unknown1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6601                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown1, 0);
6602                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown1));
6603                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown1));
6604                         if (ndr_get_array_length(ndr, &r->unknown1) > ndr_get_array_size(ndr, &r->unknown1)) {
6605                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown1), ndr_get_array_length(ndr, &r->unknown1));
6606                         }
6607                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t)));
6608                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown1, ndr_get_array_length(ndr, &r->unknown1), sizeof(uint16_t), CH_UTF16));
6609                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown1_0, 0);
6610                 }
6611                 if (r->unknown2) {
6612                         _mem_save_unknown2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6613                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown2, 0);
6614                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown2));
6615                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown2));
6616                         if (ndr_get_array_length(ndr, &r->unknown2) > ndr_get_array_size(ndr, &r->unknown2)) {
6617                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown2), ndr_get_array_length(ndr, &r->unknown2));
6618                         }
6619                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t)));
6620                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown2, ndr_get_array_length(ndr, &r->unknown2), sizeof(uint16_t), CH_UTF16));
6621                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown2_0, 0);
6622                 }
6623                 if (r->unknown3) {
6624                         _mem_save_unknown3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6625                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown3, 0);
6626                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown3));
6627                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown3));
6628                         if (ndr_get_array_length(ndr, &r->unknown3) > ndr_get_array_size(ndr, &r->unknown3)) {
6629                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown3), ndr_get_array_length(ndr, &r->unknown3));
6630                         }
6631                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t)));
6632                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown3, ndr_get_array_length(ndr, &r->unknown3), sizeof(uint16_t), CH_UTF16));
6633                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown3_0, 0);
6634                 }
6635                 if (r->unknown4) {
6636                         _mem_save_unknown4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6637                         NDR_PULL_SET_MEM_CTX(ndr, r->unknown4, 0);
6638                         NDR_CHECK(ndr_pull_array_size(ndr, &r->unknown4));
6639                         NDR_CHECK(ndr_pull_array_length(ndr, &r->unknown4));
6640                         if (ndr_get_array_length(ndr, &r->unknown4) > ndr_get_array_size(ndr, &r->unknown4)) {
6641                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->unknown4), ndr_get_array_length(ndr, &r->unknown4));
6642                         }
6643                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t)));
6644                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->unknown4, ndr_get_array_length(ndr, &r->unknown4), sizeof(uint16_t), CH_UTF16));
6645                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_unknown4_0, 0);
6646                 }
6647                 NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->blob2));
6648                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->product));
6649                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown5));
6650                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->unknown6));
6651         }
6652         return NDR_ERR_SUCCESS;
6653 }
6654
6655 _PUBLIC_ void ndr_print_netr_DomainQuery1(struct ndr_print *ndr, const char *name, const struct netr_DomainQuery1 *r)
6656 {
6657         uint32_t cntr_unknown7_0;
6658         ndr_print_struct(ndr, name, "netr_DomainQuery1");
6659         ndr->depth++;
6660         ndr_print_netr_Blob(ndr, "blob", &r->blob);
6661         ndr_print_ptr(ndr, "workstation_domain", r->workstation_domain);
6662         ndr->depth++;
6663         if (r->workstation_domain) {
6664                 ndr_print_string(ndr, "workstation_domain", r->workstation_domain);
6665         }
6666         ndr->depth--;
6667         ndr_print_ptr(ndr, "workstation_site", r->workstation_site);
6668         ndr->depth++;
6669         if (r->workstation_site) {
6670                 ndr_print_string(ndr, "workstation_site", r->workstation_site);
6671         }
6672         ndr->depth--;
6673         ndr_print_ptr(ndr, "unknown1", r->unknown1);
6674         ndr->depth++;
6675         if (r->unknown1) {
6676                 ndr_print_string(ndr, "unknown1", r->unknown1);
6677         }
6678         ndr->depth--;
6679         ndr_print_ptr(ndr, "unknown2", r->unknown2);
6680         ndr->depth++;
6681         if (r->unknown2) {
6682                 ndr_print_string(ndr, "unknown2", r->unknown2);
6683         }
6684         ndr->depth--;
6685         ndr_print_ptr(ndr, "unknown3", r->unknown3);
6686         ndr->depth++;
6687         if (r->unknown3) {
6688                 ndr_print_string(ndr, "unknown3", r->unknown3);
6689         }
6690         ndr->depth--;
6691         ndr_print_ptr(ndr, "unknown4", r->unknown4);
6692         ndr->depth++;
6693         if (r->unknown4) {
6694                 ndr_print_string(ndr, "unknown4", r->unknown4);
6695         }
6696         ndr->depth--;
6697         ndr_print_netr_BinaryString(ndr, "blob2", &r->blob2);
6698         ndr_print_lsa_String(ndr, "product", &r->product);
6699         ndr_print_lsa_String(ndr, "unknown5", &r->unknown5);
6700         ndr_print_lsa_String(ndr, "unknown6", &r->unknown6);
6701         ndr->print(ndr, "%s: ARRAY(%d)", "unknown7", 4);
6702         ndr->depth++;
6703         for (cntr_unknown7_0=0;cntr_unknown7_0<4;cntr_unknown7_0++) {
6704                 char *idx_0=NULL;
6705                 asprintf(&idx_0, "[%d]", cntr_unknown7_0);
6706                 if (idx_0) {
6707                         ndr_print_uint32(ndr, "unknown7", r->unknown7[cntr_unknown7_0]);
6708                         free(idx_0);
6709                 }
6710         }
6711         ndr->depth--;
6712         ndr->depth--;
6713 }
6714
6715 static enum ndr_err_code ndr_push_netr_DomainQuery(struct ndr_push *ndr, int ndr_flags, const union netr_DomainQuery *r)
6716 {
6717         if (ndr_flags & NDR_SCALARS) {
6718                 int level = ndr_push_get_switch_value(ndr, r);
6719                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6720                 switch (level) {
6721                         case 1: {
6722                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6723                         break; }
6724
6725                         case 2: {
6726                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->query1));
6727                         break; }
6728
6729                         default:
6730                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6731                 }
6732         }
6733         if (ndr_flags & NDR_BUFFERS) {
6734                 int level = ndr_push_get_switch_value(ndr, r);
6735                 switch (level) {
6736                         case 1:
6737                                 if (r->query1) {
6738                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6739                                 }
6740                         break;
6741
6742                         case 2:
6743                                 if (r->query1) {
6744                                         NDR_CHECK(ndr_push_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6745                                 }
6746                         break;
6747
6748                         default:
6749                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6750                 }
6751         }
6752         return NDR_ERR_SUCCESS;
6753 }
6754
6755 static enum ndr_err_code ndr_pull_netr_DomainQuery(struct ndr_pull *ndr, int ndr_flags, union netr_DomainQuery *r)
6756 {
6757         int level;
6758         uint32_t _level;
6759         TALLOC_CTX *_mem_save_query1_0;
6760         level = ndr_pull_get_switch_value(ndr, r);
6761         if (ndr_flags & NDR_SCALARS) {
6762                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6763                 if (_level != level) {
6764                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6765                 }
6766                 switch (level) {
6767                         case 1: {
6768                                 uint32_t _ptr_query1;
6769                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6770                                 if (_ptr_query1) {
6771                                         NDR_PULL_ALLOC(ndr, r->query1);
6772                                 } else {
6773                                         r->query1 = NULL;
6774                                 }
6775                         break; }
6776
6777                         case 2: {
6778                                 uint32_t _ptr_query1;
6779                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_query1));
6780                                 if (_ptr_query1) {
6781                                         NDR_PULL_ALLOC(ndr, r->query1);
6782                                 } else {
6783                                         r->query1 = NULL;
6784                                 }
6785                         break; }
6786
6787                         default:
6788                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6789                 }
6790         }
6791         if (ndr_flags & NDR_BUFFERS) {
6792                 switch (level) {
6793                         case 1:
6794                                 if (r->query1) {
6795                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6796                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6797                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6798                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6799                                 }
6800                         break;
6801
6802                         case 2:
6803                                 if (r->query1) {
6804                                         _mem_save_query1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6805                                         NDR_PULL_SET_MEM_CTX(ndr, r->query1, 0);
6806                                         NDR_CHECK(ndr_pull_netr_DomainQuery1(ndr, NDR_SCALARS|NDR_BUFFERS, r->query1));
6807                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query1_0, 0);
6808                                 }
6809                         break;
6810
6811                         default:
6812                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6813                 }
6814         }
6815         return NDR_ERR_SUCCESS;
6816 }
6817
6818 _PUBLIC_ void ndr_print_netr_DomainQuery(struct ndr_print *ndr, const char *name, const union netr_DomainQuery *r)
6819 {
6820         int level;
6821         level = ndr_print_get_switch_value(ndr, r);
6822         ndr_print_union(ndr, name, level, "netr_DomainQuery");
6823         switch (level) {
6824                 case 1:
6825                         ndr_print_ptr(ndr, "query1", r->query1);
6826                         ndr->depth++;
6827                         if (r->query1) {
6828                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6829                         }
6830                         ndr->depth--;
6831                 break;
6832
6833                 case 2:
6834                         ndr_print_ptr(ndr, "query1", r->query1);
6835                         ndr->depth++;
6836                         if (r->query1) {
6837                                 ndr_print_netr_DomainQuery1(ndr, "query1", r->query1);
6838                         }
6839                         ndr->depth--;
6840                 break;
6841
6842                 default:
6843                         ndr_print_bad_level(ndr, name, level);
6844         }
6845 }
6846
6847 static enum ndr_err_code ndr_push_netr_DomainTrustInfo(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustInfo *r)
6848 {
6849         uint32_t cntr_unknown1_0;
6850         uint32_t cntr_unknown_0;
6851         if (ndr_flags & NDR_SCALARS) {
6852                 NDR_CHECK(ndr_push_align(ndr, 4));
6853                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6854                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6855                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->forest));
6856                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
6857                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
6858                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6859                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6860                 }
6861                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6862                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6863                 }
6864         }
6865         if (ndr_flags & NDR_BUFFERS) {
6866                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6867                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6868                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6869                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
6870                 if (r->sid) {
6871                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6872                 }
6873                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6874                         NDR_CHECK(ndr_push_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6875                 }
6876         }
6877         return NDR_ERR_SUCCESS;
6878 }
6879
6880 static enum ndr_err_code ndr_pull_netr_DomainTrustInfo(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustInfo *r)
6881 {
6882         uint32_t _ptr_sid;
6883         TALLOC_CTX *_mem_save_sid_0;
6884         uint32_t cntr_unknown1_0;
6885         uint32_t cntr_unknown_0;
6886         if (ndr_flags & NDR_SCALARS) {
6887                 NDR_CHECK(ndr_pull_align(ndr, 4));
6888                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->domainname));
6889                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->fulldomainname));
6890                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->forest));
6891                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
6892                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
6893                 if (_ptr_sid) {
6894                         NDR_PULL_ALLOC(ndr, r->sid);
6895                 } else {
6896                         r->sid = NULL;
6897                 }
6898                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6899                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_SCALARS, &r->unknown1[cntr_unknown1_0]));
6900                 }
6901                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 4; cntr_unknown_0++) {
6902                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
6903                 }
6904         }
6905         if (ndr_flags & NDR_BUFFERS) {
6906                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->domainname));
6907                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->fulldomainname));
6908                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->forest));
6909                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
6910                 if (r->sid) {
6911                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6912                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
6913                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
6914                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
6915                 }
6916                 for (cntr_unknown1_0 = 0; cntr_unknown1_0 < 4; cntr_unknown1_0++) {
6917                         NDR_CHECK(ndr_pull_netr_BinaryString(ndr, NDR_BUFFERS, &r->unknown1[cntr_unknown1_0]));
6918                 }
6919         }
6920         return NDR_ERR_SUCCESS;
6921 }
6922
6923 _PUBLIC_ void ndr_print_netr_DomainTrustInfo(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustInfo *r)
6924 {
6925         uint32_t cntr_unknown1_0;
6926         uint32_t cntr_unknown_0;
6927         ndr_print_struct(ndr, name, "netr_DomainTrustInfo");
6928         ndr->depth++;
6929         ndr_print_lsa_String(ndr, "domainname", &r->domainname);
6930         ndr_print_lsa_String(ndr, "fulldomainname", &r->fulldomainname);
6931         ndr_print_lsa_String(ndr, "forest", &r->forest);
6932         ndr_print_GUID(ndr, "guid", &r->guid);
6933         ndr_print_ptr(ndr, "sid", r->sid);
6934         ndr->depth++;
6935         if (r->sid) {
6936                 ndr_print_dom_sid2(ndr, "sid", r->sid);
6937         }
6938         ndr->depth--;
6939         ndr->print(ndr, "%s: ARRAY(%d)", "unknown1", 4);
6940         ndr->depth++;
6941         for (cntr_unknown1_0=0;cntr_unknown1_0<4;cntr_unknown1_0++) {
6942                 char *idx_0=NULL;
6943                 asprintf(&idx_0, "[%d]", cntr_unknown1_0);
6944                 if (idx_0) {
6945                         ndr_print_netr_BinaryString(ndr, "unknown1", &r->unknown1[cntr_unknown1_0]);
6946                         free(idx_0);
6947                 }
6948         }
6949         ndr->depth--;
6950         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 4);
6951         ndr->depth++;
6952         for (cntr_unknown_0=0;cntr_unknown_0<4;cntr_unknown_0++) {
6953                 char *idx_0=NULL;
6954                 asprintf(&idx_0, "[%d]", cntr_unknown_0);
6955                 if (idx_0) {
6956                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
6957                         free(idx_0);
6958                 }
6959         }
6960         ndr->depth--;
6961         ndr->depth--;
6962 }
6963
6964 static enum ndr_err_code ndr_push_netr_DomainInfo1(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainInfo1 *r)
6965 {
6966         uint32_t cntr_trusts_1;
6967         uint32_t cntr_unknown_0;
6968         if (ndr_flags & NDR_SCALARS) {
6969                 NDR_CHECK(ndr_push_align(ndr, 4));
6970                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
6971                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
6972                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->trusts));
6973                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
6974                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown[cntr_unknown_0]));
6975                 }
6976         }
6977         if (ndr_flags & NDR_BUFFERS) {
6978                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
6979                 if (r->trusts) {
6980                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_trusts));
6981                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6982                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
6983                         }
6984                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
6985                                 NDR_CHECK(ndr_push_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
6986                         }
6987                 }
6988         }
6989         return NDR_ERR_SUCCESS;
6990 }
6991
6992 static enum ndr_err_code ndr_pull_netr_DomainInfo1(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainInfo1 *r)
6993 {
6994         uint32_t _ptr_trusts;
6995         uint32_t cntr_trusts_1;
6996         TALLOC_CTX *_mem_save_trusts_0;
6997         TALLOC_CTX *_mem_save_trusts_1;
6998         uint32_t cntr_unknown_0;
6999         if (ndr_flags & NDR_SCALARS) {
7000                 NDR_CHECK(ndr_pull_align(ndr, 4));
7001                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->domaininfo));
7002                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_trusts));
7003                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusts));
7004                 if (_ptr_trusts) {
7005                         NDR_PULL_ALLOC(ndr, r->trusts);
7006                 } else {
7007                         r->trusts = NULL;
7008                 }
7009                 for (cntr_unknown_0 = 0; cntr_unknown_0 < 14; cntr_unknown_0++) {
7010                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown[cntr_unknown_0]));
7011                 }
7012         }
7013         if (ndr_flags & NDR_BUFFERS) {
7014                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->domaininfo));
7015                 if (r->trusts) {
7016                         _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
7017                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7018                         NDR_CHECK(ndr_pull_array_size(ndr, &r->trusts));
7019                         NDR_PULL_ALLOC_N(ndr, r->trusts, ndr_get_array_size(ndr, &r->trusts));
7020                         _mem_save_trusts_1 = NDR_PULL_GET_MEM_CTX(ndr);
7021                         NDR_PULL_SET_MEM_CTX(ndr, r->trusts, 0);
7022                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7023                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_SCALARS, &r->trusts[cntr_trusts_1]));
7024                         }
7025                         for (cntr_trusts_1 = 0; cntr_trusts_1 < r->num_trusts; cntr_trusts_1++) {
7026                                 NDR_CHECK(ndr_pull_netr_DomainTrustInfo(ndr, NDR_BUFFERS, &r->trusts[cntr_trusts_1]));
7027                         }
7028                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_1, 0);
7029                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, 0);
7030                 }
7031                 if (r->trusts) {
7032                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->trusts, r->num_trusts));
7033                 }
7034         }
7035         return NDR_ERR_SUCCESS;
7036 }
7037
7038 _PUBLIC_ void ndr_print_netr_DomainInfo1(struct ndr_print *ndr, const char *name, const struct netr_DomainInfo1 *r)
7039 {
7040         uint32_t cntr_trusts_1;
7041         uint32_t cntr_unknown_0;
7042         ndr_print_struct(ndr, name, "netr_DomainInfo1");
7043         ndr->depth++;
7044         ndr_print_netr_DomainTrustInfo(ndr, "domaininfo", &r->domaininfo);
7045         ndr_print_uint32(ndr, "num_trusts", r->num_trusts);
7046         ndr_print_ptr(ndr, "trusts", r->trusts);
7047         ndr->depth++;
7048         if (r->trusts) {
7049                 ndr->print(ndr, "%s: ARRAY(%d)", "trusts", r->num_trusts);
7050                 ndr->depth++;
7051                 for (cntr_trusts_1=0;cntr_trusts_1<r->num_trusts;cntr_trusts_1++) {
7052                         char *idx_1=NULL;
7053                         asprintf(&idx_1, "[%d]", cntr_trusts_1);
7054                         if (idx_1) {
7055                                 ndr_print_netr_DomainTrustInfo(ndr, "trusts", &r->trusts[cntr_trusts_1]);
7056                                 free(idx_1);
7057                         }
7058                 }
7059                 ndr->depth--;
7060         }
7061         ndr->depth--;
7062         ndr->print(ndr, "%s: ARRAY(%d)", "unknown", 14);
7063         ndr->depth++;
7064         for (cntr_unknown_0=0;cntr_unknown_0<14;cntr_unknown_0++) {
7065                 char *idx_0=NULL;
7066                 asprintf(&idx_0, "[%d]", cntr_unknown_0);
7067                 if (idx_0) {
7068                         ndr_print_uint32(ndr, "unknown", r->unknown[cntr_unknown_0]);
7069                         free(idx_0);
7070                 }
7071         }
7072         ndr->depth--;
7073         ndr->depth--;
7074 }
7075
7076 static enum ndr_err_code ndr_push_netr_DomainInfo(struct ndr_push *ndr, int ndr_flags, const union netr_DomainInfo *r)
7077 {
7078         if (ndr_flags & NDR_SCALARS) {
7079                 int level = ndr_push_get_switch_value(ndr, r);
7080                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7081                 switch (level) {
7082                         case 1: {
7083                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7084                         break; }
7085
7086                         case 2: {
7087                                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7088                         break; }
7089
7090                         default:
7091                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7092                 }
7093         }
7094         if (ndr_flags & NDR_BUFFERS) {
7095                 int level = ndr_push_get_switch_value(ndr, r);
7096                 switch (level) {
7097                         case 1:
7098                                 if (r->info1) {
7099                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7100                                 }
7101                         break;
7102
7103                         case 2:
7104                                 if (r->info1) {
7105                                         NDR_CHECK(ndr_push_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7106                                 }
7107                         break;
7108
7109                         default:
7110                                 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7111                 }
7112         }
7113         return NDR_ERR_SUCCESS;
7114 }
7115
7116 static enum ndr_err_code ndr_pull_netr_DomainInfo(struct ndr_pull *ndr, int ndr_flags, union netr_DomainInfo *r)
7117 {
7118         int level;
7119         uint32_t _level;
7120         TALLOC_CTX *_mem_save_info1_0;
7121         level = ndr_pull_get_switch_value(ndr, r);
7122         if (ndr_flags & NDR_SCALARS) {
7123                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7124                 if (_level != level) {
7125                         return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7126                 }
7127                 switch (level) {
7128                         case 1: {
7129                                 uint32_t _ptr_info1;
7130                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7131                                 if (_ptr_info1) {
7132                                         NDR_PULL_ALLOC(ndr, r->info1);
7133                                 } else {
7134                                         r->info1 = NULL;
7135                                 }
7136                         break; }
7137
7138                         case 2: {
7139                                 uint32_t _ptr_info1;
7140                                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7141                                 if (_ptr_info1) {
7142                                         NDR_PULL_ALLOC(ndr, r->info1);
7143                                 } else {
7144                                         r->info1 = NULL;
7145                                 }
7146                         break; }
7147
7148                         default:
7149                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7150                 }
7151         }
7152         if (ndr_flags & NDR_BUFFERS) {
7153                 switch (level) {
7154                         case 1:
7155                                 if (r->info1) {
7156                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7157                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7158                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7159                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7160                                 }
7161                         break;
7162
7163                         case 2:
7164                                 if (r->info1) {
7165                                         _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7166                                         NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7167                                         NDR_CHECK(ndr_pull_netr_DomainInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7168                                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7169                                 }
7170                         break;
7171
7172                         default:
7173                                 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7174                 }
7175         }
7176         return NDR_ERR_SUCCESS;
7177 }
7178
7179 _PUBLIC_ void ndr_print_netr_DomainInfo(struct ndr_print *ndr, const char *name, const union netr_DomainInfo *r)
7180 {
7181         int level;
7182         level = ndr_print_get_switch_value(ndr, r);
7183         ndr_print_union(ndr, name, level, "netr_DomainInfo");
7184         switch (level) {
7185                 case 1:
7186                         ndr_print_ptr(ndr, "info1", r->info1);
7187                         ndr->depth++;
7188                         if (r->info1) {
7189                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7190                         }
7191                         ndr->depth--;
7192                 break;
7193
7194                 case 2:
7195                         ndr_print_ptr(ndr, "info1", r->info1);
7196                         ndr->depth++;
7197                         if (r->info1) {
7198                                 ndr_print_netr_DomainInfo1(ndr, "info1", r->info1);
7199                         }
7200                         ndr->depth--;
7201                 break;
7202
7203                 default:
7204                         ndr_print_bad_level(ndr, name, level);
7205         }
7206 }
7207
7208 static enum ndr_err_code ndr_push_netr_CryptPassword(struct ndr_push *ndr, int ndr_flags, const struct netr_CryptPassword *r)
7209 {
7210         {
7211                 uint32_t _flags_save_STRUCT = ndr->flags;
7212                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7213                 if (ndr_flags & NDR_SCALARS) {
7214                         NDR_CHECK(ndr_push_align(ndr, 4));
7215                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7216                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->length));
7217                 }
7218                 if (ndr_flags & NDR_BUFFERS) {
7219                 }
7220                 ndr->flags = _flags_save_STRUCT;
7221         }
7222         return NDR_ERR_SUCCESS;
7223 }
7224
7225 static enum ndr_err_code ndr_pull_netr_CryptPassword(struct ndr_pull *ndr, int ndr_flags, struct netr_CryptPassword *r)
7226 {
7227         {
7228                 uint32_t _flags_save_STRUCT = ndr->flags;
7229                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7230                 if (ndr_flags & NDR_SCALARS) {
7231                         NDR_CHECK(ndr_pull_align(ndr, 4));
7232                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->data, 512));
7233                         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->length));
7234                 }
7235                 if (ndr_flags & NDR_BUFFERS) {
7236                 }
7237                 ndr->flags = _flags_save_STRUCT;
7238         }
7239         return NDR_ERR_SUCCESS;
7240 }
7241
7242 _PUBLIC_ void ndr_print_netr_CryptPassword(struct ndr_print *ndr, const char *name, const struct netr_CryptPassword *r)
7243 {
7244         ndr_print_struct(ndr, name, "netr_CryptPassword");
7245         {
7246                 uint32_t _flags_save_STRUCT = ndr->flags;
7247                 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
7248                 ndr->depth++;
7249                 ndr_print_array_uint8(ndr, "data", r->data, 512);
7250                 ndr_print_uint32(ndr, "length", r->length);
7251                 ndr->depth--;
7252                 ndr->flags = _flags_save_STRUCT;
7253         }
7254 }
7255
7256 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesWCtr *r)
7257 {
7258         uint32_t cntr_sitename_1;
7259         if (ndr_flags & NDR_SCALARS) {
7260                 NDR_CHECK(ndr_push_align(ndr, 4));
7261                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7262                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7263         }
7264         if (ndr_flags & NDR_BUFFERS) {
7265                 if (r->sitename) {
7266                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7267                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7268                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7269                         }
7270                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7271                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7272                         }
7273                 }
7274         }
7275         return NDR_ERR_SUCCESS;
7276 }
7277
7278 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesWCtr *r)
7279 {
7280         uint32_t _ptr_sitename;
7281         uint32_t cntr_sitename_1;
7282         TALLOC_CTX *_mem_save_sitename_0;
7283         TALLOC_CTX *_mem_save_sitename_1;
7284         if (ndr_flags & NDR_SCALARS) {
7285                 NDR_CHECK(ndr_pull_align(ndr, 4));
7286                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7287                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7288                 if (_ptr_sitename) {
7289                         NDR_PULL_ALLOC(ndr, r->sitename);
7290                 } else {
7291                         r->sitename = NULL;
7292                 }
7293         }
7294         if (ndr_flags & NDR_BUFFERS) {
7295                 if (r->sitename) {
7296                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7297                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7298                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7299                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7300                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7301                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7302                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7303                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7304                         }
7305                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7306                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7307                         }
7308                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7309                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7310                 }
7311                 if (r->sitename) {
7312                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7313                 }
7314         }
7315         return NDR_ERR_SUCCESS;
7316 }
7317
7318 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesWCtr *r)
7319 {
7320         uint32_t cntr_sitename_1;
7321         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesWCtr");
7322         ndr->depth++;
7323         ndr_print_uint32(ndr, "count", r->count);
7324         ndr_print_ptr(ndr, "sitename", r->sitename);
7325         ndr->depth++;
7326         if (r->sitename) {
7327                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", r->count);
7328                 ndr->depth++;
7329                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7330                         char *idx_1=NULL;
7331                         asprintf(&idx_1, "[%d]", cntr_sitename_1);
7332                         if (idx_1) {
7333                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
7334                                 free(idx_1);
7335                         }
7336                 }
7337                 ndr->depth--;
7338         }
7339         ndr->depth--;
7340         ndr->depth--;
7341 }
7342
7343 static enum ndr_err_code ndr_push_netr_DsRAddress(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddress *r)
7344 {
7345         if (ndr_flags & NDR_SCALARS) {
7346                 NDR_CHECK(ndr_push_align(ndr, 4));
7347                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->buffer));
7348                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7349         }
7350         if (ndr_flags & NDR_BUFFERS) {
7351                 if (r->buffer) {
7352                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
7353                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->buffer, r->size));
7354                 }
7355         }
7356         return NDR_ERR_SUCCESS;
7357 }
7358
7359 static enum ndr_err_code ndr_pull_netr_DsRAddress(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddress *r)
7360 {
7361         uint32_t _ptr_buffer;
7362         TALLOC_CTX *_mem_save_buffer_0;
7363         if (ndr_flags & NDR_SCALARS) {
7364                 NDR_CHECK(ndr_pull_align(ndr, 4));
7365                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
7366                 if (_ptr_buffer) {
7367                         NDR_PULL_ALLOC(ndr, r->buffer);
7368                 } else {
7369                         r->buffer = NULL;
7370                 }
7371                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
7372         }
7373         if (ndr_flags & NDR_BUFFERS) {
7374                 if (r->buffer) {
7375                         _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
7376                         NDR_PULL_SET_MEM_CTX(ndr, r->buffer, 0);
7377                         NDR_CHECK(ndr_pull_array_size(ndr, &r->buffer));
7378                         NDR_PULL_ALLOC_N(ndr, r->buffer, ndr_get_array_size(ndr, &r->buffer));
7379                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->buffer, ndr_get_array_size(ndr, &r->buffer)));
7380                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
7381                 }
7382                 if (r->buffer) {
7383                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->buffer, r->size));
7384                 }
7385         }
7386         return NDR_ERR_SUCCESS;
7387 }
7388
7389 _PUBLIC_ void ndr_print_netr_DsRAddress(struct ndr_print *ndr, const char *name, const struct netr_DsRAddress *r)
7390 {
7391         ndr_print_struct(ndr, name, "netr_DsRAddress");
7392         ndr->depth++;
7393         ndr_print_ptr(ndr, "buffer", r->buffer);
7394         ndr->depth++;
7395         if (r->buffer) {
7396                 ndr_print_array_uint8(ndr, "buffer", r->buffer, r->size);
7397         }
7398         ndr->depth--;
7399         ndr_print_uint32(ndr, "size", r->size);
7400         ndr->depth--;
7401 }
7402
7403 static enum ndr_err_code ndr_push_netr_TrustFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7404 {
7405         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7406         return NDR_ERR_SUCCESS;
7407 }
7408
7409 static enum ndr_err_code ndr_pull_netr_TrustFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7410 {
7411         uint32_t v;
7412         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7413         *r = v;
7414         return NDR_ERR_SUCCESS;
7415 }
7416
7417 _PUBLIC_ void ndr_print_netr_TrustFlags(struct ndr_print *ndr, const char *name, uint32_t r)
7418 {
7419         ndr_print_uint32(ndr, name, r);
7420         ndr->depth++;
7421         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_IN_FOREST", NETR_TRUST_FLAG_IN_FOREST, r);
7422         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_OUTBOUND", NETR_TRUST_FLAG_OUTBOUND, r);
7423         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_TREEROOT", NETR_TRUST_FLAG_TREEROOT, r);
7424         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_PRIMARY", NETR_TRUST_FLAG_PRIMARY, r);
7425         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_NATIVE", NETR_TRUST_FLAG_NATIVE, r);
7426         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_FLAG_INBOUND", NETR_TRUST_FLAG_INBOUND, r);
7427         ndr->depth--;
7428 }
7429
7430 static enum ndr_err_code ndr_push_netr_TrustType(struct ndr_push *ndr, int ndr_flags, enum netr_TrustType r)
7431 {
7432         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7433         return NDR_ERR_SUCCESS;
7434 }
7435
7436 static enum ndr_err_code ndr_pull_netr_TrustType(struct ndr_pull *ndr, int ndr_flags, enum netr_TrustType *r)
7437 {
7438         uint32_t v;
7439         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7440         *r = v;
7441         return NDR_ERR_SUCCESS;
7442 }
7443
7444 _PUBLIC_ void ndr_print_netr_TrustType(struct ndr_print *ndr, const char *name, enum netr_TrustType r)
7445 {
7446         const char *val = NULL;
7447
7448         switch (r) {
7449                 case NETR_TRUST_TYPE_DOWNLEVEL: val = "NETR_TRUST_TYPE_DOWNLEVEL"; break;
7450                 case NETR_TRUST_TYPE_UPLEVEL: val = "NETR_TRUST_TYPE_UPLEVEL"; break;
7451                 case NETR_TRUST_TYPE_MIT: val = "NETR_TRUST_TYPE_MIT"; break;
7452                 case NETR_TRUST_TYPE_DCE: val = "NETR_TRUST_TYPE_DCE"; break;
7453         }
7454         ndr_print_enum(ndr, name, "ENUM", val, r);
7455 }
7456
7457 static enum ndr_err_code ndr_push_netr_TrustAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
7458 {
7459         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7460         return NDR_ERR_SUCCESS;
7461 }
7462
7463 static enum ndr_err_code ndr_pull_netr_TrustAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
7464 {
7465         uint32_t v;
7466         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7467         *r = v;
7468         return NDR_ERR_SUCCESS;
7469 }
7470
7471 _PUBLIC_ void ndr_print_netr_TrustAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
7472 {
7473         ndr_print_uint32(ndr, name, r);
7474         ndr->depth++;
7475         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE", NETR_TRUST_ATTRIBUTE_NON_TRANSITIVE, r);
7476         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY", NETR_TRUST_ATTRIBUTE_UPLEVEL_ONLY, r);
7477         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN", NETR_TRUST_ATTRIBUTE_QUARANTINED_DOMAIN, r);
7478         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE", NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE, r);
7479         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION", NETR_TRUST_ATTRIBUTE_CROSS_ORGANIZATION, r);
7480         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_WITHIN_FOREST", NETR_TRUST_ATTRIBUTE_WITHIN_FOREST, r);
7481         ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL", NETR_TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL, r);
7482         ndr->depth--;
7483 }
7484
7485 static enum ndr_err_code ndr_push_netr_DomainTrust(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrust *r)
7486 {
7487         if (ndr_flags & NDR_SCALARS) {
7488                 NDR_CHECK(ndr_push_align(ndr, 4));
7489                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->netbios_name));
7490                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dns_name));
7491                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->trust_flags));
7492                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->parent_index));
7493                 NDR_CHECK(ndr_push_netr_TrustType(ndr, NDR_SCALARS, r->trust_type));
7494                 NDR_CHECK(ndr_push_netr_TrustAttributes(ndr, NDR_SCALARS, r->trust_attributes));
7495                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sid));
7496                 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->guid));
7497         }
7498         if (ndr_flags & NDR_BUFFERS) {
7499                 if (r->netbios_name) {
7500                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7501                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7502                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->netbios_name, CH_UTF16)));
7503                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->netbios_name, ndr_charset_length(r->netbios_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7504                 }
7505                 if (r->dns_name) {
7506                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7507                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7508                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->dns_name, CH_UTF16)));
7509                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->dns_name, ndr_charset_length(r->dns_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7510                 }
7511                 if (r->sid) {
7512                         NDR_CHECK(ndr_push_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7513                 }
7514                 NDR_CHECK(ndr_push_GUID(ndr, NDR_BUFFERS, &r->guid));
7515         }
7516         return NDR_ERR_SUCCESS;
7517 }
7518
7519 static enum ndr_err_code ndr_pull_netr_DomainTrust(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrust *r)
7520 {
7521         uint32_t _ptr_netbios_name;
7522         TALLOC_CTX *_mem_save_netbios_name_0;
7523         uint32_t _ptr_dns_name;
7524         TALLOC_CTX *_mem_save_dns_name_0;
7525         uint32_t _ptr_sid;
7526         TALLOC_CTX *_mem_save_sid_0;
7527         if (ndr_flags & NDR_SCALARS) {
7528                 NDR_CHECK(ndr_pull_align(ndr, 4));
7529                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_netbios_name));
7530                 if (_ptr_netbios_name) {
7531                         NDR_PULL_ALLOC(ndr, r->netbios_name);
7532                 } else {
7533                         r->netbios_name = NULL;
7534                 }
7535                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dns_name));
7536                 if (_ptr_dns_name) {
7537                         NDR_PULL_ALLOC(ndr, r->dns_name);
7538                 } else {
7539                         r->dns_name = NULL;
7540                 }
7541                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->trust_flags));
7542                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->parent_index));
7543                 NDR_CHECK(ndr_pull_netr_TrustType(ndr, NDR_SCALARS, &r->trust_type));
7544                 NDR_CHECK(ndr_pull_netr_TrustAttributes(ndr, NDR_SCALARS, &r->trust_attributes));
7545                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sid));
7546                 if (_ptr_sid) {
7547                         NDR_PULL_ALLOC(ndr, r->sid);
7548                 } else {
7549                         r->sid = NULL;
7550                 }
7551                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->guid));
7552         }
7553         if (ndr_flags & NDR_BUFFERS) {
7554                 if (r->netbios_name) {
7555                         _mem_save_netbios_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7556                         NDR_PULL_SET_MEM_CTX(ndr, r->netbios_name, 0);
7557                         NDR_CHECK(ndr_pull_array_size(ndr, &r->netbios_name));
7558                         NDR_CHECK(ndr_pull_array_length(ndr, &r->netbios_name));
7559                         if (ndr_get_array_length(ndr, &r->netbios_name) > ndr_get_array_size(ndr, &r->netbios_name)) {
7560                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->netbios_name), ndr_get_array_length(ndr, &r->netbios_name));
7561                         }
7562                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t)));
7563                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->netbios_name, ndr_get_array_length(ndr, &r->netbios_name), sizeof(uint16_t), CH_UTF16));
7564                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_netbios_name_0, 0);
7565                 }
7566                 if (r->dns_name) {
7567                         _mem_save_dns_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7568                         NDR_PULL_SET_MEM_CTX(ndr, r->dns_name, 0);
7569                         NDR_CHECK(ndr_pull_array_size(ndr, &r->dns_name));
7570                         NDR_CHECK(ndr_pull_array_length(ndr, &r->dns_name));
7571                         if (ndr_get_array_length(ndr, &r->dns_name) > ndr_get_array_size(ndr, &r->dns_name)) {
7572                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->dns_name), ndr_get_array_length(ndr, &r->dns_name));
7573                         }
7574                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t)));
7575                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->dns_name, ndr_get_array_length(ndr, &r->dns_name), sizeof(uint16_t), CH_UTF16));
7576                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dns_name_0, 0);
7577                 }
7578                 if (r->sid) {
7579                         _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7580                         NDR_PULL_SET_MEM_CTX(ndr, r->sid, 0);
7581                         NDR_CHECK(ndr_pull_dom_sid2(ndr, NDR_SCALARS|NDR_BUFFERS, r->sid));
7582                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, 0);
7583                 }
7584                 NDR_CHECK(ndr_pull_GUID(ndr, NDR_BUFFERS, &r->guid));
7585         }
7586         return NDR_ERR_SUCCESS;
7587 }
7588
7589 _PUBLIC_ void ndr_print_netr_DomainTrust(struct ndr_print *ndr, const char *name, const struct netr_DomainTrust *r)
7590 {
7591         ndr_print_struct(ndr, name, "netr_DomainTrust");
7592         ndr->depth++;
7593         ndr_print_ptr(ndr, "netbios_name", r->netbios_name);
7594         ndr->depth++;
7595         if (r->netbios_name) {
7596                 ndr_print_string(ndr, "netbios_name", r->netbios_name);
7597         }
7598         ndr->depth--;
7599         ndr_print_ptr(ndr, "dns_name", r->dns_name);
7600         ndr->depth++;
7601         if (r->dns_name) {
7602                 ndr_print_string(ndr, "dns_name", r->dns_name);
7603         }
7604         ndr->depth--;
7605         ndr_print_netr_TrustFlags(ndr, "trust_flags", r->trust_flags);
7606         ndr_print_uint32(ndr, "parent_index", r->parent_index);
7607         ndr_print_netr_TrustType(ndr, "trust_type", r->trust_type);
7608         ndr_print_netr_TrustAttributes(ndr, "trust_attributes", r->trust_attributes);
7609         ndr_print_ptr(ndr, "sid", r->sid);
7610         ndr->depth++;
7611         if (r->sid) {
7612                 ndr_print_dom_sid2(ndr, "sid", r->sid);
7613         }
7614         ndr->depth--;
7615         ndr_print_GUID(ndr, "guid", &r->guid);
7616         ndr->depth--;
7617 }
7618
7619 static enum ndr_err_code ndr_push_netr_DomainTrustList(struct ndr_push *ndr, int ndr_flags, const struct netr_DomainTrustList *r)
7620 {
7621         uint32_t cntr_array_1;
7622         if (ndr_flags & NDR_SCALARS) {
7623                 NDR_CHECK(ndr_push_align(ndr, 4));
7624                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7625                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->array));
7626         }
7627         if (ndr_flags & NDR_BUFFERS) {
7628                 if (r->array) {
7629                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7630                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7631                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7632                         }
7633                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7634                                 NDR_CHECK(ndr_push_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7635                         }
7636                 }
7637         }
7638         return NDR_ERR_SUCCESS;
7639 }
7640
7641 static enum ndr_err_code ndr_pull_netr_DomainTrustList(struct ndr_pull *ndr, int ndr_flags, struct netr_DomainTrustList *r)
7642 {
7643         uint32_t _ptr_array;
7644         uint32_t cntr_array_1;
7645         TALLOC_CTX *_mem_save_array_0;
7646         TALLOC_CTX *_mem_save_array_1;
7647         if (ndr_flags & NDR_SCALARS) {
7648                 NDR_CHECK(ndr_pull_align(ndr, 4));
7649                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7650                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_array));
7651                 if (_ptr_array) {
7652                         NDR_PULL_ALLOC(ndr, r->array);
7653                 } else {
7654                         r->array = NULL;
7655                 }
7656         }
7657         if (ndr_flags & NDR_BUFFERS) {
7658                 if (r->array) {
7659                         _mem_save_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
7660                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7661                         NDR_CHECK(ndr_pull_array_size(ndr, &r->array));
7662                         NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
7663                         _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
7664                         NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
7665                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7666                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
7667                         }
7668                         for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
7669                                 NDR_CHECK(ndr_pull_netr_DomainTrust(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
7670                         }
7671                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);
7672                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_0, 0);
7673                 }
7674                 if (r->array) {
7675                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->array, r->count));
7676                 }
7677         }
7678         return NDR_ERR_SUCCESS;
7679 }
7680
7681 _PUBLIC_ void ndr_print_netr_DomainTrustList(struct ndr_print *ndr, const char *name, const struct netr_DomainTrustList *r)
7682 {
7683         uint32_t cntr_array_1;
7684         ndr_print_struct(ndr, name, "netr_DomainTrustList");
7685         ndr->depth++;
7686         ndr_print_uint32(ndr, "count", r->count);
7687         ndr_print_ptr(ndr, "array", r->array);
7688         ndr->depth++;
7689         if (r->array) {
7690                 ndr->print(ndr, "%s: ARRAY(%d)", "array", r->count);
7691                 ndr->depth++;
7692                 for (cntr_array_1=0;cntr_array_1<r->count;cntr_array_1++) {
7693                         char *idx_1=NULL;
7694                         asprintf(&idx_1, "[%d]", cntr_array_1);
7695                         if (idx_1) {
7696                                 ndr_print_netr_DomainTrust(ndr, "array", &r->array[cntr_array_1]);
7697                                 free(idx_1);
7698                         }
7699                 }
7700                 ndr->depth--;
7701         }
7702         ndr->depth--;
7703         ndr->depth--;
7704 }
7705
7706 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExWCtr(struct ndr_push *ndr, int ndr_flags, const struct netr_DsRAddressToSitenamesExWCtr *r)
7707 {
7708         uint32_t cntr_sitename_1;
7709         uint32_t cntr_subnetname_1;
7710         if (ndr_flags & NDR_SCALARS) {
7711                 NDR_CHECK(ndr_push_align(ndr, 4));
7712                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7713                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sitename));
7714                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->subnetname));
7715         }
7716         if (ndr_flags & NDR_BUFFERS) {
7717                 if (r->sitename) {
7718                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7719                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7720                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7721                         }
7722                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7723                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7724                         }
7725                 }
7726                 if (r->subnetname) {
7727                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
7728                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7729                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7730                         }
7731                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7732                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7733                         }
7734                 }
7735         }
7736         return NDR_ERR_SUCCESS;
7737 }
7738
7739 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExWCtr(struct ndr_pull *ndr, int ndr_flags, struct netr_DsRAddressToSitenamesExWCtr *r)
7740 {
7741         uint32_t _ptr_sitename;
7742         uint32_t cntr_sitename_1;
7743         TALLOC_CTX *_mem_save_sitename_0;
7744         TALLOC_CTX *_mem_save_sitename_1;
7745         uint32_t _ptr_subnetname;
7746         uint32_t cntr_subnetname_1;
7747         TALLOC_CTX *_mem_save_subnetname_0;
7748         TALLOC_CTX *_mem_save_subnetname_1;
7749         if (ndr_flags & NDR_SCALARS) {
7750                 NDR_CHECK(ndr_pull_align(ndr, 4));
7751                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
7752                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sitename));
7753                 if (_ptr_sitename) {
7754                         NDR_PULL_ALLOC(ndr, r->sitename);
7755                 } else {
7756                         r->sitename = NULL;
7757                 }
7758                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_subnetname));
7759                 if (_ptr_subnetname) {
7760                         NDR_PULL_ALLOC(ndr, r->subnetname);
7761                 } else {
7762                         r->subnetname = NULL;
7763                 }
7764         }
7765         if (ndr_flags & NDR_BUFFERS) {
7766                 if (r->sitename) {
7767                         _mem_save_sitename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7768                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7769                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sitename));
7770                         NDR_PULL_ALLOC_N(ndr, r->sitename, ndr_get_array_size(ndr, &r->sitename));
7771                         _mem_save_sitename_1 = NDR_PULL_GET_MEM_CTX(ndr);
7772                         NDR_PULL_SET_MEM_CTX(ndr, r->sitename, 0);
7773                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7774                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sitename[cntr_sitename_1]));
7775                         }
7776                         for (cntr_sitename_1 = 0; cntr_sitename_1 < r->count; cntr_sitename_1++) {
7777                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sitename[cntr_sitename_1]));
7778                         }
7779                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_1, 0);
7780                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sitename_0, 0);
7781                 }
7782                 if (r->subnetname) {
7783                         _mem_save_subnetname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7784                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7785                         NDR_CHECK(ndr_pull_array_size(ndr, &r->subnetname));
7786                         NDR_PULL_ALLOC_N(ndr, r->subnetname, ndr_get_array_size(ndr, &r->subnetname));
7787                         _mem_save_subnetname_1 = NDR_PULL_GET_MEM_CTX(ndr);
7788                         NDR_PULL_SET_MEM_CTX(ndr, r->subnetname, 0);
7789                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7790                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->subnetname[cntr_subnetname_1]));
7791                         }
7792                         for (cntr_subnetname_1 = 0; cntr_subnetname_1 < r->count; cntr_subnetname_1++) {
7793                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->subnetname[cntr_subnetname_1]));
7794                         }
7795                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_1, 0);
7796                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_subnetname_0, 0);
7797                 }
7798                 if (r->sitename) {
7799                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sitename, r->count));
7800                 }
7801                 if (r->subnetname) {
7802                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->subnetname, r->count));
7803                 }
7804         }
7805         return NDR_ERR_SUCCESS;
7806 }
7807
7808 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExWCtr(struct ndr_print *ndr, const char *name, const struct netr_DsRAddressToSitenamesExWCtr *r)
7809 {
7810         uint32_t cntr_sitename_1;
7811         uint32_t cntr_subnetname_1;
7812         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExWCtr");
7813         ndr->depth++;
7814         ndr_print_uint32(ndr, "count", r->count);
7815         ndr_print_ptr(ndr, "sitename", r->sitename);
7816         ndr->depth++;
7817         if (r->sitename) {
7818                 ndr->print(ndr, "%s: ARRAY(%d)", "sitename", r->count);
7819                 ndr->depth++;
7820                 for (cntr_sitename_1=0;cntr_sitename_1<r->count;cntr_sitename_1++) {
7821                         char *idx_1=NULL;
7822                         asprintf(&idx_1, "[%d]", cntr_sitename_1);
7823                         if (idx_1) {
7824                                 ndr_print_lsa_String(ndr, "sitename", &r->sitename[cntr_sitename_1]);
7825                                 free(idx_1);
7826                         }
7827                 }
7828                 ndr->depth--;
7829         }
7830         ndr->depth--;
7831         ndr_print_ptr(ndr, "subnetname", r->subnetname);
7832         ndr->depth++;
7833         if (r->subnetname) {
7834                 ndr->print(ndr, "%s: ARRAY(%d)", "subnetname", r->count);
7835                 ndr->depth++;
7836                 for (cntr_subnetname_1=0;cntr_subnetname_1<r->count;cntr_subnetname_1++) {
7837                         char *idx_1=NULL;
7838                         asprintf(&idx_1, "[%d]", cntr_subnetname_1);
7839                         if (idx_1) {
7840                                 ndr_print_lsa_String(ndr, "subnetname", &r->subnetname[cntr_subnetname_1]);
7841                                 free(idx_1);
7842                         }
7843                 }
7844                 ndr->depth--;
7845         }
7846         ndr->depth--;
7847         ndr->depth--;
7848 }
7849
7850 static enum ndr_err_code ndr_push_DcSitesCtr(struct ndr_push *ndr, int ndr_flags, const struct DcSitesCtr *r)
7851 {
7852         uint32_t cntr_sites_1;
7853         if (ndr_flags & NDR_SCALARS) {
7854                 NDR_CHECK(ndr_push_align(ndr, 4));
7855                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7856                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sites));
7857         }
7858         if (ndr_flags & NDR_BUFFERS) {
7859                 if (r->sites) {
7860                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sites));
7861                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7862                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7863                         }
7864                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7865                                 NDR_CHECK(ndr_push_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7866                         }
7867                 }
7868         }
7869         return NDR_ERR_SUCCESS;
7870 }
7871
7872 static enum ndr_err_code ndr_pull_DcSitesCtr(struct ndr_pull *ndr, int ndr_flags, struct DcSitesCtr *r)
7873 {
7874         uint32_t _ptr_sites;
7875         uint32_t cntr_sites_1;
7876         TALLOC_CTX *_mem_save_sites_0;
7877         TALLOC_CTX *_mem_save_sites_1;
7878         if (ndr_flags & NDR_SCALARS) {
7879                 NDR_CHECK(ndr_pull_align(ndr, 4));
7880                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sites));
7881                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sites));
7882                 if (_ptr_sites) {
7883                         NDR_PULL_ALLOC(ndr, r->sites);
7884                 } else {
7885                         r->sites = NULL;
7886                 }
7887         }
7888         if (ndr_flags & NDR_BUFFERS) {
7889                 if (r->sites) {
7890                         _mem_save_sites_0 = NDR_PULL_GET_MEM_CTX(ndr);
7891                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7892                         NDR_CHECK(ndr_pull_array_size(ndr, &r->sites));
7893                         NDR_PULL_ALLOC_N(ndr, r->sites, ndr_get_array_size(ndr, &r->sites));
7894                         _mem_save_sites_1 = NDR_PULL_GET_MEM_CTX(ndr);
7895                         NDR_PULL_SET_MEM_CTX(ndr, r->sites, 0);
7896                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7897                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_SCALARS, &r->sites[cntr_sites_1]));
7898                         }
7899                         for (cntr_sites_1 = 0; cntr_sites_1 < r->num_sites; cntr_sites_1++) {
7900                                 NDR_CHECK(ndr_pull_lsa_String(ndr, NDR_BUFFERS, &r->sites[cntr_sites_1]));
7901                         }
7902                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_1, 0);
7903                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sites_0, 0);
7904                 }
7905                 if (r->sites) {
7906                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sites, r->num_sites));
7907                 }
7908         }
7909         return NDR_ERR_SUCCESS;
7910 }
7911
7912 _PUBLIC_ void ndr_print_DcSitesCtr(struct ndr_print *ndr, const char *name, const struct DcSitesCtr *r)
7913 {
7914         uint32_t cntr_sites_1;
7915         ndr_print_struct(ndr, name, "DcSitesCtr");
7916         ndr->depth++;
7917         ndr_print_uint32(ndr, "num_sites", r->num_sites);
7918         ndr_print_ptr(ndr, "sites", r->sites);
7919         ndr->depth++;
7920         if (r->sites) {
7921                 ndr->print(ndr, "%s: ARRAY(%d)", "sites", r->num_sites);
7922                 ndr->depth++;
7923                 for (cntr_sites_1=0;cntr_sites_1<r->num_sites;cntr_sites_1++) {
7924                         char *idx_1=NULL;
7925                         asprintf(&idx_1, "[%d]", cntr_sites_1);
7926                         if (idx_1) {
7927                                 ndr_print_lsa_String(ndr, "sites", &r->sites[cntr_sites_1]);
7928                                 free(idx_1);
7929                         }
7930                 }
7931                 ndr->depth--;
7932         }
7933         ndr->depth--;
7934         ndr->depth--;
7935 }
7936
7937 static enum ndr_err_code ndr_push_netr_LogonUasLogon(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogon *r)
7938 {
7939         if (flags & NDR_IN) {
7940                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
7941                 if (r->in.server_name) {
7942                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7943                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7944                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
7945                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7946                 }
7947                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7948                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7949                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
7950                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7951                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7952                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7953                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
7954                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7955         }
7956         if (flags & NDR_OUT) {
7957                 if (r->out.info == NULL) {
7958                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
7959                 }
7960                 NDR_CHECK(ndr_push_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
7961                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
7962         }
7963         return NDR_ERR_SUCCESS;
7964 }
7965
7966 static enum ndr_err_code ndr_pull_netr_LogonUasLogon(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogon *r)
7967 {
7968         uint32_t _ptr_server_name;
7969         TALLOC_CTX *_mem_save_server_name_0;
7970         TALLOC_CTX *_mem_save_info_0;
7971         if (flags & NDR_IN) {
7972                 ZERO_STRUCT(r->out);
7973
7974                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
7975                 if (_ptr_server_name) {
7976                         NDR_PULL_ALLOC(ndr, r->in.server_name);
7977                 } else {
7978                         r->in.server_name = NULL;
7979                 }
7980                 if (r->in.server_name) {
7981                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7982                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
7983                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
7984                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
7985                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
7986                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
7987                         }
7988                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
7989                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
7990                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
7991                 }
7992                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
7993                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
7994                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
7995                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
7996                 }
7997                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
7998                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
7999                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8000                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8001                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8002                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.workstation), ndr_get_array_length(ndr, &r->in.workstation));
8003                 }
8004                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8005                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8006                 NDR_PULL_ALLOC(ndr, r->out.info);
8007                 ZERO_STRUCTP(r->out.info);
8008         }
8009         if (flags & NDR_OUT) {
8010                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8011                         NDR_PULL_ALLOC(ndr, r->out.info);
8012                 }
8013                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8014                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8015                 NDR_CHECK(ndr_pull_netr_UasInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
8016                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8017                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8018         }
8019         return NDR_ERR_SUCCESS;
8020 }
8021
8022 _PUBLIC_ void ndr_print_netr_LogonUasLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogon *r)
8023 {
8024         ndr_print_struct(ndr, name, "netr_LogonUasLogon");
8025         ndr->depth++;
8026         if (flags & NDR_SET_VALUES) {
8027                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8028         }
8029         if (flags & NDR_IN) {
8030                 ndr_print_struct(ndr, "in", "netr_LogonUasLogon");
8031                 ndr->depth++;
8032                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8033                 ndr->depth++;
8034                 if (r->in.server_name) {
8035                         ndr_print_string(ndr, "server_name", r->in.server_name);
8036                 }
8037                 ndr->depth--;
8038                 ndr_print_string(ndr, "account_name", r->in.account_name);
8039                 ndr_print_string(ndr, "workstation", r->in.workstation);
8040                 ndr->depth--;
8041         }
8042         if (flags & NDR_OUT) {
8043                 ndr_print_struct(ndr, "out", "netr_LogonUasLogon");
8044                 ndr->depth++;
8045                 ndr_print_ptr(ndr, "info", r->out.info);
8046                 ndr->depth++;
8047                 ndr_print_netr_UasInfo(ndr, "info", r->out.info);
8048                 ndr->depth--;
8049                 ndr_print_WERROR(ndr, "result", r->out.result);
8050                 ndr->depth--;
8051         }
8052         ndr->depth--;
8053 }
8054
8055 static enum ndr_err_code ndr_push_netr_LogonUasLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonUasLogoff *r)
8056 {
8057         if (flags & NDR_IN) {
8058                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8059                 if (r->in.server_name) {
8060                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8061                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8062                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8063                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8064                 }
8065                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8066                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8067                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8068                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8069                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8070                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8071                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.workstation, CH_UTF16)));
8072                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.workstation, ndr_charset_length(r->in.workstation, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8073         }
8074         if (flags & NDR_OUT) {
8075                 if (r->out.info == NULL) {
8076                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8077                 }
8078                 NDR_CHECK(ndr_push_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8079                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
8080         }
8081         return NDR_ERR_SUCCESS;
8082 }
8083
8084 static enum ndr_err_code ndr_pull_netr_LogonUasLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonUasLogoff *r)
8085 {
8086         uint32_t _ptr_server_name;
8087         TALLOC_CTX *_mem_save_server_name_0;
8088         TALLOC_CTX *_mem_save_info_0;
8089         if (flags & NDR_IN) {
8090                 ZERO_STRUCT(r->out);
8091
8092                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8093                 if (_ptr_server_name) {
8094                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8095                 } else {
8096                         r->in.server_name = NULL;
8097                 }
8098                 if (r->in.server_name) {
8099                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8100                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8101                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8102                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8103                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8104                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
8105                         }
8106                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8107                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
8108                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8109                 }
8110                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8111                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8112                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8113                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
8114                 }
8115                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8116                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
8117                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.workstation));
8118                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.workstation));
8119                 if (ndr_get_array_length(ndr, &r->in.workstation) > ndr_get_array_size(ndr, &r->in.workstation)) {
8120                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.workstation), ndr_get_array_length(ndr, &r->in.workstation));
8121                 }
8122                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t)));
8123                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.workstation, ndr_get_array_length(ndr, &r->in.workstation), sizeof(uint16_t), CH_UTF16));
8124                 NDR_PULL_ALLOC(ndr, r->out.info);
8125                 ZERO_STRUCTP(r->out.info);
8126         }
8127         if (flags & NDR_OUT) {
8128                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8129                         NDR_PULL_ALLOC(ndr, r->out.info);
8130                 }
8131                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
8132                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
8133                 NDR_CHECK(ndr_pull_netr_UasLogoffInfo(ndr, NDR_SCALARS, r->out.info));
8134                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
8135                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
8136         }
8137         return NDR_ERR_SUCCESS;
8138 }
8139
8140 _PUBLIC_ void ndr_print_netr_LogonUasLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonUasLogoff *r)
8141 {
8142         ndr_print_struct(ndr, name, "netr_LogonUasLogoff");
8143         ndr->depth++;
8144         if (flags & NDR_SET_VALUES) {
8145                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8146         }
8147         if (flags & NDR_IN) {
8148                 ndr_print_struct(ndr, "in", "netr_LogonUasLogoff");
8149                 ndr->depth++;
8150                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8151                 ndr->depth++;
8152                 if (r->in.server_name) {
8153                         ndr_print_string(ndr, "server_name", r->in.server_name);
8154                 }
8155                 ndr->depth--;
8156                 ndr_print_string(ndr, "account_name", r->in.account_name);
8157                 ndr_print_string(ndr, "workstation", r->in.workstation);
8158                 ndr->depth--;
8159         }
8160         if (flags & NDR_OUT) {
8161                 ndr_print_struct(ndr, "out", "netr_LogonUasLogoff");
8162                 ndr->depth++;
8163                 ndr_print_ptr(ndr, "info", r->out.info);
8164                 ndr->depth++;
8165                 ndr_print_netr_UasLogoffInfo(ndr, "info", r->out.info);
8166                 ndr->depth--;
8167                 ndr_print_WERROR(ndr, "result", r->out.result);
8168                 ndr->depth--;
8169         }
8170         ndr->depth--;
8171 }
8172
8173 static enum ndr_err_code ndr_push_netr_LogonSamLogon(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogon *r)
8174 {
8175         if (flags & NDR_IN) {
8176                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8177                 if (r->in.server_name) {
8178                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8179                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8180                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8181                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8182                 }
8183                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8184                 if (r->in.computer_name) {
8185                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8186                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8187                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8188                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8189                 }
8190                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8191                 if (r->in.credential) {
8192                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8193                 }
8194                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8195                 if (r->in.return_authenticator) {
8196                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8197                 }
8198                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
8199                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8200                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8201                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
8202         }
8203         if (flags & NDR_OUT) {
8204                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8205                 if (r->out.return_authenticator) {
8206                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8207                 }
8208                 if (r->out.validation == NULL) {
8209                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8210                 }
8211                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8212                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8213                 if (r->out.authoritative == NULL) {
8214                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8215                 }
8216                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
8217                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8218         }
8219         return NDR_ERR_SUCCESS;
8220 }
8221
8222 static enum ndr_err_code ndr_pull_netr_LogonSamLogon(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogon *r)
8223 {
8224         uint32_t _ptr_server_name;
8225         uint32_t _ptr_computer_name;
8226         uint32_t _ptr_credential;
8227         uint32_t _ptr_return_authenticator;
8228         TALLOC_CTX *_mem_save_server_name_0;
8229         TALLOC_CTX *_mem_save_computer_name_0;
8230         TALLOC_CTX *_mem_save_credential_0;
8231         TALLOC_CTX *_mem_save_return_authenticator_0;
8232         TALLOC_CTX *_mem_save_validation_0;
8233         TALLOC_CTX *_mem_save_authoritative_0;
8234         if (flags & NDR_IN) {
8235                 ZERO_STRUCT(r->out);
8236
8237                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8238                 if (_ptr_server_name) {
8239                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8240                 } else {
8241                         r->in.server_name = NULL;
8242                 }
8243                 if (r->in.server_name) {
8244                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8245                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8246                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8247                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8248                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8249                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
8250                         }
8251                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8252                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
8253                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8254                 }
8255                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8256                 if (_ptr_computer_name) {
8257                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8258                 } else {
8259                         r->in.computer_name = NULL;
8260                 }
8261                 if (r->in.computer_name) {
8262                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8263                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8264                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8265                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8266                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8267                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
8268                         }
8269                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8270                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
8271                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8272                 }
8273                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8274                 if (_ptr_credential) {
8275                         NDR_PULL_ALLOC(ndr, r->in.credential);
8276                 } else {
8277                         r->in.credential = NULL;
8278                 }
8279                 if (r->in.credential) {
8280                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8281                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8282                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8283                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8284                 }
8285                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8286                 if (_ptr_return_authenticator) {
8287                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8288                 } else {
8289                         r->in.return_authenticator = NULL;
8290                 }
8291                 if (r->in.return_authenticator) {
8292                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8293                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8294                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8295                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8296                 }
8297                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
8298                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8299                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8300                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
8301                 NDR_PULL_ALLOC(ndr, r->out.validation);
8302                 ZERO_STRUCTP(r->out.validation);
8303                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
8304                 ZERO_STRUCTP(r->out.authoritative);
8305         }
8306         if (flags & NDR_OUT) {
8307                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8308                 if (_ptr_return_authenticator) {
8309                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8310                 } else {
8311                         r->out.return_authenticator = NULL;
8312                 }
8313                 if (r->out.return_authenticator) {
8314                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8315                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8316                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8317                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8318                 }
8319                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8320                         NDR_PULL_ALLOC(ndr, r->out.validation);
8321                 }
8322                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
8323                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
8324                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
8325                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
8326                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
8327                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8328                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
8329                 }
8330                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
8331                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
8332                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
8333                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
8334                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8335         }
8336         return NDR_ERR_SUCCESS;
8337 }
8338
8339 _PUBLIC_ void ndr_print_netr_LogonSamLogon(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogon *r)
8340 {
8341         ndr_print_struct(ndr, name, "netr_LogonSamLogon");
8342         ndr->depth++;
8343         if (flags & NDR_SET_VALUES) {
8344                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8345         }
8346         if (flags & NDR_IN) {
8347                 ndr_print_struct(ndr, "in", "netr_LogonSamLogon");
8348                 ndr->depth++;
8349                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8350                 ndr->depth++;
8351                 if (r->in.server_name) {
8352                         ndr_print_string(ndr, "server_name", r->in.server_name);
8353                 }
8354                 ndr->depth--;
8355                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8356                 ndr->depth++;
8357                 if (r->in.computer_name) {
8358                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8359                 }
8360                 ndr->depth--;
8361                 ndr_print_ptr(ndr, "credential", r->in.credential);
8362                 ndr->depth++;
8363                 if (r->in.credential) {
8364                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8365                 }
8366                 ndr->depth--;
8367                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8368                 ndr->depth++;
8369                 if (r->in.return_authenticator) {
8370                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8371                 }
8372                 ndr->depth--;
8373                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
8374                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
8375                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
8376                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
8377                 ndr->depth--;
8378         }
8379         if (flags & NDR_OUT) {
8380                 ndr_print_struct(ndr, "out", "netr_LogonSamLogon");
8381                 ndr->depth++;
8382                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8383                 ndr->depth++;
8384                 if (r->out.return_authenticator) {
8385                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8386                 }
8387                 ndr->depth--;
8388                 ndr_print_ptr(ndr, "validation", r->out.validation);
8389                 ndr->depth++;
8390                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
8391                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
8392                 ndr->depth--;
8393                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
8394                 ndr->depth++;
8395                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
8396                 ndr->depth--;
8397                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8398                 ndr->depth--;
8399         }
8400         ndr->depth--;
8401 }
8402
8403 static enum ndr_err_code ndr_push_netr_LogonSamLogoff(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogoff *r)
8404 {
8405         if (flags & NDR_IN) {
8406                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8407                 if (r->in.server_name) {
8408                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8409                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8410                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8411                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8412                 }
8413                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
8414                 if (r->in.computer_name) {
8415                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8416                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8417                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8418                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8419                 }
8420                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
8421                 if (r->in.credential) {
8422                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8423                 }
8424                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
8425                 if (r->in.return_authenticator) {
8426                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8427                 }
8428                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
8429                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8430                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8431         }
8432         if (flags & NDR_OUT) {
8433                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
8434                 if (r->out.return_authenticator) {
8435                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8436                 }
8437                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8438         }
8439         return NDR_ERR_SUCCESS;
8440 }
8441
8442 static enum ndr_err_code ndr_pull_netr_LogonSamLogoff(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogoff *r)
8443 {
8444         uint32_t _ptr_server_name;
8445         uint32_t _ptr_computer_name;
8446         uint32_t _ptr_credential;
8447         uint32_t _ptr_return_authenticator;
8448         TALLOC_CTX *_mem_save_server_name_0;
8449         TALLOC_CTX *_mem_save_computer_name_0;
8450         TALLOC_CTX *_mem_save_credential_0;
8451         TALLOC_CTX *_mem_save_return_authenticator_0;
8452         if (flags & NDR_IN) {
8453                 ZERO_STRUCT(r->out);
8454
8455                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8456                 if (_ptr_server_name) {
8457                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8458                 } else {
8459                         r->in.server_name = NULL;
8460                 }
8461                 if (r->in.server_name) {
8462                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8463                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8464                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8465                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8466                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8467                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
8468                         }
8469                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8470                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
8471                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8472                 }
8473                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
8474                 if (_ptr_computer_name) {
8475                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
8476                 } else {
8477                         r->in.computer_name = NULL;
8478                 }
8479                 if (r->in.computer_name) {
8480                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8481                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
8482                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8483                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8484                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8485                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
8486                         }
8487                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8488                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
8489                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
8490                 }
8491                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
8492                 if (_ptr_credential) {
8493                         NDR_PULL_ALLOC(ndr, r->in.credential);
8494                 } else {
8495                         r->in.credential = NULL;
8496                 }
8497                 if (r->in.credential) {
8498                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8499                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
8500                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8501                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
8502                 }
8503                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8504                 if (_ptr_return_authenticator) {
8505                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
8506                 } else {
8507                         r->in.return_authenticator = NULL;
8508                 }
8509                 if (r->in.return_authenticator) {
8510                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8511                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
8512                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
8513                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8514                 }
8515                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
8516                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
8517                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
8518         }
8519         if (flags & NDR_OUT) {
8520                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
8521                 if (_ptr_return_authenticator) {
8522                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8523                 } else {
8524                         r->out.return_authenticator = NULL;
8525                 }
8526                 if (r->out.return_authenticator) {
8527                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8528                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
8529                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8530                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
8531                 }
8532                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8533         }
8534         return NDR_ERR_SUCCESS;
8535 }
8536
8537 _PUBLIC_ void ndr_print_netr_LogonSamLogoff(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogoff *r)
8538 {
8539         ndr_print_struct(ndr, name, "netr_LogonSamLogoff");
8540         ndr->depth++;
8541         if (flags & NDR_SET_VALUES) {
8542                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8543         }
8544         if (flags & NDR_IN) {
8545                 ndr_print_struct(ndr, "in", "netr_LogonSamLogoff");
8546                 ndr->depth++;
8547                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8548                 ndr->depth++;
8549                 if (r->in.server_name) {
8550                         ndr_print_string(ndr, "server_name", r->in.server_name);
8551                 }
8552                 ndr->depth--;
8553                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
8554                 ndr->depth++;
8555                 if (r->in.computer_name) {
8556                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
8557                 }
8558                 ndr->depth--;
8559                 ndr_print_ptr(ndr, "credential", r->in.credential);
8560                 ndr->depth++;
8561                 if (r->in.credential) {
8562                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8563                 }
8564                 ndr->depth--;
8565                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
8566                 ndr->depth++;
8567                 if (r->in.return_authenticator) {
8568                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
8569                 }
8570                 ndr->depth--;
8571                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
8572                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
8573                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
8574                 ndr->depth--;
8575         }
8576         if (flags & NDR_OUT) {
8577                 ndr_print_struct(ndr, "out", "netr_LogonSamLogoff");
8578                 ndr->depth++;
8579                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8580                 ndr->depth++;
8581                 if (r->out.return_authenticator) {
8582                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8583                 }
8584                 ndr->depth--;
8585                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8586                 ndr->depth--;
8587         }
8588         ndr->depth--;
8589 }
8590
8591 static enum ndr_err_code ndr_push_netr_ServerReqChallenge(struct ndr_push *ndr, int flags, const struct netr_ServerReqChallenge *r)
8592 {
8593         if (flags & NDR_IN) {
8594                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8595                 if (r->in.server_name) {
8596                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8597                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8598                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8599                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8600                 }
8601                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8602                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8603                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8604                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8605                 if (r->in.credentials == NULL) {
8606                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8607                 }
8608                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8609         }
8610         if (flags & NDR_OUT) {
8611                 if (r->out.credentials == NULL) {
8612                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8613                 }
8614                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8615                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8616         }
8617         return NDR_ERR_SUCCESS;
8618 }
8619
8620 static enum ndr_err_code ndr_pull_netr_ServerReqChallenge(struct ndr_pull *ndr, int flags, struct netr_ServerReqChallenge *r)
8621 {
8622         uint32_t _ptr_server_name;
8623         TALLOC_CTX *_mem_save_server_name_0;
8624         TALLOC_CTX *_mem_save_credentials_0;
8625         if (flags & NDR_IN) {
8626                 ZERO_STRUCT(r->out);
8627
8628                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8629                 if (_ptr_server_name) {
8630                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8631                 } else {
8632                         r->in.server_name = NULL;
8633                 }
8634                 if (r->in.server_name) {
8635                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8636                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8637                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8638                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8639                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8640                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
8641                         }
8642                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8643                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
8644                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8645                 }
8646                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8647                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8648                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8649                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
8650                 }
8651                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8652                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
8653                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8654                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8655                 }
8656                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8657                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8658                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8659                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8660                 NDR_PULL_ALLOC(ndr, r->out.credentials);
8661                 *r->out.credentials = *r->in.credentials;
8662         }
8663         if (flags & NDR_OUT) {
8664                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8665                         NDR_PULL_ALLOC(ndr, r->out.credentials);
8666                 }
8667                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8668                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
8669                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8670                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8671                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8672         }
8673         return NDR_ERR_SUCCESS;
8674 }
8675
8676 _PUBLIC_ void ndr_print_netr_ServerReqChallenge(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerReqChallenge *r)
8677 {
8678         ndr_print_struct(ndr, name, "netr_ServerReqChallenge");
8679         ndr->depth++;
8680         if (flags & NDR_SET_VALUES) {
8681                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8682         }
8683         if (flags & NDR_IN) {
8684                 ndr_print_struct(ndr, "in", "netr_ServerReqChallenge");
8685                 ndr->depth++;
8686                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8687                 ndr->depth++;
8688                 if (r->in.server_name) {
8689                         ndr_print_string(ndr, "server_name", r->in.server_name);
8690                 }
8691                 ndr->depth--;
8692                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8693                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8694                 ndr->depth++;
8695                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8696                 ndr->depth--;
8697                 ndr->depth--;
8698         }
8699         if (flags & NDR_OUT) {
8700                 ndr_print_struct(ndr, "out", "netr_ServerReqChallenge");
8701                 ndr->depth++;
8702                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
8703                 ndr->depth++;
8704                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
8705                 ndr->depth--;
8706                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8707                 ndr->depth--;
8708         }
8709         ndr->depth--;
8710 }
8711
8712 static enum ndr_err_code ndr_push_netr_ServerAuthenticate(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate *r)
8713 {
8714         if (flags & NDR_IN) {
8715                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8716                 if (r->in.server_name) {
8717                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8718                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8719                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8720                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8721                 }
8722                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8723                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8724                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8725                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8726                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8727                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8728                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8729                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8730                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8731                 if (r->in.credentials == NULL) {
8732                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8733                 }
8734                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8735         }
8736         if (flags & NDR_OUT) {
8737                 if (r->out.credentials == NULL) {
8738                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8739                 }
8740                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8741                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8742         }
8743         return NDR_ERR_SUCCESS;
8744 }
8745
8746 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate *r)
8747 {
8748         uint32_t _ptr_server_name;
8749         TALLOC_CTX *_mem_save_server_name_0;
8750         TALLOC_CTX *_mem_save_credentials_0;
8751         if (flags & NDR_IN) {
8752                 ZERO_STRUCT(r->out);
8753
8754                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8755                 if (_ptr_server_name) {
8756                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8757                 } else {
8758                         r->in.server_name = NULL;
8759                 }
8760                 if (r->in.server_name) {
8761                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8762                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8763                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8764                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8765                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8766                                 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
8767                         }
8768                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8769                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
8770                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8771                 }
8772                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8773                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8774                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8775                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
8776                 }
8777                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8778                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.account_name, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t), CH_UTF16));
8779                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8780                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8781                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8782                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8783                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computer_name), ndr_get_array_length(ndr, &r->in.computer_name));
8784                 }
8785                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8786                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computer_name, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t), CH_UTF16));
8787                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8788                         NDR_PULL_ALLOC(ndr, r->in.credentials);
8789                 }
8790                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8791                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
8792                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
8793                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8794                 NDR_PULL_ALLOC(ndr, r->out.credentials);
8795                 *r->out.credentials = *r->in.credentials;
8796         }
8797         if (flags & NDR_OUT) {
8798                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8799                         NDR_PULL_ALLOC(ndr, r->out.credentials);
8800                 }
8801                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
8802                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
8803                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
8804                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
8805                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8806         }
8807         return NDR_ERR_SUCCESS;
8808 }
8809
8810 _PUBLIC_ void ndr_print_netr_ServerAuthenticate(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate *r)
8811 {
8812         ndr_print_struct(ndr, name, "netr_ServerAuthenticate");
8813         ndr->depth++;
8814         if (flags & NDR_SET_VALUES) {
8815                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8816         }
8817         if (flags & NDR_IN) {
8818                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate");
8819                 ndr->depth++;
8820                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8821                 ndr->depth++;
8822                 if (r->in.server_name) {
8823                         ndr_print_string(ndr, "server_name", r->in.server_name);
8824                 }
8825                 ndr->depth--;
8826                 ndr_print_string(ndr, "account_name", r->in.account_name);
8827                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8828                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8829                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
8830                 ndr->depth++;
8831                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
8832                 ndr->depth--;
8833                 ndr->depth--;
8834         }
8835         if (flags & NDR_OUT) {
8836                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate");
8837                 ndr->depth++;
8838                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
8839                 ndr->depth++;
8840                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
8841                 ndr->depth--;
8842                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8843                 ndr->depth--;
8844         }
8845         ndr->depth--;
8846 }
8847
8848 static enum ndr_err_code ndr_push_netr_ServerPasswordSet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet *r)
8849 {
8850         if (flags & NDR_IN) {
8851                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
8852                 if (r->in.server_name) {
8853                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8854                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8855                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
8856                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server_name, ndr_charset_length(r->in.server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8857                 }
8858                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8859                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8860                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
8861                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.account_name, ndr_charset_length(r->in.account_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8862                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
8863                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8864                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8865                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
8866                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computer_name, ndr_charset_length(r->in.computer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8867                 if (r->in.credential == NULL) {
8868                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8869                 }
8870                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8871                 if (r->in.new_password == NULL) {
8872                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8873                 }
8874                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_password));
8875         }
8876         if (flags & NDR_OUT) {
8877                 if (r->out.return_authenticator == NULL) {
8878                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
8879                 }
8880                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8881                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
8882         }
8883         return NDR_ERR_SUCCESS;
8884 }
8885
8886 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet *r)
8887 {
8888         uint32_t _ptr_server_name;
8889         TALLOC_CTX *_mem_save_server_name_0;
8890         TALLOC_CTX *_mem_save_credential_0;
8891         TALLOC_CTX *_mem_save_return_authenticator_0;
8892         TALLOC_CTX *_mem_save_new_password_0;
8893         if (flags & NDR_IN) {
8894                 ZERO_STRUCT(r->out);
8895
8896                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
8897                 if (_ptr_server_name) {
8898                         NDR_PULL_ALLOC(ndr, r->in.server_name);
8899                 } else {
8900                         r->in.server_name = NULL;
8901                 }
8902                 if (r->in.server_name) {
8903                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8904                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
8905                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
8906                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
8907                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
8908                                 return 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));
8909                         }
8910                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
8911                         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));
8912                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
8913                 }
8914                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
8915                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
8916                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
8917                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.account_name), ndr_get_array_length(ndr, &r->in.account_name));
8918                 }
8919                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
8920                 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));
8921                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
8922                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
8923                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
8924                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
8925                         return 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));
8926                 }
8927                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
8928                 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));
8929                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8930                         NDR_PULL_ALLOC(ndr, r->in.credential);
8931                 }
8932                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
8933                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
8934                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
8935                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
8936                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8937                         NDR_PULL_ALLOC(ndr, r->in.new_password);
8938                 }
8939                 _mem_save_new_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
8940                 NDR_PULL_SET_MEM_CTX(ndr, r->in.new_password, LIBNDR_FLAG_REF_ALLOC);
8941                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.new_password));
8942                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_new_password_0, LIBNDR_FLAG_REF_ALLOC);
8943                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8944                 ZERO_STRUCTP(r->out.return_authenticator);
8945         }
8946         if (flags & NDR_OUT) {
8947                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
8948                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
8949                 }
8950                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
8951                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
8952                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
8953                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
8954                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
8955         }
8956         return NDR_ERR_SUCCESS;
8957 }
8958
8959 _PUBLIC_ void ndr_print_netr_ServerPasswordSet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet *r)
8960 {
8961         ndr_print_struct(ndr, name, "netr_ServerPasswordSet");
8962         ndr->depth++;
8963         if (flags & NDR_SET_VALUES) {
8964                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
8965         }
8966         if (flags & NDR_IN) {
8967                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet");
8968                 ndr->depth++;
8969                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
8970                 ndr->depth++;
8971                 if (r->in.server_name) {
8972                         ndr_print_string(ndr, "server_name", r->in.server_name);
8973                 }
8974                 ndr->depth--;
8975                 ndr_print_string(ndr, "account_name", r->in.account_name);
8976                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
8977                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
8978                 ndr_print_ptr(ndr, "credential", r->in.credential);
8979                 ndr->depth++;
8980                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
8981                 ndr->depth--;
8982                 ndr_print_ptr(ndr, "new_password", r->in.new_password);
8983                 ndr->depth++;
8984                 ndr_print_samr_Password(ndr, "new_password", r->in.new_password);
8985                 ndr->depth--;
8986                 ndr->depth--;
8987         }
8988         if (flags & NDR_OUT) {
8989                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet");
8990                 ndr->depth++;
8991                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
8992                 ndr->depth++;
8993                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
8994                 ndr->depth--;
8995                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
8996                 ndr->depth--;
8997         }
8998         ndr->depth--;
8999 }
9000
9001 static enum ndr_err_code ndr_push_netr_DatabaseDeltas(struct ndr_push *ndr, int flags, const struct netr_DatabaseDeltas *r)
9002 {
9003         if (flags & NDR_IN) {
9004                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9005                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9006                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9007                 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));
9008                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9009                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9010                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9011                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9012                 if (r->in.credential == NULL) {
9013                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9014                 }
9015                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9016                 if (r->in.return_authenticator == NULL) {
9017                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9018                 }
9019                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9020                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9021                 if (r->in.sequence_num == NULL) {
9022                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9023                 }
9024                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->in.sequence_num));
9025                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9026         }
9027         if (flags & NDR_OUT) {
9028                 if (r->out.return_authenticator == NULL) {
9029                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9030                 }
9031                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9032                 if (r->out.sequence_num == NULL) {
9033                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9034                 }
9035                 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, *r->out.sequence_num));
9036                 if (r->out.delta_enum_array == NULL) {
9037                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9038                 }
9039                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.delta_enum_array));
9040                 if (*r->out.delta_enum_array) {
9041                         NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9042                 }
9043                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9044         }
9045         return NDR_ERR_SUCCESS;
9046 }
9047
9048 static enum ndr_err_code ndr_pull_netr_DatabaseDeltas(struct ndr_pull *ndr, int flags, struct netr_DatabaseDeltas *r)
9049 {
9050         uint32_t _ptr_delta_enum_array;
9051         TALLOC_CTX *_mem_save_credential_0;
9052         TALLOC_CTX *_mem_save_return_authenticator_0;
9053         TALLOC_CTX *_mem_save_sequence_num_0;
9054         TALLOC_CTX *_mem_save_delta_enum_array_0;
9055         TALLOC_CTX *_mem_save_delta_enum_array_1;
9056         if (flags & NDR_IN) {
9057                 ZERO_STRUCT(r->out);
9058
9059                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9060                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9061                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9062                         return 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));
9063                 }
9064                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9065                 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));
9066                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9067                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9068                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9069                         return 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));
9070                 }
9071                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9072                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9073                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9074                         NDR_PULL_ALLOC(ndr, r->in.credential);
9075                 }
9076                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
9077                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
9078                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
9079                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
9080                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9081                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9082                 }
9083                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9084                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9085                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9086                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9087                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9088                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9089                         NDR_PULL_ALLOC(ndr, r->in.sequence_num);
9090                 }
9091                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9092                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9093                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->in.sequence_num));
9094                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9095                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9096                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9097                 *r->out.return_authenticator = *r->in.return_authenticator;
9098                 NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9099                 *r->out.sequence_num = *r->in.sequence_num;
9100                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9101                 ZERO_STRUCTP(r->out.delta_enum_array);
9102         }
9103         if (flags & NDR_OUT) {
9104                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9105                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9106                 }
9107                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9108                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9109                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9110                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9111                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9112                         NDR_PULL_ALLOC(ndr, r->out.sequence_num);
9113                 }
9114                 _mem_save_sequence_num_0 = NDR_PULL_GET_MEM_CTX(ndr);
9115                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sequence_num, LIBNDR_FLAG_REF_ALLOC);
9116                 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, r->out.sequence_num));
9117                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sequence_num_0, LIBNDR_FLAG_REF_ALLOC);
9118                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9119                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9120                 }
9121                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9122                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9123                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_delta_enum_array));
9124                 if (_ptr_delta_enum_array) {
9125                         NDR_PULL_ALLOC(ndr, *r->out.delta_enum_array);
9126                 } else {
9127                         *r->out.delta_enum_array = NULL;
9128                 }
9129                 if (*r->out.delta_enum_array) {
9130                         _mem_save_delta_enum_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
9131                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.delta_enum_array, 0);
9132                         NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.delta_enum_array));
9133                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_1, 0);
9134                 }
9135                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9136                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9137         }
9138         return NDR_ERR_SUCCESS;
9139 }
9140
9141 _PUBLIC_ void ndr_print_netr_DatabaseDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseDeltas *r)
9142 {
9143         ndr_print_struct(ndr, name, "netr_DatabaseDeltas");
9144         ndr->depth++;
9145         if (flags & NDR_SET_VALUES) {
9146                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9147         }
9148         if (flags & NDR_IN) {
9149                 ndr_print_struct(ndr, "in", "netr_DatabaseDeltas");
9150                 ndr->depth++;
9151                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9152                 ndr_print_string(ndr, "computername", r->in.computername);
9153                 ndr_print_ptr(ndr, "credential", r->in.credential);
9154                 ndr->depth++;
9155                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
9156                 ndr->depth--;
9157                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9158                 ndr->depth++;
9159                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9160                 ndr->depth--;
9161                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9162                 ndr_print_ptr(ndr, "sequence_num", r->in.sequence_num);
9163                 ndr->depth++;
9164                 ndr_print_udlong(ndr, "sequence_num", *r->in.sequence_num);
9165                 ndr->depth--;
9166                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9167                 ndr->depth--;
9168         }
9169         if (flags & NDR_OUT) {
9170                 ndr_print_struct(ndr, "out", "netr_DatabaseDeltas");
9171                 ndr->depth++;
9172                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9173                 ndr->depth++;
9174                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9175                 ndr->depth--;
9176                 ndr_print_ptr(ndr, "sequence_num", r->out.sequence_num);
9177                 ndr->depth++;
9178                 ndr_print_udlong(ndr, "sequence_num", *r->out.sequence_num);
9179                 ndr->depth--;
9180                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9181                 ndr->depth++;
9182                 ndr_print_ptr(ndr, "delta_enum_array", *r->out.delta_enum_array);
9183                 ndr->depth++;
9184                 if (*r->out.delta_enum_array) {
9185                         ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", *r->out.delta_enum_array);
9186                 }
9187                 ndr->depth--;
9188                 ndr->depth--;
9189                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9190                 ndr->depth--;
9191         }
9192         ndr->depth--;
9193 }
9194
9195 static enum ndr_err_code ndr_push_netr_DatabaseSync(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync *r)
9196 {
9197         if (flags & NDR_IN) {
9198                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9199                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9200                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9201                 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));
9202                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9203                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9204                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9205                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9206                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9207                 if (r->in.return_authenticator == NULL) {
9208                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9209                 }
9210                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9211                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
9212                 if (r->in.sync_context == NULL) {
9213                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9214                 }
9215                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
9216                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
9217         }
9218         if (flags & NDR_OUT) {
9219                 if (r->out.return_authenticator == NULL) {
9220                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9221                 }
9222                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9223                 if (r->out.sync_context == NULL) {
9224                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9225                 }
9226                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
9227                 if (r->out.delta_enum_array == NULL) {
9228                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9229                 }
9230                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9231                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9232         }
9233         return NDR_ERR_SUCCESS;
9234 }
9235
9236 static enum ndr_err_code ndr_pull_netr_DatabaseSync(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync *r)
9237 {
9238         TALLOC_CTX *_mem_save_return_authenticator_0;
9239         TALLOC_CTX *_mem_save_sync_context_0;
9240         TALLOC_CTX *_mem_save_delta_enum_array_0;
9241         if (flags & NDR_IN) {
9242                 ZERO_STRUCT(r->out);
9243
9244                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9245                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9246                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9247                         return 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));
9248                 }
9249                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9250                 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));
9251                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9252                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9253                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9254                         return 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));
9255                 }
9256                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9257                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9258                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9259                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9260                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9261                 }
9262                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9263                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9264                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9265                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9266                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
9267                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9268                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
9269                 }
9270                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9271                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
9272                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
9273                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9274                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
9275                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9276                 *r->out.return_authenticator = *r->in.return_authenticator;
9277                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
9278                 *r->out.sync_context = *r->in.sync_context;
9279                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9280                 ZERO_STRUCTP(r->out.delta_enum_array);
9281         }
9282         if (flags & NDR_OUT) {
9283                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9284                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9285                 }
9286                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9287                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9288                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9289                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9290                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9291                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
9292                 }
9293                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
9294                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
9295                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
9296                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
9297                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9298                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
9299                 }
9300                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
9301                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
9302                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
9303                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
9304                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9305         }
9306         return NDR_ERR_SUCCESS;
9307 }
9308
9309 _PUBLIC_ void ndr_print_netr_DatabaseSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync *r)
9310 {
9311         ndr_print_struct(ndr, name, "netr_DatabaseSync");
9312         ndr->depth++;
9313         if (flags & NDR_SET_VALUES) {
9314                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9315         }
9316         if (flags & NDR_IN) {
9317                 ndr_print_struct(ndr, "in", "netr_DatabaseSync");
9318                 ndr->depth++;
9319                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9320                 ndr_print_string(ndr, "computername", r->in.computername);
9321                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9322                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9323                 ndr->depth++;
9324                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9325                 ndr->depth--;
9326                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
9327                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
9328                 ndr->depth++;
9329                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
9330                 ndr->depth--;
9331                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
9332                 ndr->depth--;
9333         }
9334         if (flags & NDR_OUT) {
9335                 ndr_print_struct(ndr, "out", "netr_DatabaseSync");
9336                 ndr->depth++;
9337                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9338                 ndr->depth++;
9339                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9340                 ndr->depth--;
9341                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
9342                 ndr->depth++;
9343                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
9344                 ndr->depth--;
9345                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
9346                 ndr->depth++;
9347                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
9348                 ndr->depth--;
9349                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9350                 ndr->depth--;
9351         }
9352         ndr->depth--;
9353 }
9354
9355 static enum ndr_err_code ndr_push_netr_AccountDeltas(struct ndr_push *ndr, int flags, const struct netr_AccountDeltas *r)
9356 {
9357         if (flags & NDR_IN) {
9358                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9359                 if (r->in.logon_server) {
9360                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9361                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9362                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9363                         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));
9364                 }
9365                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9366                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9367                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9368                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9369                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9370                 if (r->in.return_authenticator == NULL) {
9371                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9372                 }
9373                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9374                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9375                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
9376                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9377                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9378         }
9379         if (flags & NDR_OUT) {
9380                 if (r->out.return_authenticator == NULL) {
9381                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9382                 }
9383                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9384                 if (r->out.buffer == NULL) {
9385                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9386                 }
9387                 {
9388                         struct ndr_push *_ndr_buffer;
9389                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9390                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9391                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9392                 }
9393                 if (r->out.count_returned == NULL) {
9394                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9395                 }
9396                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9397                 if (r->out.total_entries == NULL) {
9398                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9399                 }
9400                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9401                 if (r->out.recordid == NULL) {
9402                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9403                 }
9404                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9405                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9406         }
9407         return NDR_ERR_SUCCESS;
9408 }
9409
9410 static enum ndr_err_code ndr_pull_netr_AccountDeltas(struct ndr_pull *ndr, int flags, struct netr_AccountDeltas *r)
9411 {
9412         uint32_t _ptr_logon_server;
9413         TALLOC_CTX *_mem_save_logon_server_0;
9414         TALLOC_CTX *_mem_save_return_authenticator_0;
9415         TALLOC_CTX *_mem_save_buffer_0;
9416         TALLOC_CTX *_mem_save_count_returned_0;
9417         TALLOC_CTX *_mem_save_total_entries_0;
9418         TALLOC_CTX *_mem_save_recordid_0;
9419         if (flags & NDR_IN) {
9420                 ZERO_STRUCT(r->out);
9421
9422                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9423                 if (_ptr_logon_server) {
9424                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9425                 } else {
9426                         r->in.logon_server = NULL;
9427                 }
9428                 if (r->in.logon_server) {
9429                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9430                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9431                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9432                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9433                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9434                                 return 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));
9435                         }
9436                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9437                         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));
9438                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9439                 }
9440                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9441                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9442                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9443                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername));
9444                 }
9445                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9446                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9447                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9448                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9449                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9450                 }
9451                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9452                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9453                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9454                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9455                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, &r->in.uas));
9456                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
9457                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9458                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9459                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9460                 *r->out.return_authenticator = *r->in.return_authenticator;
9461                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9462                 ZERO_STRUCTP(r->out.buffer);
9463                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9464                 ZERO_STRUCTP(r->out.count_returned);
9465                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9466                 ZERO_STRUCTP(r->out.total_entries);
9467                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9468                 ZERO_STRUCTP(r->out.recordid);
9469         }
9470         if (flags & NDR_OUT) {
9471                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9472                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9473                 }
9474                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9475                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9476                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9477                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9478                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9479                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9480                 }
9481                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9482                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9483                 {
9484                         struct ndr_pull *_ndr_buffer;
9485                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9486                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9487                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9488                 }
9489                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9490                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9491                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9492                 }
9493                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9494                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9495                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9496                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9497                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9498                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9499                 }
9500                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9501                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9502                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9503                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9504                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9505                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9506                 }
9507                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9508                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9509                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9510                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9511                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9512         }
9513         return NDR_ERR_SUCCESS;
9514 }
9515
9516 _PUBLIC_ void ndr_print_netr_AccountDeltas(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountDeltas *r)
9517 {
9518         ndr_print_struct(ndr, name, "netr_AccountDeltas");
9519         ndr->depth++;
9520         if (flags & NDR_SET_VALUES) {
9521                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9522         }
9523         if (flags & NDR_IN) {
9524                 ndr_print_struct(ndr, "in", "netr_AccountDeltas");
9525                 ndr->depth++;
9526                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9527                 ndr->depth++;
9528                 if (r->in.logon_server) {
9529                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9530                 }
9531                 ndr->depth--;
9532                 ndr_print_string(ndr, "computername", r->in.computername);
9533                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9534                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9535                 ndr->depth++;
9536                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9537                 ndr->depth--;
9538                 ndr_print_netr_UAS_INFO_0(ndr, "uas", &r->in.uas);
9539                 ndr_print_uint32(ndr, "count", r->in.count);
9540                 ndr_print_uint32(ndr, "level", r->in.level);
9541                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9542                 ndr->depth--;
9543         }
9544         if (flags & NDR_OUT) {
9545                 ndr_print_struct(ndr, "out", "netr_AccountDeltas");
9546                 ndr->depth++;
9547                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9548                 ndr->depth++;
9549                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9550                 ndr->depth--;
9551                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9552                 ndr->depth++;
9553                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9554                 ndr->depth--;
9555                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9556                 ndr->depth++;
9557                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9558                 ndr->depth--;
9559                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9560                 ndr->depth++;
9561                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9562                 ndr->depth--;
9563                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9564                 ndr->depth++;
9565                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9566                 ndr->depth--;
9567                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9568                 ndr->depth--;
9569         }
9570         ndr->depth--;
9571 }
9572
9573 static enum ndr_err_code ndr_push_netr_AccountSync(struct ndr_push *ndr, int flags, const struct netr_AccountSync *r)
9574 {
9575         if (flags & NDR_IN) {
9576                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9577                 if (r->in.logon_server) {
9578                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9579                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9580                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9581                         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));
9582                 }
9583                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9584                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9585                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
9586                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9587                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9588                 if (r->in.return_authenticator == NULL) {
9589                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9590                 }
9591                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9592                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reference));
9593                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9594                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.buffersize));
9595                 if (r->in.recordid == NULL) {
9596                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9597                 }
9598                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9599         }
9600         if (flags & NDR_OUT) {
9601                 if (r->out.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->out.return_authenticator));
9605                 if (r->out.buffer == NULL) {
9606                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9607                 }
9608                 {
9609                         struct ndr_push *_ndr_buffer;
9610                         NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9611                         NDR_CHECK(ndr_push_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9612                         NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_buffer, 4, -1));
9613                 }
9614                 if (r->out.count_returned == NULL) {
9615                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9616                 }
9617                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count_returned));
9618                 if (r->out.total_entries == NULL) {
9619                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9620                 }
9621                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.total_entries));
9622                 if (r->out.next_reference == NULL) {
9623                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9624                 }
9625                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.next_reference));
9626                 if (r->out.recordid == NULL) {
9627                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9628                 }
9629                 NDR_CHECK(ndr_push_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9630                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
9631         }
9632         return NDR_ERR_SUCCESS;
9633 }
9634
9635 static enum ndr_err_code ndr_pull_netr_AccountSync(struct ndr_pull *ndr, int flags, struct netr_AccountSync *r)
9636 {
9637         uint32_t _ptr_logon_server;
9638         TALLOC_CTX *_mem_save_logon_server_0;
9639         TALLOC_CTX *_mem_save_return_authenticator_0;
9640         TALLOC_CTX *_mem_save_buffer_0;
9641         TALLOC_CTX *_mem_save_count_returned_0;
9642         TALLOC_CTX *_mem_save_total_entries_0;
9643         TALLOC_CTX *_mem_save_next_reference_0;
9644         TALLOC_CTX *_mem_save_recordid_0;
9645         if (flags & NDR_IN) {
9646                 ZERO_STRUCT(r->out);
9647
9648                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9649                 if (_ptr_logon_server) {
9650                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9651                 } else {
9652                         r->in.logon_server = NULL;
9653                 }
9654                 if (r->in.logon_server) {
9655                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9656                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9657                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9658                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9659                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9660                                 return 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));
9661                         }
9662                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9663                         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));
9664                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
9665                 }
9666                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
9667                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
9668                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
9669                         return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.computername), ndr_get_array_length(ndr, &r->in.computername));
9670                 }
9671                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
9672                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
9673                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
9674                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9675                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
9676                 }
9677                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9678                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9679                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
9680                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9681                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reference));
9682                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
9683                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.buffersize));
9684                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9685                         NDR_PULL_ALLOC(ndr, r->in.recordid);
9686                 }
9687                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9688                 NDR_PULL_SET_MEM_CTX(ndr, r->in.recordid, LIBNDR_FLAG_REF_ALLOC);
9689                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->in.recordid));
9690                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9691                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9692                 *r->out.return_authenticator = *r->in.return_authenticator;
9693                 NDR_PULL_ALLOC(ndr, r->out.buffer);
9694                 ZERO_STRUCTP(r->out.buffer);
9695                 NDR_PULL_ALLOC(ndr, r->out.count_returned);
9696                 ZERO_STRUCTP(r->out.count_returned);
9697                 NDR_PULL_ALLOC(ndr, r->out.total_entries);
9698                 ZERO_STRUCTP(r->out.total_entries);
9699                 NDR_PULL_ALLOC(ndr, r->out.next_reference);
9700                 ZERO_STRUCTP(r->out.next_reference);
9701                 NDR_PULL_ALLOC(ndr, r->out.recordid);
9702                 *r->out.recordid = *r->in.recordid;
9703         }
9704         if (flags & NDR_OUT) {
9705                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9706                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
9707                 }
9708                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
9709                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
9710                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
9711                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
9712                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9713                         NDR_PULL_ALLOC(ndr, r->out.buffer);
9714                 }
9715                 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
9716                 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
9717                 {
9718                         struct ndr_pull *_ndr_buffer;
9719                         NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_buffer, 4, -1));
9720                         NDR_CHECK(ndr_pull_netr_AccountBuffer(_ndr_buffer, NDR_SCALARS, r->out.buffer));
9721                         NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_buffer, 4, -1));
9722                 }
9723                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
9724                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9725                         NDR_PULL_ALLOC(ndr, r->out.count_returned);
9726                 }
9727                 _mem_save_count_returned_0 = NDR_PULL_GET_MEM_CTX(ndr);
9728                 NDR_PULL_SET_MEM_CTX(ndr, r->out.count_returned, LIBNDR_FLAG_REF_ALLOC);
9729                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count_returned));
9730                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_returned_0, LIBNDR_FLAG_REF_ALLOC);
9731                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9732                         NDR_PULL_ALLOC(ndr, r->out.total_entries);
9733                 }
9734                 _mem_save_total_entries_0 = NDR_PULL_GET_MEM_CTX(ndr);
9735                 NDR_PULL_SET_MEM_CTX(ndr, r->out.total_entries, LIBNDR_FLAG_REF_ALLOC);
9736                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.total_entries));
9737                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_total_entries_0, LIBNDR_FLAG_REF_ALLOC);
9738                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9739                         NDR_PULL_ALLOC(ndr, r->out.next_reference);
9740                 }
9741                 _mem_save_next_reference_0 = NDR_PULL_GET_MEM_CTX(ndr);
9742                 NDR_PULL_SET_MEM_CTX(ndr, r->out.next_reference, LIBNDR_FLAG_REF_ALLOC);
9743                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.next_reference));
9744                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_next_reference_0, LIBNDR_FLAG_REF_ALLOC);
9745                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9746                         NDR_PULL_ALLOC(ndr, r->out.recordid);
9747                 }
9748                 _mem_save_recordid_0 = NDR_PULL_GET_MEM_CTX(ndr);
9749                 NDR_PULL_SET_MEM_CTX(ndr, r->out.recordid, LIBNDR_FLAG_REF_ALLOC);
9750                 NDR_CHECK(ndr_pull_netr_UAS_INFO_0(ndr, NDR_SCALARS, r->out.recordid));
9751                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_recordid_0, LIBNDR_FLAG_REF_ALLOC);
9752                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
9753         }
9754         return NDR_ERR_SUCCESS;
9755 }
9756
9757 _PUBLIC_ void ndr_print_netr_AccountSync(struct ndr_print *ndr, const char *name, int flags, const struct netr_AccountSync *r)
9758 {
9759         ndr_print_struct(ndr, name, "netr_AccountSync");
9760         ndr->depth++;
9761         if (flags & NDR_SET_VALUES) {
9762                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9763         }
9764         if (flags & NDR_IN) {
9765                 ndr_print_struct(ndr, "in", "netr_AccountSync");
9766                 ndr->depth++;
9767                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
9768                 ndr->depth++;
9769                 if (r->in.logon_server) {
9770                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
9771                 }
9772                 ndr->depth--;
9773                 ndr_print_string(ndr, "computername", r->in.computername);
9774                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
9775                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
9776                 ndr->depth++;
9777                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
9778                 ndr->depth--;
9779                 ndr_print_uint32(ndr, "reference", r->in.reference);
9780                 ndr_print_uint32(ndr, "level", r->in.level);
9781                 ndr_print_uint32(ndr, "buffersize", r->in.buffersize);
9782                 ndr_print_ptr(ndr, "recordid", r->in.recordid);
9783                 ndr->depth++;
9784                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->in.recordid);
9785                 ndr->depth--;
9786                 ndr->depth--;
9787         }
9788         if (flags & NDR_OUT) {
9789                 ndr_print_struct(ndr, "out", "netr_AccountSync");
9790                 ndr->depth++;
9791                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
9792                 ndr->depth++;
9793                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
9794                 ndr->depth--;
9795                 ndr_print_ptr(ndr, "buffer", r->out.buffer);
9796                 ndr->depth++;
9797                 ndr_print_netr_AccountBuffer(ndr, "buffer", r->out.buffer);
9798                 ndr->depth--;
9799                 ndr_print_ptr(ndr, "count_returned", r->out.count_returned);
9800                 ndr->depth++;
9801                 ndr_print_uint32(ndr, "count_returned", *r->out.count_returned);
9802                 ndr->depth--;
9803                 ndr_print_ptr(ndr, "total_entries", r->out.total_entries);
9804                 ndr->depth++;
9805                 ndr_print_uint32(ndr, "total_entries", *r->out.total_entries);
9806                 ndr->depth--;
9807                 ndr_print_ptr(ndr, "next_reference", r->out.next_reference);
9808                 ndr->depth++;
9809                 ndr_print_uint32(ndr, "next_reference", *r->out.next_reference);
9810                 ndr->depth--;
9811                 ndr_print_ptr(ndr, "recordid", r->out.recordid);
9812                 ndr->depth++;
9813                 ndr_print_netr_UAS_INFO_0(ndr, "recordid", r->out.recordid);
9814                 ndr->depth--;
9815                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
9816                 ndr->depth--;
9817         }
9818         ndr->depth--;
9819 }
9820
9821 static enum ndr_err_code ndr_push_netr_GetDcName(struct ndr_push *ndr, int flags, const struct netr_GetDcName *r)
9822 {
9823         if (flags & NDR_IN) {
9824                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9825                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9826                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9827                 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));
9828                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
9829                 if (r->in.domainname) {
9830                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9831                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9832                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
9833                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9834                 }
9835         }
9836         if (flags & NDR_OUT) {
9837                 if (r->out.dcname == NULL) {
9838                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9839                 }
9840                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
9841                 if (*r->out.dcname) {
9842                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9843                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9844                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
9845                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9846                 }
9847                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9848         }
9849         return NDR_ERR_SUCCESS;
9850 }
9851
9852 static enum ndr_err_code ndr_pull_netr_GetDcName(struct ndr_pull *ndr, int flags, struct netr_GetDcName *r)
9853 {
9854         uint32_t _ptr_domainname;
9855         uint32_t _ptr_dcname;
9856         TALLOC_CTX *_mem_save_domainname_0;
9857         TALLOC_CTX *_mem_save_dcname_0;
9858         TALLOC_CTX *_mem_save_dcname_1;
9859         if (flags & NDR_IN) {
9860                 ZERO_STRUCT(r->out);
9861
9862                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9863                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
9864                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
9865                         return 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));
9866                 }
9867                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
9868                 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));
9869                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
9870                 if (_ptr_domainname) {
9871                         NDR_PULL_ALLOC(ndr, r->in.domainname);
9872                 } else {
9873                         r->in.domainname = NULL;
9874                 }
9875                 if (r->in.domainname) {
9876                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9877                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
9878                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
9879                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
9880                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
9881                                 return 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));
9882                         }
9883                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
9884                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
9885                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
9886                 }
9887                 NDR_PULL_ALLOC(ndr, r->out.dcname);
9888                 ZERO_STRUCTP(r->out.dcname);
9889         }
9890         if (flags & NDR_OUT) {
9891                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
9892                         NDR_PULL_ALLOC(ndr, r->out.dcname);
9893                 }
9894                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
9895                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
9896                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
9897                 if (_ptr_dcname) {
9898                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
9899                 } else {
9900                         *r->out.dcname = NULL;
9901                 }
9902                 if (*r->out.dcname) {
9903                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
9904                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
9905                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
9906                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
9907                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
9908                                 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));
9909                         }
9910                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
9911                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
9912                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
9913                 }
9914                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
9915                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
9916         }
9917         return NDR_ERR_SUCCESS;
9918 }
9919
9920 _PUBLIC_ void ndr_print_netr_GetDcName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetDcName *r)
9921 {
9922         ndr_print_struct(ndr, name, "netr_GetDcName");
9923         ndr->depth++;
9924         if (flags & NDR_SET_VALUES) {
9925                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
9926         }
9927         if (flags & NDR_IN) {
9928                 ndr_print_struct(ndr, "in", "netr_GetDcName");
9929                 ndr->depth++;
9930                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
9931                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
9932                 ndr->depth++;
9933                 if (r->in.domainname) {
9934                         ndr_print_string(ndr, "domainname", r->in.domainname);
9935                 }
9936                 ndr->depth--;
9937                 ndr->depth--;
9938         }
9939         if (flags & NDR_OUT) {
9940                 ndr_print_struct(ndr, "out", "netr_GetDcName");
9941                 ndr->depth++;
9942                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
9943                 ndr->depth++;
9944                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
9945                 ndr->depth++;
9946                 if (*r->out.dcname) {
9947                         ndr_print_string(ndr, "dcname", *r->out.dcname);
9948                 }
9949                 ndr->depth--;
9950                 ndr->depth--;
9951                 ndr_print_WERROR(ndr, "result", r->out.result);
9952                 ndr->depth--;
9953         }
9954         ndr->depth--;
9955 }
9956
9957 static enum ndr_err_code ndr_push_netr_LogonControl(struct ndr_push *ndr, int flags, const struct netr_LogonControl *r)
9958 {
9959         if (flags & NDR_IN) {
9960                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
9961                 if (r->in.logon_server) {
9962                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9963                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9964                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
9965                         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));
9966                 }
9967                 NDR_CHECK(ndr_push_netr_LogonControlCode(ndr, NDR_SCALARS, r->in.function_code));
9968                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
9969         }
9970         if (flags & NDR_OUT) {
9971                 if (r->out.info == NULL) {
9972                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
9973                 }
9974                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
9975                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
9976                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
9977         }
9978         return NDR_ERR_SUCCESS;
9979 }
9980
9981 static enum ndr_err_code ndr_pull_netr_LogonControl(struct ndr_pull *ndr, int flags, struct netr_LogonControl *r)
9982 {
9983         uint32_t _ptr_logon_server;
9984         TALLOC_CTX *_mem_save_logon_server_0;
9985         TALLOC_CTX *_mem_save_info_0;
9986         if (flags & NDR_IN) {
9987                 ZERO_STRUCT(r->out);
9988
9989                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
9990                 if (_ptr_logon_server) {
9991                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
9992                 } else {
9993                         r->in.logon_server = NULL;
9994                 }
9995                 if (r->in.logon_server) {
9996                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
9997                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
9998                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
9999                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10000                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10001                                 return 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));
10002                         }
10003                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10004                         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));
10005                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10006                 }
10007                 NDR_CHECK(ndr_pull_netr_LogonControlCode(ndr, NDR_SCALARS, &r->in.function_code));
10008                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10009                 NDR_PULL_ALLOC(ndr, r->out.info);
10010                 ZERO_STRUCTP(r->out.info);
10011         }
10012         if (flags & NDR_OUT) {
10013                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10014                         NDR_PULL_ALLOC(ndr, r->out.info);
10015                 }
10016                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
10017                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
10018                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
10019                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
10020                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
10021                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10022         }
10023         return NDR_ERR_SUCCESS;
10024 }
10025
10026 _PUBLIC_ void ndr_print_netr_LogonControl(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl *r)
10027 {
10028         ndr_print_struct(ndr, name, "netr_LogonControl");
10029         ndr->depth++;
10030         if (flags & NDR_SET_VALUES) {
10031                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10032         }
10033         if (flags & NDR_IN) {
10034                 ndr_print_struct(ndr, "in", "netr_LogonControl");
10035                 ndr->depth++;
10036                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10037                 ndr->depth++;
10038                 if (r->in.logon_server) {
10039                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10040                 }
10041                 ndr->depth--;
10042                 ndr_print_netr_LogonControlCode(ndr, "function_code", r->in.function_code);
10043                 ndr_print_uint32(ndr, "level", r->in.level);
10044                 ndr->depth--;
10045         }
10046         if (flags & NDR_OUT) {
10047                 ndr_print_struct(ndr, "out", "netr_LogonControl");
10048                 ndr->depth++;
10049                 ndr_print_ptr(ndr, "info", r->out.info);
10050                 ndr->depth++;
10051                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
10052                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "info", r->out.info);
10053                 ndr->depth--;
10054                 ndr_print_WERROR(ndr, "result", r->out.result);
10055                 ndr->depth--;
10056         }
10057         ndr->depth--;
10058 }
10059
10060 static enum ndr_err_code ndr_push_netr_GetAnyDCName(struct ndr_push *ndr, int flags, const struct netr_GetAnyDCName *r)
10061 {
10062         if (flags & NDR_IN) {
10063                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10064                 if (r->in.logon_server) {
10065                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10066                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10067                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10068                         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));
10069                 }
10070                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domainname));
10071                 if (r->in.domainname) {
10072                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10073                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10074                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domainname, CH_UTF16)));
10075                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domainname, ndr_charset_length(r->in.domainname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10076                 }
10077         }
10078         if (flags & NDR_OUT) {
10079                 if (r->out.dcname == NULL) {
10080                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10081                 }
10082                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.dcname));
10083                 if (*r->out.dcname) {
10084                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10085                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10086                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.dcname, CH_UTF16)));
10087                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.dcname, ndr_charset_length(*r->out.dcname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10088                 }
10089                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10090         }
10091         return NDR_ERR_SUCCESS;
10092 }
10093
10094 static enum ndr_err_code ndr_pull_netr_GetAnyDCName(struct ndr_pull *ndr, int flags, struct netr_GetAnyDCName *r)
10095 {
10096         uint32_t _ptr_logon_server;
10097         uint32_t _ptr_domainname;
10098         uint32_t _ptr_dcname;
10099         TALLOC_CTX *_mem_save_logon_server_0;
10100         TALLOC_CTX *_mem_save_domainname_0;
10101         TALLOC_CTX *_mem_save_dcname_0;
10102         TALLOC_CTX *_mem_save_dcname_1;
10103         if (flags & NDR_IN) {
10104                 ZERO_STRUCT(r->out);
10105
10106                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10107                 if (_ptr_logon_server) {
10108                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10109                 } else {
10110                         r->in.logon_server = NULL;
10111                 }
10112                 if (r->in.logon_server) {
10113                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10114                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10115                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10116                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10117                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10118                                 return 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));
10119                         }
10120                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10121                         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));
10122                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10123                 }
10124                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domainname));
10125                 if (_ptr_domainname) {
10126                         NDR_PULL_ALLOC(ndr, r->in.domainname);
10127                 } else {
10128                         r->in.domainname = NULL;
10129                 }
10130                 if (r->in.domainname) {
10131                         _mem_save_domainname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10132                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domainname, 0);
10133                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domainname));
10134                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domainname));
10135                         if (ndr_get_array_length(ndr, &r->in.domainname) > ndr_get_array_size(ndr, &r->in.domainname)) {
10136                                 return 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));
10137                         }
10138                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t)));
10139                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domainname, ndr_get_array_length(ndr, &r->in.domainname), sizeof(uint16_t), CH_UTF16));
10140                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domainname_0, 0);
10141                 }
10142                 NDR_PULL_ALLOC(ndr, r->out.dcname);
10143                 ZERO_STRUCTP(r->out.dcname);
10144         }
10145         if (flags & NDR_OUT) {
10146                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10147                         NDR_PULL_ALLOC(ndr, r->out.dcname);
10148                 }
10149                 _mem_save_dcname_0 = NDR_PULL_GET_MEM_CTX(ndr);
10150                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dcname, LIBNDR_FLAG_REF_ALLOC);
10151                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dcname));
10152                 if (_ptr_dcname) {
10153                         NDR_PULL_ALLOC(ndr, *r->out.dcname);
10154                 } else {
10155                         *r->out.dcname = NULL;
10156                 }
10157                 if (*r->out.dcname) {
10158                         _mem_save_dcname_1 = NDR_PULL_GET_MEM_CTX(ndr);
10159                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.dcname, 0);
10160                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.dcname));
10161                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.dcname));
10162                         if (ndr_get_array_length(ndr, r->out.dcname) > ndr_get_array_size(ndr, r->out.dcname)) {
10163                                 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));
10164                         }
10165                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t)));
10166                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.dcname, ndr_get_array_length(ndr, r->out.dcname), sizeof(uint16_t), CH_UTF16));
10167                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_1, 0);
10168                 }
10169                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dcname_0, LIBNDR_FLAG_REF_ALLOC);
10170                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10171         }
10172         return NDR_ERR_SUCCESS;
10173 }
10174
10175 _PUBLIC_ void ndr_print_netr_GetAnyDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetAnyDCName *r)
10176 {
10177         ndr_print_struct(ndr, name, "netr_GetAnyDCName");
10178         ndr->depth++;
10179         if (flags & NDR_SET_VALUES) {
10180                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10181         }
10182         if (flags & NDR_IN) {
10183                 ndr_print_struct(ndr, "in", "netr_GetAnyDCName");
10184                 ndr->depth++;
10185                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10186                 ndr->depth++;
10187                 if (r->in.logon_server) {
10188                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10189                 }
10190                 ndr->depth--;
10191                 ndr_print_ptr(ndr, "domainname", r->in.domainname);
10192                 ndr->depth++;
10193                 if (r->in.domainname) {
10194                         ndr_print_string(ndr, "domainname", r->in.domainname);
10195                 }
10196                 ndr->depth--;
10197                 ndr->depth--;
10198         }
10199         if (flags & NDR_OUT) {
10200                 ndr_print_struct(ndr, "out", "netr_GetAnyDCName");
10201                 ndr->depth++;
10202                 ndr_print_ptr(ndr, "dcname", r->out.dcname);
10203                 ndr->depth++;
10204                 ndr_print_ptr(ndr, "dcname", *r->out.dcname);
10205                 ndr->depth++;
10206                 if (*r->out.dcname) {
10207                         ndr_print_string(ndr, "dcname", *r->out.dcname);
10208                 }
10209                 ndr->depth--;
10210                 ndr->depth--;
10211                 ndr_print_WERROR(ndr, "result", r->out.result);
10212                 ndr->depth--;
10213         }
10214         ndr->depth--;
10215 }
10216
10217 static enum ndr_err_code ndr_push_netr_LogonControl2(struct ndr_push *ndr, int flags, const struct netr_LogonControl2 *r)
10218 {
10219         if (flags & NDR_IN) {
10220                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10221                 if (r->in.logon_server) {
10222                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10223                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10224                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10225                         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));
10226                 }
10227                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
10228                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10229                 if (r->in.data == NULL) {
10230                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10231                 }
10232                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->in.data, r->in.function_code));
10233                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
10234         }
10235         if (flags & NDR_OUT) {
10236                 if (r->out.query == NULL) {
10237                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10238                 }
10239                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10240                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10241                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10242         }
10243         return NDR_ERR_SUCCESS;
10244 }
10245
10246 static enum ndr_err_code ndr_pull_netr_LogonControl2(struct ndr_pull *ndr, int flags, struct netr_LogonControl2 *r)
10247 {
10248         uint32_t _ptr_logon_server;
10249         TALLOC_CTX *_mem_save_logon_server_0;
10250         TALLOC_CTX *_mem_save_data_0;
10251         TALLOC_CTX *_mem_save_query_0;
10252         if (flags & NDR_IN) {
10253                 ZERO_STRUCT(r->out);
10254
10255                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10256                 if (_ptr_logon_server) {
10257                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10258                 } else {
10259                         r->in.logon_server = NULL;
10260                 }
10261                 if (r->in.logon_server) {
10262                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10263                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10264                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10265                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10266                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10267                                 return 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));
10268                         }
10269                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10270                         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));
10271                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10272                 }
10273                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
10274                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10275                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10276                         NDR_PULL_ALLOC(ndr, r->in.data);
10277                 }
10278                 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
10279                 NDR_PULL_SET_MEM_CTX(ndr, r->in.data, LIBNDR_FLAG_REF_ALLOC);
10280                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->in.data, r->in.function_code));
10281                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.data));
10282                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
10283                 NDR_PULL_ALLOC(ndr, r->out.query);
10284                 ZERO_STRUCTP(r->out.query);
10285         }
10286         if (flags & NDR_OUT) {
10287                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10288                         NDR_PULL_ALLOC(ndr, r->out.query);
10289                 }
10290                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10291                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10292                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10293                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10294                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10295                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10296         }
10297         return NDR_ERR_SUCCESS;
10298 }
10299
10300 _PUBLIC_ void ndr_print_netr_LogonControl2(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2 *r)
10301 {
10302         ndr_print_struct(ndr, name, "netr_LogonControl2");
10303         ndr->depth++;
10304         if (flags & NDR_SET_VALUES) {
10305                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10306         }
10307         if (flags & NDR_IN) {
10308                 ndr_print_struct(ndr, "in", "netr_LogonControl2");
10309                 ndr->depth++;
10310                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10311                 ndr->depth++;
10312                 if (r->in.logon_server) {
10313                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10314                 }
10315                 ndr->depth--;
10316                 ndr_print_uint32(ndr, "function_code", r->in.function_code);
10317                 ndr_print_uint32(ndr, "level", r->in.level);
10318                 ndr_print_ptr(ndr, "data", r->in.data);
10319                 ndr->depth++;
10320                 ndr_print_set_switch_value(ndr, r->in.data, r->in.function_code);
10321                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", r->in.data);
10322                 ndr->depth--;
10323                 ndr->depth--;
10324         }
10325         if (flags & NDR_OUT) {
10326                 ndr_print_struct(ndr, "out", "netr_LogonControl2");
10327                 ndr->depth++;
10328                 ndr_print_ptr(ndr, "query", r->out.query);
10329                 ndr->depth++;
10330                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10331                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10332                 ndr->depth--;
10333                 ndr_print_WERROR(ndr, "result", r->out.result);
10334                 ndr->depth--;
10335         }
10336         ndr->depth--;
10337 }
10338
10339 static enum ndr_err_code ndr_push_netr_ServerAuthenticate2(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate2 *r)
10340 {
10341         if (flags & NDR_IN) {
10342                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10343                 if (r->in.server_name) {
10344                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10345                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10346                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10347                         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));
10348                 }
10349                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10350                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10351                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
10352                 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));
10353                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
10354                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10355                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10356                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
10357                 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));
10358                 if (r->in.credentials == NULL) {
10359                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10360                 }
10361                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10362                 if (r->in.negotiate_flags == NULL) {
10363                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10364                 }
10365                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.negotiate_flags));
10366         }
10367         if (flags & NDR_OUT) {
10368                 if (r->out.credentials == NULL) {
10369                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10370                 }
10371                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
10372                 if (r->out.negotiate_flags == NULL) {
10373                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10374                 }
10375                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.negotiate_flags));
10376                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10377         }
10378         return NDR_ERR_SUCCESS;
10379 }
10380
10381 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate2(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate2 *r)
10382 {
10383         uint32_t _ptr_server_name;
10384         TALLOC_CTX *_mem_save_server_name_0;
10385         TALLOC_CTX *_mem_save_credentials_0;
10386         TALLOC_CTX *_mem_save_negotiate_flags_0;
10387         if (flags & NDR_IN) {
10388                 ZERO_STRUCT(r->out);
10389
10390                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10391                 if (_ptr_server_name) {
10392                         NDR_PULL_ALLOC(ndr, r->in.server_name);
10393                 } else {
10394                         r->in.server_name = NULL;
10395                 }
10396                 if (r->in.server_name) {
10397                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10398                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10399                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10400                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10401                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10402                                 return 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));
10403                         }
10404                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10405                         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));
10406                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10407                 }
10408                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
10409                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
10410                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
10411                         return 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));
10412                 }
10413                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
10414                 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));
10415                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
10416                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
10417                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
10418                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
10419                         return 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));
10420                 }
10421                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
10422                 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));
10423                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10424                         NDR_PULL_ALLOC(ndr, r->in.credentials);
10425                 }
10426                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10427                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
10428                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
10429                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10430                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10431                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
10432                 }
10433                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10434                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10435                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.negotiate_flags));
10436                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10437                 NDR_PULL_ALLOC(ndr, r->out.credentials);
10438                 *r->out.credentials = *r->in.credentials;
10439                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10440                 *r->out.negotiate_flags = *r->in.negotiate_flags;
10441         }
10442         if (flags & NDR_OUT) {
10443                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10444                         NDR_PULL_ALLOC(ndr, r->out.credentials);
10445                 }
10446                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
10447                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
10448                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
10449                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
10450                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10451                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
10452                 }
10453                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
10454                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
10455                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.negotiate_flags));
10456                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
10457                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10458         }
10459         return NDR_ERR_SUCCESS;
10460 }
10461
10462 _PUBLIC_ void ndr_print_netr_ServerAuthenticate2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate2 *r)
10463 {
10464         ndr_print_struct(ndr, name, "netr_ServerAuthenticate2");
10465         ndr->depth++;
10466         if (flags & NDR_SET_VALUES) {
10467                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10468         }
10469         if (flags & NDR_IN) {
10470                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate2");
10471                 ndr->depth++;
10472                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
10473                 ndr->depth++;
10474                 if (r->in.server_name) {
10475                         ndr_print_string(ndr, "server_name", r->in.server_name);
10476                 }
10477                 ndr->depth--;
10478                 ndr_print_string(ndr, "account_name", r->in.account_name);
10479                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
10480                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
10481                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
10482                 ndr->depth++;
10483                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
10484                 ndr->depth--;
10485                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
10486                 ndr->depth++;
10487                 ndr_print_uint32(ndr, "negotiate_flags", *r->in.negotiate_flags);
10488                 ndr->depth--;
10489                 ndr->depth--;
10490         }
10491         if (flags & NDR_OUT) {
10492                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate2");
10493                 ndr->depth++;
10494                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
10495                 ndr->depth++;
10496                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
10497                 ndr->depth--;
10498                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
10499                 ndr->depth++;
10500                 ndr_print_uint32(ndr, "negotiate_flags", *r->out.negotiate_flags);
10501                 ndr->depth--;
10502                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10503                 ndr->depth--;
10504         }
10505         ndr->depth--;
10506 }
10507
10508 static enum ndr_err_code ndr_push_netr_DatabaseSync2(struct ndr_push *ndr, int flags, const struct netr_DatabaseSync2 *r)
10509 {
10510         if (flags & NDR_IN) {
10511                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10512                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10513                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10514                 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));
10515                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10516                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10517                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10518                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10519                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10520                 if (r->in.return_authenticator == NULL) {
10521                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10522                 }
10523                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10524                 NDR_CHECK(ndr_push_netr_SamDatabaseID(ndr, NDR_SCALARS, r->in.database_id));
10525                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.restart_state));
10526                 if (r->in.sync_context == NULL) {
10527                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10528                 }
10529                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.sync_context));
10530                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.preferredmaximumlength));
10531         }
10532         if (flags & NDR_OUT) {
10533                 if (r->out.return_authenticator == NULL) {
10534                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10535                 }
10536                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10537                 if (r->out.sync_context == NULL) {
10538                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10539                 }
10540                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.sync_context));
10541                 if (r->out.delta_enum_array == NULL) {
10542                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10543                 }
10544                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10545                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10546         }
10547         return NDR_ERR_SUCCESS;
10548 }
10549
10550 static enum ndr_err_code ndr_pull_netr_DatabaseSync2(struct ndr_pull *ndr, int flags, struct netr_DatabaseSync2 *r)
10551 {
10552         TALLOC_CTX *_mem_save_return_authenticator_0;
10553         TALLOC_CTX *_mem_save_sync_context_0;
10554         TALLOC_CTX *_mem_save_delta_enum_array_0;
10555         if (flags & NDR_IN) {
10556                 ZERO_STRUCT(r->out);
10557
10558                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10559                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10560                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10561                         return 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));
10562                 }
10563                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10564                 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));
10565                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10566                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10567                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10568                         return 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));
10569                 }
10570                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10571                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10572                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10573                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10574                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10575                 }
10576                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10577                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10578                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10579                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10580                 NDR_CHECK(ndr_pull_netr_SamDatabaseID(ndr, NDR_SCALARS, &r->in.database_id));
10581                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.restart_state));
10582                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10583                         NDR_PULL_ALLOC(ndr, r->in.sync_context);
10584                 }
10585                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10586                 NDR_PULL_SET_MEM_CTX(ndr, r->in.sync_context, LIBNDR_FLAG_REF_ALLOC);
10587                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.sync_context));
10588                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10589                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.preferredmaximumlength));
10590                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10591                 *r->out.return_authenticator = *r->in.return_authenticator;
10592                 NDR_PULL_ALLOC(ndr, r->out.sync_context);
10593                 *r->out.sync_context = *r->in.sync_context;
10594                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10595                 ZERO_STRUCTP(r->out.delta_enum_array);
10596         }
10597         if (flags & NDR_OUT) {
10598                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10599                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10600                 }
10601                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10602                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10603                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10604                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10605                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10606                         NDR_PULL_ALLOC(ndr, r->out.sync_context);
10607                 }
10608                 _mem_save_sync_context_0 = NDR_PULL_GET_MEM_CTX(ndr);
10609                 NDR_PULL_SET_MEM_CTX(ndr, r->out.sync_context, LIBNDR_FLAG_REF_ALLOC);
10610                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.sync_context));
10611                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sync_context_0, LIBNDR_FLAG_REF_ALLOC);
10612                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10613                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10614                 }
10615                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10616                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10617                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10618                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10619                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10620         }
10621         return NDR_ERR_SUCCESS;
10622 }
10623
10624 _PUBLIC_ void ndr_print_netr_DatabaseSync2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseSync2 *r)
10625 {
10626         ndr_print_struct(ndr, name, "netr_DatabaseSync2");
10627         ndr->depth++;
10628         if (flags & NDR_SET_VALUES) {
10629                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10630         }
10631         if (flags & NDR_IN) {
10632                 ndr_print_struct(ndr, "in", "netr_DatabaseSync2");
10633                 ndr->depth++;
10634                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10635                 ndr_print_string(ndr, "computername", r->in.computername);
10636                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10637                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10638                 ndr->depth++;
10639                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10640                 ndr->depth--;
10641                 ndr_print_netr_SamDatabaseID(ndr, "database_id", r->in.database_id);
10642                 ndr_print_uint16(ndr, "restart_state", r->in.restart_state);
10643                 ndr_print_ptr(ndr, "sync_context", r->in.sync_context);
10644                 ndr->depth++;
10645                 ndr_print_uint32(ndr, "sync_context", *r->in.sync_context);
10646                 ndr->depth--;
10647                 ndr_print_uint32(ndr, "preferredmaximumlength", r->in.preferredmaximumlength);
10648                 ndr->depth--;
10649         }
10650         if (flags & NDR_OUT) {
10651                 ndr_print_struct(ndr, "out", "netr_DatabaseSync2");
10652                 ndr->depth++;
10653                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10654                 ndr->depth++;
10655                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10656                 ndr->depth--;
10657                 ndr_print_ptr(ndr, "sync_context", r->out.sync_context);
10658                 ndr->depth++;
10659                 ndr_print_uint32(ndr, "sync_context", *r->out.sync_context);
10660                 ndr->depth--;
10661                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10662                 ndr->depth++;
10663                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
10664                 ndr->depth--;
10665                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10666                 ndr->depth--;
10667         }
10668         ndr->depth--;
10669 }
10670
10671 static enum ndr_err_code ndr_push_netr_DatabaseRedo(struct ndr_push *ndr, int flags, const struct netr_DatabaseRedo *r)
10672 {
10673         if (flags & NDR_IN) {
10674                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10675                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10676                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10677                 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));
10678                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10679                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10680                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computername, CH_UTF16)));
10681                 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.computername, ndr_charset_length(r->in.computername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10682                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10683                 if (r->in.return_authenticator == NULL) {
10684                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10685                 }
10686                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10687                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.change_log_entry));
10688                 if (r->in.change_log_entry) {
10689                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10690                         NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, r->in.change_log_entry_size));
10691                 }
10692                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_log_entry_size));
10693         }
10694         if (flags & NDR_OUT) {
10695                 if (r->out.return_authenticator == NULL) {
10696                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10697                 }
10698                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10699                 if (r->out.delta_enum_array == NULL) {
10700                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10701                 }
10702                 NDR_CHECK(ndr_push_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10703                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
10704         }
10705         return NDR_ERR_SUCCESS;
10706 }
10707
10708 static enum ndr_err_code ndr_pull_netr_DatabaseRedo(struct ndr_pull *ndr, int flags, struct netr_DatabaseRedo *r)
10709 {
10710         uint32_t _ptr_change_log_entry;
10711         TALLOC_CTX *_mem_save_return_authenticator_0;
10712         TALLOC_CTX *_mem_save_change_log_entry_0;
10713         TALLOC_CTX *_mem_save_delta_enum_array_0;
10714         if (flags & NDR_IN) {
10715                 ZERO_STRUCT(r->out);
10716
10717                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10718                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10719                 if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10720                         return 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));
10721                 }
10722                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10723                 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));
10724                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computername));
10725                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computername));
10726                 if (ndr_get_array_length(ndr, &r->in.computername) > ndr_get_array_size(ndr, &r->in.computername)) {
10727                         return 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));
10728                 }
10729                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t)));
10730                 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.computername, ndr_get_array_length(ndr, &r->in.computername), sizeof(uint16_t), CH_UTF16));
10731                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
10732                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10733                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
10734                 }
10735                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10736                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10737                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
10738                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10739                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_change_log_entry));
10740                 if (_ptr_change_log_entry) {
10741                         NDR_PULL_ALLOC(ndr, r->in.change_log_entry);
10742                 } else {
10743                         r->in.change_log_entry = NULL;
10744                 }
10745                 if (r->in.change_log_entry) {
10746                         _mem_save_change_log_entry_0 = NDR_PULL_GET_MEM_CTX(ndr);
10747                         NDR_PULL_SET_MEM_CTX(ndr, r->in.change_log_entry, 0);
10748                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.change_log_entry));
10749                         NDR_PULL_ALLOC_N(ndr, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry));
10750                         NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.change_log_entry, ndr_get_array_size(ndr, &r->in.change_log_entry)));
10751                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_change_log_entry_0, 0);
10752                 }
10753                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_log_entry_size));
10754                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10755                 *r->out.return_authenticator = *r->in.return_authenticator;
10756                 NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10757                 ZERO_STRUCTP(r->out.delta_enum_array);
10758                 if (r->in.change_log_entry) {
10759                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.change_log_entry, r->in.change_log_entry_size));
10760                 }
10761         }
10762         if (flags & NDR_OUT) {
10763                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10764                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
10765                 }
10766                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
10767                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
10768                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
10769                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
10770                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10771                         NDR_PULL_ALLOC(ndr, r->out.delta_enum_array);
10772                 }
10773                 _mem_save_delta_enum_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
10774                 NDR_PULL_SET_MEM_CTX(ndr, r->out.delta_enum_array, LIBNDR_FLAG_REF_ALLOC);
10775                 NDR_CHECK(ndr_pull_netr_DELTA_ENUM_ARRAY(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.delta_enum_array));
10776                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_delta_enum_array_0, LIBNDR_FLAG_REF_ALLOC);
10777                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
10778         }
10779         return NDR_ERR_SUCCESS;
10780 }
10781
10782 _PUBLIC_ void ndr_print_netr_DatabaseRedo(struct ndr_print *ndr, const char *name, int flags, const struct netr_DatabaseRedo *r)
10783 {
10784         ndr_print_struct(ndr, name, "netr_DatabaseRedo");
10785         ndr->depth++;
10786         if (flags & NDR_SET_VALUES) {
10787                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10788         }
10789         if (flags & NDR_IN) {
10790                 ndr_print_struct(ndr, "in", "netr_DatabaseRedo");
10791                 ndr->depth++;
10792                 ndr_print_string(ndr, "logon_server", r->in.logon_server);
10793                 ndr_print_string(ndr, "computername", r->in.computername);
10794                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
10795                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
10796                 ndr->depth++;
10797                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
10798                 ndr->depth--;
10799                 ndr_print_ptr(ndr, "change_log_entry", r->in.change_log_entry);
10800                 ndr->depth++;
10801                 if (r->in.change_log_entry) {
10802                         ndr_print_array_uint8(ndr, "change_log_entry", r->in.change_log_entry, r->in.change_log_entry_size);
10803                 }
10804                 ndr->depth--;
10805                 ndr_print_uint32(ndr, "change_log_entry_size", r->in.change_log_entry_size);
10806                 ndr->depth--;
10807         }
10808         if (flags & NDR_OUT) {
10809                 ndr_print_struct(ndr, "out", "netr_DatabaseRedo");
10810                 ndr->depth++;
10811                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
10812                 ndr->depth++;
10813                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
10814                 ndr->depth--;
10815                 ndr_print_ptr(ndr, "delta_enum_array", r->out.delta_enum_array);
10816                 ndr->depth++;
10817                 ndr_print_netr_DELTA_ENUM_ARRAY(ndr, "delta_enum_array", r->out.delta_enum_array);
10818                 ndr->depth--;
10819                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
10820                 ndr->depth--;
10821         }
10822         ndr->depth--;
10823 }
10824
10825 static enum ndr_err_code ndr_push_netr_LogonControl2Ex(struct ndr_push *ndr, int flags, const struct netr_LogonControl2Ex *r)
10826 {
10827         if (flags & NDR_IN) {
10828                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.logon_server));
10829                 if (r->in.logon_server) {
10830                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10831                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10832                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.logon_server, CH_UTF16)));
10833                         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));
10834                 }
10835                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.function_code));
10836                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
10837                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.data, r->in.function_code));
10838                 NDR_CHECK(ndr_push_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10839         }
10840         if (flags & NDR_OUT) {
10841                 if (r->out.query == NULL) {
10842                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10843                 }
10844                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.query, r->in.level));
10845                 NDR_CHECK(ndr_push_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10846                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10847         }
10848         return NDR_ERR_SUCCESS;
10849 }
10850
10851 static enum ndr_err_code ndr_pull_netr_LogonControl2Ex(struct ndr_pull *ndr, int flags, struct netr_LogonControl2Ex *r)
10852 {
10853         uint32_t _ptr_logon_server;
10854         TALLOC_CTX *_mem_save_logon_server_0;
10855         TALLOC_CTX *_mem_save_query_0;
10856         if (flags & NDR_IN) {
10857                 ZERO_STRUCT(r->out);
10858
10859                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_logon_server));
10860                 if (_ptr_logon_server) {
10861                         NDR_PULL_ALLOC(ndr, r->in.logon_server);
10862                 } else {
10863                         r->in.logon_server = NULL;
10864                 }
10865                 if (r->in.logon_server) {
10866                         _mem_save_logon_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
10867                         NDR_PULL_SET_MEM_CTX(ndr, r->in.logon_server, 0);
10868                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.logon_server));
10869                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.logon_server));
10870                         if (ndr_get_array_length(ndr, &r->in.logon_server) > ndr_get_array_size(ndr, &r->in.logon_server)) {
10871                                 return 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));
10872                         }
10873                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.logon_server), sizeof(uint16_t)));
10874                         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));
10875                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_logon_server_0, 0);
10876                 }
10877                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.function_code));
10878                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
10879                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.data, r->in.function_code));
10880                 NDR_CHECK(ndr_pull_netr_CONTROL_DATA_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
10881                 NDR_PULL_ALLOC(ndr, r->out.query);
10882                 ZERO_STRUCTP(r->out.query);
10883         }
10884         if (flags & NDR_OUT) {
10885                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10886                         NDR_PULL_ALLOC(ndr, r->out.query);
10887                 }
10888                 _mem_save_query_0 = NDR_PULL_GET_MEM_CTX(ndr);
10889                 NDR_PULL_SET_MEM_CTX(ndr, r->out.query, LIBNDR_FLAG_REF_ALLOC);
10890                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.query, r->in.level));
10891                 NDR_CHECK(ndr_pull_netr_CONTROL_QUERY_INFORMATION(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.query));
10892                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_query_0, LIBNDR_FLAG_REF_ALLOC);
10893                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10894         }
10895         return NDR_ERR_SUCCESS;
10896 }
10897
10898 _PUBLIC_ void ndr_print_netr_LogonControl2Ex(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonControl2Ex *r)
10899 {
10900         ndr_print_struct(ndr, name, "netr_LogonControl2Ex");
10901         ndr->depth++;
10902         if (flags & NDR_SET_VALUES) {
10903                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
10904         }
10905         if (flags & NDR_IN) {
10906                 ndr_print_struct(ndr, "in", "netr_LogonControl2Ex");
10907                 ndr->depth++;
10908                 ndr_print_ptr(ndr, "logon_server", r->in.logon_server);
10909                 ndr->depth++;
10910                 if (r->in.logon_server) {
10911                         ndr_print_string(ndr, "logon_server", r->in.logon_server);
10912                 }
10913                 ndr->depth--;
10914                 ndr_print_uint32(ndr, "function_code", r->in.function_code);
10915                 ndr_print_uint32(ndr, "level", r->in.level);
10916                 ndr_print_set_switch_value(ndr, &r->in.data, r->in.function_code);
10917                 ndr_print_netr_CONTROL_DATA_INFORMATION(ndr, "data", &r->in.data);
10918                 ndr->depth--;
10919         }
10920         if (flags & NDR_OUT) {
10921                 ndr_print_struct(ndr, "out", "netr_LogonControl2Ex");
10922                 ndr->depth++;
10923                 ndr_print_ptr(ndr, "query", r->out.query);
10924                 ndr->depth++;
10925                 ndr_print_set_switch_value(ndr, r->out.query, r->in.level);
10926                 ndr_print_netr_CONTROL_QUERY_INFORMATION(ndr, "query", r->out.query);
10927                 ndr->depth--;
10928                 ndr_print_WERROR(ndr, "result", r->out.result);
10929                 ndr->depth--;
10930         }
10931         ndr->depth--;
10932 }
10933
10934 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomains(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
10935 {
10936         if (flags & NDR_IN) {
10937                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
10938                 if (r->in.server_name) {
10939                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10940                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10941                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
10942                         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));
10943                 }
10944         }
10945         if (flags & NDR_OUT) {
10946                 if (r->out.trusted_domains_blob == NULL) {
10947                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
10948                 }
10949                 NDR_CHECK(ndr_push_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
10950                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
10951         }
10952         return NDR_ERR_SUCCESS;
10953 }
10954
10955 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomains(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomains *r)
10956 {
10957         uint32_t _ptr_server_name;
10958         TALLOC_CTX *_mem_save_server_name_0;
10959         TALLOC_CTX *_mem_save_trusted_domains_blob_0;
10960         if (flags & NDR_IN) {
10961                 ZERO_STRUCT(r->out);
10962
10963                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
10964                 if (_ptr_server_name) {
10965                         NDR_PULL_ALLOC(ndr, r->in.server_name);
10966                 } else {
10967                         r->in.server_name = NULL;
10968                 }
10969                 if (r->in.server_name) {
10970                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10971                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
10972                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
10973                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
10974                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
10975                                 return 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));
10976                         }
10977                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
10978                         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));
10979                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
10980                 }
10981                 NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
10982                 ZERO_STRUCTP(r->out.trusted_domains_blob);
10983         }
10984         if (flags & NDR_OUT) {
10985                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
10986                         NDR_PULL_ALLOC(ndr, r->out.trusted_domains_blob);
10987                 }
10988                 _mem_save_trusted_domains_blob_0 = NDR_PULL_GET_MEM_CTX(ndr);
10989                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusted_domains_blob, LIBNDR_FLAG_REF_ALLOC);
10990                 NDR_CHECK(ndr_pull_netr_Blob(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusted_domains_blob));
10991                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domains_blob_0, LIBNDR_FLAG_REF_ALLOC);
10992                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
10993         }
10994         return NDR_ERR_SUCCESS;
10995 }
10996
10997 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomains(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomains *r)
10998 {
10999         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomains");
11000         ndr->depth++;
11001         if (flags & NDR_SET_VALUES) {
11002                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11003         }
11004         if (flags & NDR_IN) {
11005                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomains");
11006                 ndr->depth++;
11007                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11008                 ndr->depth++;
11009                 if (r->in.server_name) {
11010                         ndr_print_string(ndr, "server_name", r->in.server_name);
11011                 }
11012                 ndr->depth--;
11013                 ndr->depth--;
11014         }
11015         if (flags & NDR_OUT) {
11016                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomains");
11017                 ndr->depth++;
11018                 ndr_print_ptr(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11019                 ndr->depth++;
11020                 ndr_print_netr_Blob(ndr, "trusted_domains_blob", r->out.trusted_domains_blob);
11021                 ndr->depth--;
11022                 ndr_print_WERROR(ndr, "result", r->out.result);
11023                 ndr->depth--;
11024         }
11025         ndr->depth--;
11026 }
11027
11028 static enum ndr_err_code ndr_push_netr_DsRGetDCName(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCName *r)
11029 {
11030         if (flags & NDR_IN) {
11031                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11032                 if (r->in.server_unc) {
11033                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11034                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11035                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11036                         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));
11037                 }
11038                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11039                 if (r->in.domain_name) {
11040                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11041                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11042                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11043                         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));
11044                 }
11045                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11046                 if (r->in.domain_guid) {
11047                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11048                 }
11049                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_guid));
11050                 if (r->in.site_guid) {
11051                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
11052                 }
11053                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11054         }
11055         if (flags & NDR_OUT) {
11056                 if (r->out.info == NULL) {
11057                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11058                 }
11059                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
11060                 if (*r->out.info) {
11061                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11062                 }
11063                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11064         }
11065         return NDR_ERR_SUCCESS;
11066 }
11067
11068 static enum ndr_err_code ndr_pull_netr_DsRGetDCName(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCName *r)
11069 {
11070         uint32_t _ptr_server_unc;
11071         uint32_t _ptr_domain_name;
11072         uint32_t _ptr_domain_guid;
11073         uint32_t _ptr_site_guid;
11074         uint32_t _ptr_info;
11075         TALLOC_CTX *_mem_save_server_unc_0;
11076         TALLOC_CTX *_mem_save_domain_name_0;
11077         TALLOC_CTX *_mem_save_domain_guid_0;
11078         TALLOC_CTX *_mem_save_site_guid_0;
11079         TALLOC_CTX *_mem_save_info_0;
11080         TALLOC_CTX *_mem_save_info_1;
11081         if (flags & NDR_IN) {
11082                 ZERO_STRUCT(r->out);
11083
11084                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11085                 if (_ptr_server_unc) {
11086                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
11087                 } else {
11088                         r->in.server_unc = NULL;
11089                 }
11090                 if (r->in.server_unc) {
11091                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11092                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11093                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11094                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11095                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11096                                 return 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));
11097                         }
11098                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11099                         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));
11100                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11101                 }
11102                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11103                 if (_ptr_domain_name) {
11104                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11105                 } else {
11106                         r->in.domain_name = NULL;
11107                 }
11108                 if (r->in.domain_name) {
11109                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11110                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11111                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11112                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11113                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11114                                 return 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));
11115                         }
11116                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11117                         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));
11118                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11119                 }
11120                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11121                 if (_ptr_domain_guid) {
11122                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11123                 } else {
11124                         r->in.domain_guid = NULL;
11125                 }
11126                 if (r->in.domain_guid) {
11127                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11128                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11129                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11130                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11131                 }
11132                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_guid));
11133                 if (_ptr_site_guid) {
11134                         NDR_PULL_ALLOC(ndr, r->in.site_guid);
11135                 } else {
11136                         r->in.site_guid = NULL;
11137                 }
11138                 if (r->in.site_guid) {
11139                         _mem_save_site_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11140                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_guid, 0);
11141                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.site_guid));
11142                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_guid_0, 0);
11143                 }
11144                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11145                 NDR_PULL_ALLOC(ndr, r->out.info);
11146                 ZERO_STRUCTP(r->out.info);
11147         }
11148         if (flags & NDR_OUT) {
11149                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11150                         NDR_PULL_ALLOC(ndr, r->out.info);
11151                 }
11152                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11153                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11154                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11155                 if (_ptr_info) {
11156                         NDR_PULL_ALLOC(ndr, *r->out.info);
11157                 } else {
11158                         *r->out.info = NULL;
11159                 }
11160                 if (*r->out.info) {
11161                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
11162                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
11163                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11164                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
11165                 }
11166                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11167                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11168         }
11169         return NDR_ERR_SUCCESS;
11170 }
11171
11172 _PUBLIC_ void ndr_print_netr_DsRGetDCName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCName *r)
11173 {
11174         ndr_print_struct(ndr, name, "netr_DsRGetDCName");
11175         ndr->depth++;
11176         if (flags & NDR_SET_VALUES) {
11177                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11178         }
11179         if (flags & NDR_IN) {
11180                 ndr_print_struct(ndr, "in", "netr_DsRGetDCName");
11181                 ndr->depth++;
11182                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11183                 ndr->depth++;
11184                 if (r->in.server_unc) {
11185                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11186                 }
11187                 ndr->depth--;
11188                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11189                 ndr->depth++;
11190                 if (r->in.domain_name) {
11191                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11192                 }
11193                 ndr->depth--;
11194                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11195                 ndr->depth++;
11196                 if (r->in.domain_guid) {
11197                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11198                 }
11199                 ndr->depth--;
11200                 ndr_print_ptr(ndr, "site_guid", r->in.site_guid);
11201                 ndr->depth++;
11202                 if (r->in.site_guid) {
11203                         ndr_print_GUID(ndr, "site_guid", r->in.site_guid);
11204                 }
11205                 ndr->depth--;
11206                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11207                 ndr->depth--;
11208         }
11209         if (flags & NDR_OUT) {
11210                 ndr_print_struct(ndr, "out", "netr_DsRGetDCName");
11211                 ndr->depth++;
11212                 ndr_print_ptr(ndr, "info", r->out.info);
11213                 ndr->depth++;
11214                 ndr_print_ptr(ndr, "info", *r->out.info);
11215                 ndr->depth++;
11216                 if (*r->out.info) {
11217                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
11218                 }
11219                 ndr->depth--;
11220                 ndr->depth--;
11221                 ndr_print_WERROR(ndr, "result", r->out.result);
11222                 ndr->depth--;
11223         }
11224         ndr->depth--;
11225 }
11226
11227 static enum ndr_err_code ndr_push_netr_NETRLOGONDUMMYROUTINE1(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11228 {
11229         if (flags & NDR_IN) {
11230         }
11231         if (flags & NDR_OUT) {
11232                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11233         }
11234         return NDR_ERR_SUCCESS;
11235 }
11236
11237 static enum ndr_err_code ndr_pull_netr_NETRLOGONDUMMYROUTINE1(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONDUMMYROUTINE1 *r)
11238 {
11239         if (flags & NDR_IN) {
11240         }
11241         if (flags & NDR_OUT) {
11242                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11243         }
11244         return NDR_ERR_SUCCESS;
11245 }
11246
11247 _PUBLIC_ void ndr_print_netr_NETRLOGONDUMMYROUTINE1(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONDUMMYROUTINE1 *r)
11248 {
11249         ndr_print_struct(ndr, name, "netr_NETRLOGONDUMMYROUTINE1");
11250         ndr->depth++;
11251         if (flags & NDR_SET_VALUES) {
11252                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11253         }
11254         if (flags & NDR_IN) {
11255                 ndr_print_struct(ndr, "in", "netr_NETRLOGONDUMMYROUTINE1");
11256                 ndr->depth++;
11257                 ndr->depth--;
11258         }
11259         if (flags & NDR_OUT) {
11260                 ndr_print_struct(ndr, "out", "netr_NETRLOGONDUMMYROUTINE1");
11261                 ndr->depth++;
11262                 ndr_print_WERROR(ndr, "result", r->out.result);
11263                 ndr->depth--;
11264         }
11265         ndr->depth--;
11266 }
11267
11268 static enum ndr_err_code ndr_push_netr_NETRLOGONSETSERVICEBITS(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11269 {
11270         if (flags & NDR_IN) {
11271         }
11272         if (flags & NDR_OUT) {
11273                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11274         }
11275         return NDR_ERR_SUCCESS;
11276 }
11277
11278 static enum ndr_err_code ndr_pull_netr_NETRLOGONSETSERVICEBITS(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSETSERVICEBITS *r)
11279 {
11280         if (flags & NDR_IN) {
11281         }
11282         if (flags & NDR_OUT) {
11283                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11284         }
11285         return NDR_ERR_SUCCESS;
11286 }
11287
11288 _PUBLIC_ void ndr_print_netr_NETRLOGONSETSERVICEBITS(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSETSERVICEBITS *r)
11289 {
11290         ndr_print_struct(ndr, name, "netr_NETRLOGONSETSERVICEBITS");
11291         ndr->depth++;
11292         if (flags & NDR_SET_VALUES) {
11293                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11294         }
11295         if (flags & NDR_IN) {
11296                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSETSERVICEBITS");
11297                 ndr->depth++;
11298                 ndr->depth--;
11299         }
11300         if (flags & NDR_OUT) {
11301                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSETSERVICEBITS");
11302                 ndr->depth++;
11303                 ndr_print_WERROR(ndr, "result", r->out.result);
11304                 ndr->depth--;
11305         }
11306         ndr->depth--;
11307 }
11308
11309 static enum ndr_err_code ndr_push_netr_LogonGetTrustRid(struct ndr_push *ndr, int flags, const struct netr_LogonGetTrustRid *r)
11310 {
11311         if (flags & NDR_IN) {
11312                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11313                 if (r->in.server_name) {
11314                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11315                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11316                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11317                         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));
11318                 }
11319                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11320                 if (r->in.domain_name) {
11321                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11322                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11323                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11324                         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));
11325                 }
11326         }
11327         if (flags & NDR_OUT) {
11328                 if (r->out.rid == NULL) {
11329                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11330                 }
11331                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11332                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11333         }
11334         return NDR_ERR_SUCCESS;
11335 }
11336
11337 static enum ndr_err_code ndr_pull_netr_LogonGetTrustRid(struct ndr_pull *ndr, int flags, struct netr_LogonGetTrustRid *r)
11338 {
11339         uint32_t _ptr_server_name;
11340         uint32_t _ptr_domain_name;
11341         TALLOC_CTX *_mem_save_server_name_0;
11342         TALLOC_CTX *_mem_save_domain_name_0;
11343         TALLOC_CTX *_mem_save_rid_0;
11344         if (flags & NDR_IN) {
11345                 ZERO_STRUCT(r->out);
11346
11347                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11348                 if (_ptr_server_name) {
11349                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11350                 } else {
11351                         r->in.server_name = NULL;
11352                 }
11353                 if (r->in.server_name) {
11354                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11355                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11356                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11357                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11358                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11359                                 return 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));
11360                         }
11361                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11362                         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));
11363                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11364                 }
11365                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11366                 if (_ptr_domain_name) {
11367                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11368                 } else {
11369                         r->in.domain_name = NULL;
11370                 }
11371                 if (r->in.domain_name) {
11372                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11373                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11374                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11375                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11376                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11377                                 return 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));
11378                         }
11379                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11380                         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));
11381                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11382                 }
11383                 NDR_PULL_ALLOC(ndr, r->out.rid);
11384                 ZERO_STRUCTP(r->out.rid);
11385         }
11386         if (flags & NDR_OUT) {
11387                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11388                         NDR_PULL_ALLOC(ndr, r->out.rid);
11389                 }
11390                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11391                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11392                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11393                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11394                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11395         }
11396         return NDR_ERR_SUCCESS;
11397 }
11398
11399 _PUBLIC_ void ndr_print_netr_LogonGetTrustRid(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetTrustRid *r)
11400 {
11401         ndr_print_struct(ndr, name, "netr_LogonGetTrustRid");
11402         ndr->depth++;
11403         if (flags & NDR_SET_VALUES) {
11404                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11405         }
11406         if (flags & NDR_IN) {
11407                 ndr_print_struct(ndr, "in", "netr_LogonGetTrustRid");
11408                 ndr->depth++;
11409                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11410                 ndr->depth++;
11411                 if (r->in.server_name) {
11412                         ndr_print_string(ndr, "server_name", r->in.server_name);
11413                 }
11414                 ndr->depth--;
11415                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11416                 ndr->depth++;
11417                 if (r->in.domain_name) {
11418                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11419                 }
11420                 ndr->depth--;
11421                 ndr->depth--;
11422         }
11423         if (flags & NDR_OUT) {
11424                 ndr_print_struct(ndr, "out", "netr_LogonGetTrustRid");
11425                 ndr->depth++;
11426                 ndr_print_ptr(ndr, "rid", r->out.rid);
11427                 ndr->depth++;
11428                 ndr_print_uint32(ndr, "rid", *r->out.rid);
11429                 ndr->depth--;
11430                 ndr_print_WERROR(ndr, "result", r->out.result);
11431                 ndr->depth--;
11432         }
11433         ndr->depth--;
11434 }
11435
11436 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11437 {
11438         if (flags & NDR_IN) {
11439         }
11440         if (flags & NDR_OUT) {
11441                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11442         }
11443         return NDR_ERR_SUCCESS;
11444 }
11445
11446 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11447 {
11448         if (flags & NDR_IN) {
11449         }
11450         if (flags & NDR_OUT) {
11451                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11452         }
11453         return NDR_ERR_SUCCESS;
11454 }
11455
11456 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTESERVERDIGEST *r)
11457 {
11458         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTESERVERDIGEST");
11459         ndr->depth++;
11460         if (flags & NDR_SET_VALUES) {
11461                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11462         }
11463         if (flags & NDR_IN) {
11464                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11465                 ndr->depth++;
11466                 ndr->depth--;
11467         }
11468         if (flags & NDR_OUT) {
11469                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTESERVERDIGEST");
11470                 ndr->depth++;
11471                 ndr_print_WERROR(ndr, "result", r->out.result);
11472                 ndr->depth--;
11473         }
11474         ndr->depth--;
11475 }
11476
11477 static enum ndr_err_code ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11478 {
11479         if (flags & NDR_IN) {
11480         }
11481         if (flags & NDR_OUT) {
11482                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11483         }
11484         return NDR_ERR_SUCCESS;
11485 }
11486
11487 static enum ndr_err_code ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11488 {
11489         if (flags & NDR_IN) {
11490         }
11491         if (flags & NDR_OUT) {
11492                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11493         }
11494         return NDR_ERR_SUCCESS;
11495 }
11496
11497 _PUBLIC_ void ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONCOMPUTECLIENTDIGEST *r)
11498 {
11499         ndr_print_struct(ndr, name, "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11500         ndr->depth++;
11501         if (flags & NDR_SET_VALUES) {
11502                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11503         }
11504         if (flags & NDR_IN) {
11505                 ndr_print_struct(ndr, "in", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11506                 ndr->depth++;
11507                 ndr->depth--;
11508         }
11509         if (flags & NDR_OUT) {
11510                 ndr_print_struct(ndr, "out", "netr_NETRLOGONCOMPUTECLIENTDIGEST");
11511                 ndr->depth++;
11512                 ndr_print_WERROR(ndr, "result", r->out.result);
11513                 ndr->depth--;
11514         }
11515         ndr->depth--;
11516 }
11517
11518 static enum ndr_err_code ndr_push_netr_ServerAuthenticate3(struct ndr_push *ndr, int flags, const struct netr_ServerAuthenticate3 *r)
11519 {
11520         if (flags & NDR_IN) {
11521                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
11522                 if (r->in.server_name) {
11523                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11524                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11525                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
11526                         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));
11527                 }
11528                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11529                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11530                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
11531                 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));
11532                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
11533                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11534                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11535                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11536                 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));
11537                 if (r->in.credentials == NULL) {
11538                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11539                 }
11540                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11541                 if (r->in.negotiate_flags == NULL) {
11542                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11543                 }
11544                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.negotiate_flags));
11545         }
11546         if (flags & NDR_OUT) {
11547                 if (r->out.credentials == NULL) {
11548                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11549                 }
11550                 NDR_CHECK(ndr_push_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11551                 if (r->out.negotiate_flags == NULL) {
11552                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11553                 }
11554                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.negotiate_flags));
11555                 if (r->out.rid == NULL) {
11556                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11557                 }
11558                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.rid));
11559                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
11560         }
11561         return NDR_ERR_SUCCESS;
11562 }
11563
11564 static enum ndr_err_code ndr_pull_netr_ServerAuthenticate3(struct ndr_pull *ndr, int flags, struct netr_ServerAuthenticate3 *r)
11565 {
11566         uint32_t _ptr_server_name;
11567         TALLOC_CTX *_mem_save_server_name_0;
11568         TALLOC_CTX *_mem_save_credentials_0;
11569         TALLOC_CTX *_mem_save_negotiate_flags_0;
11570         TALLOC_CTX *_mem_save_rid_0;
11571         if (flags & NDR_IN) {
11572                 ZERO_STRUCT(r->out);
11573
11574                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
11575                 if (_ptr_server_name) {
11576                         NDR_PULL_ALLOC(ndr, r->in.server_name);
11577                 } else {
11578                         r->in.server_name = NULL;
11579                 }
11580                 if (r->in.server_name) {
11581                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11582                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
11583                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
11584                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
11585                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
11586                                 return 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));
11587                         }
11588                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
11589                         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));
11590                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
11591                 }
11592                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
11593                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
11594                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
11595                         return 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));
11596                 }
11597                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
11598                 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));
11599                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
11600                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11601                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11602                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11603                         return 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));
11604                 }
11605                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11606                 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));
11607                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11608                         NDR_PULL_ALLOC(ndr, r->in.credentials);
11609                 }
11610                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11611                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credentials, LIBNDR_FLAG_REF_ALLOC);
11612                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->in.credentials));
11613                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11614                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11615                         NDR_PULL_ALLOC(ndr, r->in.negotiate_flags);
11616                 }
11617                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11618                 NDR_PULL_SET_MEM_CTX(ndr, r->in.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11619                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.negotiate_flags));
11620                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11621                 NDR_PULL_ALLOC(ndr, r->out.credentials);
11622                 *r->out.credentials = *r->in.credentials;
11623                 NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11624                 *r->out.negotiate_flags = *r->in.negotiate_flags;
11625                 NDR_PULL_ALLOC(ndr, r->out.rid);
11626                 ZERO_STRUCTP(r->out.rid);
11627         }
11628         if (flags & NDR_OUT) {
11629                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11630                         NDR_PULL_ALLOC(ndr, r->out.credentials);
11631                 }
11632                 _mem_save_credentials_0 = NDR_PULL_GET_MEM_CTX(ndr);
11633                 NDR_PULL_SET_MEM_CTX(ndr, r->out.credentials, LIBNDR_FLAG_REF_ALLOC);
11634                 NDR_CHECK(ndr_pull_netr_Credential(ndr, NDR_SCALARS, r->out.credentials));
11635                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credentials_0, LIBNDR_FLAG_REF_ALLOC);
11636                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11637                         NDR_PULL_ALLOC(ndr, r->out.negotiate_flags);
11638                 }
11639                 _mem_save_negotiate_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
11640                 NDR_PULL_SET_MEM_CTX(ndr, r->out.negotiate_flags, LIBNDR_FLAG_REF_ALLOC);
11641                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.negotiate_flags));
11642                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_negotiate_flags_0, LIBNDR_FLAG_REF_ALLOC);
11643                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11644                         NDR_PULL_ALLOC(ndr, r->out.rid);
11645                 }
11646                 _mem_save_rid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11647                 NDR_PULL_SET_MEM_CTX(ndr, r->out.rid, LIBNDR_FLAG_REF_ALLOC);
11648                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.rid));
11649                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rid_0, LIBNDR_FLAG_REF_ALLOC);
11650                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
11651         }
11652         return NDR_ERR_SUCCESS;
11653 }
11654
11655 _PUBLIC_ void ndr_print_netr_ServerAuthenticate3(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerAuthenticate3 *r)
11656 {
11657         ndr_print_struct(ndr, name, "netr_ServerAuthenticate3");
11658         ndr->depth++;
11659         if (flags & NDR_SET_VALUES) {
11660                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11661         }
11662         if (flags & NDR_IN) {
11663                 ndr_print_struct(ndr, "in", "netr_ServerAuthenticate3");
11664                 ndr->depth++;
11665                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
11666                 ndr->depth++;
11667                 if (r->in.server_name) {
11668                         ndr_print_string(ndr, "server_name", r->in.server_name);
11669                 }
11670                 ndr->depth--;
11671                 ndr_print_string(ndr, "account_name", r->in.account_name);
11672                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
11673                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
11674                 ndr_print_ptr(ndr, "credentials", r->in.credentials);
11675                 ndr->depth++;
11676                 ndr_print_netr_Credential(ndr, "credentials", r->in.credentials);
11677                 ndr->depth--;
11678                 ndr_print_ptr(ndr, "negotiate_flags", r->in.negotiate_flags);
11679                 ndr->depth++;
11680                 ndr_print_uint32(ndr, "negotiate_flags", *r->in.negotiate_flags);
11681                 ndr->depth--;
11682                 ndr->depth--;
11683         }
11684         if (flags & NDR_OUT) {
11685                 ndr_print_struct(ndr, "out", "netr_ServerAuthenticate3");
11686                 ndr->depth++;
11687                 ndr_print_ptr(ndr, "credentials", r->out.credentials);
11688                 ndr->depth++;
11689                 ndr_print_netr_Credential(ndr, "credentials", r->out.credentials);
11690                 ndr->depth--;
11691                 ndr_print_ptr(ndr, "negotiate_flags", r->out.negotiate_flags);
11692                 ndr->depth++;
11693                 ndr_print_uint32(ndr, "negotiate_flags", *r->out.negotiate_flags);
11694                 ndr->depth--;
11695                 ndr_print_ptr(ndr, "rid", r->out.rid);
11696                 ndr->depth++;
11697                 ndr_print_uint32(ndr, "rid", *r->out.rid);
11698                 ndr->depth--;
11699                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
11700                 ndr->depth--;
11701         }
11702         ndr->depth--;
11703 }
11704
11705 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx *r)
11706 {
11707         if (flags & NDR_IN) {
11708                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
11709                 if (r->in.server_unc) {
11710                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11711                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11712                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
11713                         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));
11714                 }
11715                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
11716                 if (r->in.domain_name) {
11717                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11718                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11719                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
11720                         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));
11721                 }
11722                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
11723                 if (r->in.domain_guid) {
11724                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11725                 }
11726                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
11727                 if (r->in.site_name) {
11728                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11729                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11730                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
11731                         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));
11732                 }
11733                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
11734         }
11735         if (flags & NDR_OUT) {
11736                 if (r->out.info == NULL) {
11737                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11738                 }
11739                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
11740                 if (*r->out.info) {
11741                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11742                 }
11743                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11744         }
11745         return NDR_ERR_SUCCESS;
11746 }
11747
11748 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx *r)
11749 {
11750         uint32_t _ptr_server_unc;
11751         uint32_t _ptr_domain_name;
11752         uint32_t _ptr_domain_guid;
11753         uint32_t _ptr_site_name;
11754         uint32_t _ptr_info;
11755         TALLOC_CTX *_mem_save_server_unc_0;
11756         TALLOC_CTX *_mem_save_domain_name_0;
11757         TALLOC_CTX *_mem_save_domain_guid_0;
11758         TALLOC_CTX *_mem_save_site_name_0;
11759         TALLOC_CTX *_mem_save_info_0;
11760         TALLOC_CTX *_mem_save_info_1;
11761         if (flags & NDR_IN) {
11762                 ZERO_STRUCT(r->out);
11763
11764                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
11765                 if (_ptr_server_unc) {
11766                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
11767                 } else {
11768                         r->in.server_unc = NULL;
11769                 }
11770                 if (r->in.server_unc) {
11771                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
11772                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
11773                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
11774                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
11775                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
11776                                 return 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));
11777                         }
11778                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
11779                         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));
11780                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
11781                 }
11782                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
11783                 if (_ptr_domain_name) {
11784                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
11785                 } else {
11786                         r->in.domain_name = NULL;
11787                 }
11788                 if (r->in.domain_name) {
11789                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11790                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
11791                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
11792                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
11793                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
11794                                 return 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));
11795                         }
11796                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
11797                         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));
11798                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
11799                 }
11800                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
11801                 if (_ptr_domain_guid) {
11802                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
11803                 } else {
11804                         r->in.domain_guid = NULL;
11805                 }
11806                 if (r->in.domain_guid) {
11807                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
11808                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
11809                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
11810                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
11811                 }
11812                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
11813                 if (_ptr_site_name) {
11814                         NDR_PULL_ALLOC(ndr, r->in.site_name);
11815                 } else {
11816                         r->in.site_name = NULL;
11817                 }
11818                 if (r->in.site_name) {
11819                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11820                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
11821                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
11822                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
11823                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
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.site_name), ndr_get_array_length(ndr, &r->in.site_name));
11825                         }
11826                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
11827                         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));
11828                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
11829                 }
11830                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
11831                 NDR_PULL_ALLOC(ndr, r->out.info);
11832                 ZERO_STRUCTP(r->out.info);
11833         }
11834         if (flags & NDR_OUT) {
11835                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11836                         NDR_PULL_ALLOC(ndr, r->out.info);
11837                 }
11838                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
11839                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
11840                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
11841                 if (_ptr_info) {
11842                         NDR_PULL_ALLOC(ndr, *r->out.info);
11843                 } else {
11844                         *r->out.info = NULL;
11845                 }
11846                 if (*r->out.info) {
11847                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
11848                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
11849                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
11850                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
11851                 }
11852                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
11853                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11854         }
11855         return NDR_ERR_SUCCESS;
11856 }
11857
11858 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx *r)
11859 {
11860         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx");
11861         ndr->depth++;
11862         if (flags & NDR_SET_VALUES) {
11863                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
11864         }
11865         if (flags & NDR_IN) {
11866                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx");
11867                 ndr->depth++;
11868                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
11869                 ndr->depth++;
11870                 if (r->in.server_unc) {
11871                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
11872                 }
11873                 ndr->depth--;
11874                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
11875                 ndr->depth++;
11876                 if (r->in.domain_name) {
11877                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
11878                 }
11879                 ndr->depth--;
11880                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
11881                 ndr->depth++;
11882                 if (r->in.domain_guid) {
11883                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
11884                 }
11885                 ndr->depth--;
11886                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
11887                 ndr->depth++;
11888                 if (r->in.site_name) {
11889                         ndr_print_string(ndr, "site_name", r->in.site_name);
11890                 }
11891                 ndr->depth--;
11892                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
11893                 ndr->depth--;
11894         }
11895         if (flags & NDR_OUT) {
11896                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx");
11897                 ndr->depth++;
11898                 ndr_print_ptr(ndr, "info", r->out.info);
11899                 ndr->depth++;
11900                 ndr_print_ptr(ndr, "info", *r->out.info);
11901                 ndr->depth++;
11902                 if (*r->out.info) {
11903                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
11904                 }
11905                 ndr->depth--;
11906                 ndr->depth--;
11907                 ndr_print_WERROR(ndr, "result", r->out.result);
11908                 ndr->depth--;
11909         }
11910         ndr->depth--;
11911 }
11912
11913 static enum ndr_err_code ndr_push_netr_DsRGetSiteName(struct ndr_push *ndr, int flags, const struct netr_DsRGetSiteName *r)
11914 {
11915         if (flags & NDR_IN) {
11916                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
11917                 if (r->in.computer_name) {
11918                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11919                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11920                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
11921                         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));
11922                 }
11923         }
11924         if (flags & NDR_OUT) {
11925                 if (r->out.site == NULL) {
11926                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
11927                 }
11928                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.site));
11929                 if (*r->out.site) {
11930                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
11931                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11932                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.site, CH_UTF16)));
11933                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.site, ndr_charset_length(*r->out.site, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11934                 }
11935                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
11936         }
11937         return NDR_ERR_SUCCESS;
11938 }
11939
11940 static enum ndr_err_code ndr_pull_netr_DsRGetSiteName(struct ndr_pull *ndr, int flags, struct netr_DsRGetSiteName *r)
11941 {
11942         uint32_t _ptr_computer_name;
11943         uint32_t _ptr_site;
11944         TALLOC_CTX *_mem_save_computer_name_0;
11945         TALLOC_CTX *_mem_save_site_0;
11946         TALLOC_CTX *_mem_save_site_1;
11947         if (flags & NDR_IN) {
11948                 ZERO_STRUCT(r->out);
11949
11950                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
11951                 if (_ptr_computer_name) {
11952                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
11953                 } else {
11954                         r->in.computer_name = NULL;
11955                 }
11956                 if (r->in.computer_name) {
11957                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11958                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
11959                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
11960                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
11961                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
11962                                 return 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));
11963                         }
11964                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
11965                         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));
11966                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
11967                 }
11968                 NDR_PULL_ALLOC(ndr, r->out.site);
11969                 ZERO_STRUCTP(r->out.site);
11970         }
11971         if (flags & NDR_OUT) {
11972                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
11973                         NDR_PULL_ALLOC(ndr, r->out.site);
11974                 }
11975                 _mem_save_site_0 = NDR_PULL_GET_MEM_CTX(ndr);
11976                 NDR_PULL_SET_MEM_CTX(ndr, r->out.site, LIBNDR_FLAG_REF_ALLOC);
11977                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site));
11978                 if (_ptr_site) {
11979                         NDR_PULL_ALLOC(ndr, *r->out.site);
11980                 } else {
11981                         *r->out.site = NULL;
11982                 }
11983                 if (*r->out.site) {
11984                         _mem_save_site_1 = NDR_PULL_GET_MEM_CTX(ndr);
11985                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.site, 0);
11986                         NDR_CHECK(ndr_pull_array_size(ndr, r->out.site));
11987                         NDR_CHECK(ndr_pull_array_length(ndr, r->out.site));
11988                         if (ndr_get_array_length(ndr, r->out.site) > ndr_get_array_size(ndr, r->out.site)) {
11989                                 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));
11990                         }
11991                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t)));
11992                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.site, ndr_get_array_length(ndr, r->out.site), sizeof(uint16_t), CH_UTF16));
11993                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_1, 0);
11994                 }
11995                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_0, LIBNDR_FLAG_REF_ALLOC);
11996                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
11997         }
11998         return NDR_ERR_SUCCESS;
11999 }
12000
12001 _PUBLIC_ void ndr_print_netr_DsRGetSiteName(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetSiteName *r)
12002 {
12003         ndr_print_struct(ndr, name, "netr_DsRGetSiteName");
12004         ndr->depth++;
12005         if (flags & NDR_SET_VALUES) {
12006                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12007         }
12008         if (flags & NDR_IN) {
12009                 ndr_print_struct(ndr, "in", "netr_DsRGetSiteName");
12010                 ndr->depth++;
12011                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12012                 ndr->depth++;
12013                 if (r->in.computer_name) {
12014                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12015                 }
12016                 ndr->depth--;
12017                 ndr->depth--;
12018         }
12019         if (flags & NDR_OUT) {
12020                 ndr_print_struct(ndr, "out", "netr_DsRGetSiteName");
12021                 ndr->depth++;
12022                 ndr_print_ptr(ndr, "site", r->out.site);
12023                 ndr->depth++;
12024                 ndr_print_ptr(ndr, "site", *r->out.site);
12025                 ndr->depth++;
12026                 if (*r->out.site) {
12027                         ndr_print_string(ndr, "site", *r->out.site);
12028                 }
12029                 ndr->depth--;
12030                 ndr->depth--;
12031                 ndr_print_WERROR(ndr, "result", r->out.result);
12032                 ndr->depth--;
12033         }
12034         ndr->depth--;
12035 }
12036
12037 static enum ndr_err_code ndr_push_netr_LogonGetDomainInfo(struct ndr_push *ndr, int flags, const struct netr_LogonGetDomainInfo *r)
12038 {
12039         if (flags & NDR_IN) {
12040                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12041                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12042                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12043                 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));
12044                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
12045                 if (r->in.computer_name) {
12046                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12047                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12048                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12049                         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));
12050                 }
12051                 if (r->in.credential == NULL) {
12052                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12053                 }
12054                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12055                 if (r->in.return_authenticator == NULL) {
12056                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12057                 }
12058                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12059                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12060                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.query, r->in.level));
12061                 NDR_CHECK(ndr_push_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
12062         }
12063         if (flags & NDR_OUT) {
12064                 if (r->out.return_authenticator == NULL) {
12065                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12066                 }
12067                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12068                 if (r->out.info == NULL) {
12069                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12070                 }
12071                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.info, r->in.level));
12072                 NDR_CHECK(ndr_push_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12073                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12074         }
12075         return NDR_ERR_SUCCESS;
12076 }
12077
12078 static enum ndr_err_code ndr_pull_netr_LogonGetDomainInfo(struct ndr_pull *ndr, int flags, struct netr_LogonGetDomainInfo *r)
12079 {
12080         uint32_t _ptr_computer_name;
12081         TALLOC_CTX *_mem_save_computer_name_0;
12082         TALLOC_CTX *_mem_save_credential_0;
12083         TALLOC_CTX *_mem_save_return_authenticator_0;
12084         TALLOC_CTX *_mem_save_info_0;
12085         if (flags & NDR_IN) {
12086                 ZERO_STRUCT(r->out);
12087
12088                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12089                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12090                 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12091                         return 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));
12092                 }
12093                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12094                 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));
12095                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
12096                 if (_ptr_computer_name) {
12097                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
12098                 } else {
12099                         r->in.computer_name = NULL;
12100                 }
12101                 if (r->in.computer_name) {
12102                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12103                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
12104                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12105                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12106                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12107                                 return 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));
12108                         }
12109                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12110                         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));
12111                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
12112                 }
12113                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12114                         NDR_PULL_ALLOC(ndr, r->in.credential);
12115                 }
12116                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12117                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12118                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12119                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12120                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12121                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
12122                 }
12123                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12124                 NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12125                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
12126                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12127                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12128                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.query, r->in.level));
12129                 NDR_CHECK(ndr_pull_netr_DomainQuery(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.query));
12130                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12131                 *r->out.return_authenticator = *r->in.return_authenticator;
12132                 NDR_PULL_ALLOC(ndr, r->out.info);
12133                 ZERO_STRUCTP(r->out.info);
12134         }
12135         if (flags & NDR_OUT) {
12136                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12137                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12138                 }
12139                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12140                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12141                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12142                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12143                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12144                         NDR_PULL_ALLOC(ndr, r->out.info);
12145                 }
12146                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12147                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12148                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.info, r->in.level));
12149                 NDR_CHECK(ndr_pull_netr_DomainInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12150                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12151                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12152         }
12153         return NDR_ERR_SUCCESS;
12154 }
12155
12156 _PUBLIC_ void ndr_print_netr_LogonGetDomainInfo(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonGetDomainInfo *r)
12157 {
12158         ndr_print_struct(ndr, name, "netr_LogonGetDomainInfo");
12159         ndr->depth++;
12160         if (flags & NDR_SET_VALUES) {
12161                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12162         }
12163         if (flags & NDR_IN) {
12164                 ndr_print_struct(ndr, "in", "netr_LogonGetDomainInfo");
12165                 ndr->depth++;
12166                 ndr_print_string(ndr, "server_name", r->in.server_name);
12167                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
12168                 ndr->depth++;
12169                 if (r->in.computer_name) {
12170                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
12171                 }
12172                 ndr->depth--;
12173                 ndr_print_ptr(ndr, "credential", r->in.credential);
12174                 ndr->depth++;
12175                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12176                 ndr->depth--;
12177                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
12178                 ndr->depth++;
12179                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
12180                 ndr->depth--;
12181                 ndr_print_uint32(ndr, "level", r->in.level);
12182                 ndr_print_set_switch_value(ndr, &r->in.query, r->in.level);
12183                 ndr_print_netr_DomainQuery(ndr, "query", &r->in.query);
12184                 ndr->depth--;
12185         }
12186         if (flags & NDR_OUT) {
12187                 ndr_print_struct(ndr, "out", "netr_LogonGetDomainInfo");
12188                 ndr->depth++;
12189                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12190                 ndr->depth++;
12191                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12192                 ndr->depth--;
12193                 ndr_print_ptr(ndr, "info", r->out.info);
12194                 ndr->depth++;
12195                 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
12196                 ndr_print_netr_DomainInfo(ndr, "info", r->out.info);
12197                 ndr->depth--;
12198                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12199                 ndr->depth--;
12200         }
12201         ndr->depth--;
12202 }
12203
12204 static enum ndr_err_code ndr_push_netr_ServerPasswordSet2(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordSet2 *r)
12205 {
12206         if (flags & NDR_IN) {
12207                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12208                 if (r->in.server_name) {
12209                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12210                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12211                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12212                         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));
12213                 }
12214                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12215                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12216                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12217                 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));
12218                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12219                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12220                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12221                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12222                 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));
12223                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
12224                 NDR_CHECK(ndr_push_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password));
12225         }
12226         if (flags & NDR_OUT) {
12227                 if (r->out.return_authenticator == NULL) {
12228                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12229                 }
12230                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12231                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
12232         }
12233         return NDR_ERR_SUCCESS;
12234 }
12235
12236 static enum ndr_err_code ndr_pull_netr_ServerPasswordSet2(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordSet2 *r)
12237 {
12238         uint32_t _ptr_server_name;
12239         TALLOC_CTX *_mem_save_server_name_0;
12240         TALLOC_CTX *_mem_save_return_authenticator_0;
12241         if (flags & NDR_IN) {
12242                 ZERO_STRUCT(r->out);
12243
12244                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12245                 if (_ptr_server_name) {
12246                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12247                 } else {
12248                         r->in.server_name = NULL;
12249                 }
12250                 if (r->in.server_name) {
12251                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12252                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12253                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12254                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12255                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12256                                 return 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));
12257                         }
12258                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12259                         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));
12260                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12261                 }
12262                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12263                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12264                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12265                         return 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));
12266                 }
12267                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12268                 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));
12269                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12270                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12271                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12272                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12273                         return 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));
12274                 }
12275                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12276                 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));
12277                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, &r->in.credential));
12278                 NDR_CHECK(ndr_pull_netr_CryptPassword(ndr, NDR_SCALARS, &r->in.new_password));
12279                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12280                 ZERO_STRUCTP(r->out.return_authenticator);
12281         }
12282         if (flags & NDR_OUT) {
12283                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12284                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12285                 }
12286                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12287                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12288                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12289                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12290                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
12291         }
12292         return NDR_ERR_SUCCESS;
12293 }
12294
12295 _PUBLIC_ void ndr_print_netr_ServerPasswordSet2(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordSet2 *r)
12296 {
12297         ndr_print_struct(ndr, name, "netr_ServerPasswordSet2");
12298         ndr->depth++;
12299         if (flags & NDR_SET_VALUES) {
12300                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12301         }
12302         if (flags & NDR_IN) {
12303                 ndr_print_struct(ndr, "in", "netr_ServerPasswordSet2");
12304                 ndr->depth++;
12305                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12306                 ndr->depth++;
12307                 if (r->in.server_name) {
12308                         ndr_print_string(ndr, "server_name", r->in.server_name);
12309                 }
12310                 ndr->depth--;
12311                 ndr_print_string(ndr, "account_name", r->in.account_name);
12312                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12313                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12314                 ndr_print_netr_Authenticator(ndr, "credential", &r->in.credential);
12315                 ndr_print_netr_CryptPassword(ndr, "new_password", &r->in.new_password);
12316                 ndr->depth--;
12317         }
12318         if (flags & NDR_OUT) {
12319                 ndr_print_struct(ndr, "out", "netr_ServerPasswordSet2");
12320                 ndr->depth++;
12321                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12322                 ndr->depth++;
12323                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12324                 ndr->depth--;
12325                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
12326                 ndr->depth--;
12327         }
12328         ndr->depth--;
12329 }
12330
12331 static enum ndr_err_code ndr_push_netr_ServerPasswordGet(struct ndr_push *ndr, int flags, const struct netr_ServerPasswordGet *r)
12332 {
12333         if (flags & NDR_IN) {
12334                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12335                 if (r->in.server_name) {
12336                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12337                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12338                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12339                         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));
12340                 }
12341                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12342                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12343                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
12344                 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));
12345                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
12346                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12347                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12348                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
12349                 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));
12350                 if (r->in.credential == NULL) {
12351                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12352                 }
12353                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12354         }
12355         if (flags & NDR_OUT) {
12356                 if (r->out.return_authenticator == NULL) {
12357                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12358                 }
12359                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12360                 if (r->out.password == NULL) {
12361                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12362                 }
12363                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
12364                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12365         }
12366         return NDR_ERR_SUCCESS;
12367 }
12368
12369 static enum ndr_err_code ndr_pull_netr_ServerPasswordGet(struct ndr_pull *ndr, int flags, struct netr_ServerPasswordGet *r)
12370 {
12371         uint32_t _ptr_server_name;
12372         TALLOC_CTX *_mem_save_server_name_0;
12373         TALLOC_CTX *_mem_save_credential_0;
12374         TALLOC_CTX *_mem_save_return_authenticator_0;
12375         TALLOC_CTX *_mem_save_password_0;
12376         if (flags & NDR_IN) {
12377                 ZERO_STRUCT(r->out);
12378
12379                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12380                 if (_ptr_server_name) {
12381                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12382                 } else {
12383                         r->in.server_name = NULL;
12384                 }
12385                 if (r->in.server_name) {
12386                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12387                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12388                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12389                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12390                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12391                                 return 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));
12392                         }
12393                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12394                         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));
12395                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12396                 }
12397                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
12398                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
12399                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
12400                         return 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));
12401                 }
12402                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
12403                 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));
12404                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
12405                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
12406                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
12407                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
12408                         return 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));
12409                 }
12410                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
12411                 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));
12412                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12413                         NDR_PULL_ALLOC(ndr, r->in.credential);
12414                 }
12415                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
12416                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
12417                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
12418                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
12419                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12420                 ZERO_STRUCTP(r->out.return_authenticator);
12421                 NDR_PULL_ALLOC(ndr, r->out.password);
12422                 ZERO_STRUCTP(r->out.password);
12423         }
12424         if (flags & NDR_OUT) {
12425                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12426                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
12427                 }
12428                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
12429                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
12430                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
12431                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
12432                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12433                         NDR_PULL_ALLOC(ndr, r->out.password);
12434                 }
12435                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
12436                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
12437                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
12438                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
12439                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12440         }
12441         return NDR_ERR_SUCCESS;
12442 }
12443
12444 _PUBLIC_ void ndr_print_netr_ServerPasswordGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerPasswordGet *r)
12445 {
12446         ndr_print_struct(ndr, name, "netr_ServerPasswordGet");
12447         ndr->depth++;
12448         if (flags & NDR_SET_VALUES) {
12449                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12450         }
12451         if (flags & NDR_IN) {
12452                 ndr_print_struct(ndr, "in", "netr_ServerPasswordGet");
12453                 ndr->depth++;
12454                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12455                 ndr->depth++;
12456                 if (r->in.server_name) {
12457                         ndr_print_string(ndr, "server_name", r->in.server_name);
12458                 }
12459                 ndr->depth--;
12460                 ndr_print_string(ndr, "account_name", r->in.account_name);
12461                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
12462                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
12463                 ndr_print_ptr(ndr, "credential", r->in.credential);
12464                 ndr->depth++;
12465                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
12466                 ndr->depth--;
12467                 ndr->depth--;
12468         }
12469         if (flags & NDR_OUT) {
12470                 ndr_print_struct(ndr, "out", "netr_ServerPasswordGet");
12471                 ndr->depth++;
12472                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
12473                 ndr->depth++;
12474                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
12475                 ndr->depth--;
12476                 ndr_print_ptr(ndr, "password", r->out.password);
12477                 ndr->depth++;
12478                 ndr_print_samr_Password(ndr, "password", r->out.password);
12479                 ndr->depth--;
12480                 ndr_print_WERROR(ndr, "result", r->out.result);
12481                 ndr->depth--;
12482         }
12483         ndr->depth--;
12484 }
12485
12486 static enum ndr_err_code ndr_push_netr_NETRLOGONSENDTOSAM(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12487 {
12488         if (flags & NDR_IN) {
12489         }
12490         if (flags & NDR_OUT) {
12491                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12492         }
12493         return NDR_ERR_SUCCESS;
12494 }
12495
12496 static enum ndr_err_code ndr_pull_netr_NETRLOGONSENDTOSAM(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONSENDTOSAM *r)
12497 {
12498         if (flags & NDR_IN) {
12499         }
12500         if (flags & NDR_OUT) {
12501                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12502         }
12503         return NDR_ERR_SUCCESS;
12504 }
12505
12506 _PUBLIC_ void ndr_print_netr_NETRLOGONSENDTOSAM(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONSENDTOSAM *r)
12507 {
12508         ndr_print_struct(ndr, name, "netr_NETRLOGONSENDTOSAM");
12509         ndr->depth++;
12510         if (flags & NDR_SET_VALUES) {
12511                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12512         }
12513         if (flags & NDR_IN) {
12514                 ndr_print_struct(ndr, "in", "netr_NETRLOGONSENDTOSAM");
12515                 ndr->depth++;
12516                 ndr->depth--;
12517         }
12518         if (flags & NDR_OUT) {
12519                 ndr_print_struct(ndr, "out", "netr_NETRLOGONSENDTOSAM");
12520                 ndr->depth++;
12521                 ndr_print_WERROR(ndr, "result", r->out.result);
12522                 ndr->depth--;
12523         }
12524         ndr->depth--;
12525 }
12526
12527 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesW *r)
12528 {
12529         uint32_t cntr_addresses_1;
12530         if (flags & NDR_IN) {
12531                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12532                 if (r->in.server_name) {
12533                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12534                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12535                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12536                         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));
12537                 }
12538                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12539                 if (r->in.addresses == NULL) {
12540                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12541                 }
12542                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12543                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12544                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12545                 }
12546                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12547                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12548                 }
12549         }
12550         if (flags & NDR_OUT) {
12551                 if (r->out.ctr == NULL) {
12552                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12553                 }
12554                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
12555                 if (*r->out.ctr) {
12556                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12557                 }
12558                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12559         }
12560         return NDR_ERR_SUCCESS;
12561 }
12562
12563 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesW *r)
12564 {
12565         uint32_t _ptr_server_name;
12566         uint32_t cntr_addresses_1;
12567         uint32_t _ptr_ctr;
12568         TALLOC_CTX *_mem_save_server_name_0;
12569         TALLOC_CTX *_mem_save_addresses_1;
12570         TALLOC_CTX *_mem_save_ctr_0;
12571         TALLOC_CTX *_mem_save_ctr_1;
12572         if (flags & NDR_IN) {
12573                 ZERO_STRUCT(r->out);
12574
12575                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
12576                 if (_ptr_server_name) {
12577                         NDR_PULL_ALLOC(ndr, r->in.server_name);
12578                 } else {
12579                         r->in.server_name = NULL;
12580                 }
12581                 if (r->in.server_name) {
12582                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12583                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
12584                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
12585                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
12586                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
12587                                 return 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));
12588                         }
12589                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
12590                         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));
12591                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
12592                 }
12593                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
12594                 if (r->in.count < 0 || r->in.count > 32000) {
12595                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
12596                 }
12597                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
12598                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12599                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
12600                 }
12601                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
12602                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
12603                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12604                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
12605                 }
12606                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
12607                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
12608                 }
12609                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
12610                 NDR_PULL_ALLOC(ndr, r->out.ctr);
12611                 ZERO_STRUCTP(r->out.ctr);
12612                 if (r->in.addresses) {
12613                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
12614                 }
12615         }
12616         if (flags & NDR_OUT) {
12617                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12618                         NDR_PULL_ALLOC(ndr, r->out.ctr);
12619                 }
12620                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
12621                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
12622                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
12623                 if (_ptr_ctr) {
12624                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
12625                 } else {
12626                         *r->out.ctr = NULL;
12627                 }
12628                 if (*r->out.ctr) {
12629                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
12630                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
12631                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
12632                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
12633                 }
12634                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
12635                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12636         }
12637         return NDR_ERR_SUCCESS;
12638 }
12639
12640 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesW *r)
12641 {
12642         uint32_t cntr_addresses_1;
12643         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesW");
12644         ndr->depth++;
12645         if (flags & NDR_SET_VALUES) {
12646                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12647         }
12648         if (flags & NDR_IN) {
12649                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesW");
12650                 ndr->depth++;
12651                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
12652                 ndr->depth++;
12653                 if (r->in.server_name) {
12654                         ndr_print_string(ndr, "server_name", r->in.server_name);
12655                 }
12656                 ndr->depth--;
12657                 ndr_print_uint32(ndr, "count", r->in.count);
12658                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
12659                 ndr->depth++;
12660                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", r->in.count);
12661                 ndr->depth++;
12662                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
12663                         char *idx_1=NULL;
12664                         asprintf(&idx_1, "[%d]", cntr_addresses_1);
12665                         if (idx_1) {
12666                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
12667                                 free(idx_1);
12668                         }
12669                 }
12670                 ndr->depth--;
12671                 ndr->depth--;
12672                 ndr->depth--;
12673         }
12674         if (flags & NDR_OUT) {
12675                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesW");
12676                 ndr->depth++;
12677                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
12678                 ndr->depth++;
12679                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
12680                 ndr->depth++;
12681                 if (*r->out.ctr) {
12682                         ndr_print_netr_DsRAddressToSitenamesWCtr(ndr, "ctr", *r->out.ctr);
12683                 }
12684                 ndr->depth--;
12685                 ndr->depth--;
12686                 ndr_print_WERROR(ndr, "result", r->out.result);
12687                 ndr->depth--;
12688         }
12689         ndr->depth--;
12690 }
12691
12692 static enum ndr_err_code ndr_push_netr_DsRGetDCNameEx2(struct ndr_push *ndr, int flags, const struct netr_DsRGetDCNameEx2 *r)
12693 {
12694         if (flags & NDR_IN) {
12695                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_unc));
12696                 if (r->in.server_unc) {
12697                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12698                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12699                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_unc, CH_UTF16)));
12700                         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));
12701                 }
12702                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.client_account));
12703                 if (r->in.client_account) {
12704                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12705                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12706                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.client_account, CH_UTF16)));
12707                         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));
12708                 }
12709                 NDR_CHECK(ndr_push_samr_AcctFlags(ndr, NDR_SCALARS, r->in.mask));
12710                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_name));
12711                 if (r->in.domain_name) {
12712                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12713                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12714                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain_name, CH_UTF16)));
12715                         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));
12716                 }
12717                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
12718                 if (r->in.domain_guid) {
12719                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
12720                 }
12721                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.site_name));
12722                 if (r->in.site_name) {
12723                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12724                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12725                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.site_name, CH_UTF16)));
12726                         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));
12727                 }
12728                 NDR_CHECK(ndr_push_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, r->in.flags));
12729         }
12730         if (flags & NDR_OUT) {
12731                 if (r->out.info == NULL) {
12732                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12733                 }
12734                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
12735                 if (*r->out.info) {
12736                         NDR_CHECK(ndr_push_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12737                 }
12738                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12739         }
12740         return NDR_ERR_SUCCESS;
12741 }
12742
12743 static enum ndr_err_code ndr_pull_netr_DsRGetDCNameEx2(struct ndr_pull *ndr, int flags, struct netr_DsRGetDCNameEx2 *r)
12744 {
12745         uint32_t _ptr_server_unc;
12746         uint32_t _ptr_client_account;
12747         uint32_t _ptr_domain_name;
12748         uint32_t _ptr_domain_guid;
12749         uint32_t _ptr_site_name;
12750         uint32_t _ptr_info;
12751         TALLOC_CTX *_mem_save_server_unc_0;
12752         TALLOC_CTX *_mem_save_client_account_0;
12753         TALLOC_CTX *_mem_save_domain_name_0;
12754         TALLOC_CTX *_mem_save_domain_guid_0;
12755         TALLOC_CTX *_mem_save_site_name_0;
12756         TALLOC_CTX *_mem_save_info_0;
12757         TALLOC_CTX *_mem_save_info_1;
12758         if (flags & NDR_IN) {
12759                 ZERO_STRUCT(r->out);
12760
12761                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_unc));
12762                 if (_ptr_server_unc) {
12763                         NDR_PULL_ALLOC(ndr, r->in.server_unc);
12764                 } else {
12765                         r->in.server_unc = NULL;
12766                 }
12767                 if (r->in.server_unc) {
12768                         _mem_save_server_unc_0 = NDR_PULL_GET_MEM_CTX(ndr);
12769                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_unc, 0);
12770                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_unc));
12771                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_unc));
12772                         if (ndr_get_array_length(ndr, &r->in.server_unc) > ndr_get_array_size(ndr, &r->in.server_unc)) {
12773                                 return 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));
12774                         }
12775                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_unc), sizeof(uint16_t)));
12776                         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));
12777                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_unc_0, 0);
12778                 }
12779                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client_account));
12780                 if (_ptr_client_account) {
12781                         NDR_PULL_ALLOC(ndr, r->in.client_account);
12782                 } else {
12783                         r->in.client_account = NULL;
12784                 }
12785                 if (r->in.client_account) {
12786                         _mem_save_client_account_0 = NDR_PULL_GET_MEM_CTX(ndr);
12787                         NDR_PULL_SET_MEM_CTX(ndr, r->in.client_account, 0);
12788                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.client_account));
12789                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.client_account));
12790                         if (ndr_get_array_length(ndr, &r->in.client_account) > ndr_get_array_size(ndr, &r->in.client_account)) {
12791                                 return 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));
12792                         }
12793                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.client_account), sizeof(uint16_t)));
12794                         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));
12795                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_account_0, 0);
12796                 }
12797                 NDR_CHECK(ndr_pull_samr_AcctFlags(ndr, NDR_SCALARS, &r->in.mask));
12798                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_name));
12799                 if (_ptr_domain_name) {
12800                         NDR_PULL_ALLOC(ndr, r->in.domain_name);
12801                 } else {
12802                         r->in.domain_name = NULL;
12803                 }
12804                 if (r->in.domain_name) {
12805                         _mem_save_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12806                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_name, 0);
12807                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain_name));
12808                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain_name));
12809                         if (ndr_get_array_length(ndr, &r->in.domain_name) > ndr_get_array_size(ndr, &r->in.domain_name)) {
12810                                 return 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));
12811                         }
12812                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain_name), sizeof(uint16_t)));
12813                         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));
12814                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_name_0, 0);
12815                 }
12816                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
12817                 if (_ptr_domain_guid) {
12818                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
12819                 } else {
12820                         r->in.domain_guid = NULL;
12821                 }
12822                 if (r->in.domain_guid) {
12823                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
12824                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
12825                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
12826                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
12827                 }
12828                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_site_name));
12829                 if (_ptr_site_name) {
12830                         NDR_PULL_ALLOC(ndr, r->in.site_name);
12831                 } else {
12832                         r->in.site_name = NULL;
12833                 }
12834                 if (r->in.site_name) {
12835                         _mem_save_site_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12836                         NDR_PULL_SET_MEM_CTX(ndr, r->in.site_name, 0);
12837                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.site_name));
12838                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.site_name));
12839                         if (ndr_get_array_length(ndr, &r->in.site_name) > ndr_get_array_size(ndr, &r->in.site_name)) {
12840                                 return 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));
12841                         }
12842                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.site_name), sizeof(uint16_t)));
12843                         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));
12844                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_site_name_0, 0);
12845                 }
12846                 NDR_CHECK(ndr_pull_netr_DsRGetDCName_flags(ndr, NDR_SCALARS, &r->in.flags));
12847                 NDR_PULL_ALLOC(ndr, r->out.info);
12848                 ZERO_STRUCTP(r->out.info);
12849         }
12850         if (flags & NDR_OUT) {
12851                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12852                         NDR_PULL_ALLOC(ndr, r->out.info);
12853                 }
12854                 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12855                 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
12856                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12857                 if (_ptr_info) {
12858                         NDR_PULL_ALLOC(ndr, *r->out.info);
12859                 } else {
12860                         *r->out.info = NULL;
12861                 }
12862                 if (*r->out.info) {
12863                         _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
12864                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
12865                         NDR_CHECK(ndr_pull_netr_DsRGetDCNameInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
12866                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
12867                 }
12868                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
12869                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12870         }
12871         return NDR_ERR_SUCCESS;
12872 }
12873
12874 _PUBLIC_ void ndr_print_netr_DsRGetDCNameEx2(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetDCNameEx2 *r)
12875 {
12876         ndr_print_struct(ndr, name, "netr_DsRGetDCNameEx2");
12877         ndr->depth++;
12878         if (flags & NDR_SET_VALUES) {
12879                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12880         }
12881         if (flags & NDR_IN) {
12882                 ndr_print_struct(ndr, "in", "netr_DsRGetDCNameEx2");
12883                 ndr->depth++;
12884                 ndr_print_ptr(ndr, "server_unc", r->in.server_unc);
12885                 ndr->depth++;
12886                 if (r->in.server_unc) {
12887                         ndr_print_string(ndr, "server_unc", r->in.server_unc);
12888                 }
12889                 ndr->depth--;
12890                 ndr_print_ptr(ndr, "client_account", r->in.client_account);
12891                 ndr->depth++;
12892                 if (r->in.client_account) {
12893                         ndr_print_string(ndr, "client_account", r->in.client_account);
12894                 }
12895                 ndr->depth--;
12896                 ndr_print_samr_AcctFlags(ndr, "mask", r->in.mask);
12897                 ndr_print_ptr(ndr, "domain_name", r->in.domain_name);
12898                 ndr->depth++;
12899                 if (r->in.domain_name) {
12900                         ndr_print_string(ndr, "domain_name", r->in.domain_name);
12901                 }
12902                 ndr->depth--;
12903                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
12904                 ndr->depth++;
12905                 if (r->in.domain_guid) {
12906                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
12907                 }
12908                 ndr->depth--;
12909                 ndr_print_ptr(ndr, "site_name", r->in.site_name);
12910                 ndr->depth++;
12911                 if (r->in.site_name) {
12912                         ndr_print_string(ndr, "site_name", r->in.site_name);
12913                 }
12914                 ndr->depth--;
12915                 ndr_print_netr_DsRGetDCName_flags(ndr, "flags", r->in.flags);
12916                 ndr->depth--;
12917         }
12918         if (flags & NDR_OUT) {
12919                 ndr_print_struct(ndr, "out", "netr_DsRGetDCNameEx2");
12920                 ndr->depth++;
12921                 ndr_print_ptr(ndr, "info", r->out.info);
12922                 ndr->depth++;
12923                 ndr_print_ptr(ndr, "info", *r->out.info);
12924                 ndr->depth++;
12925                 if (*r->out.info) {
12926                         ndr_print_netr_DsRGetDCNameInfo(ndr, "info", *r->out.info);
12927                 }
12928                 ndr->depth--;
12929                 ndr->depth--;
12930                 ndr_print_WERROR(ndr, "result", r->out.result);
12931                 ndr->depth--;
12932         }
12933         ndr->depth--;
12934 }
12935
12936 static enum ndr_err_code ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_push *ndr, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
12937 {
12938         if (flags & NDR_IN) {
12939         }
12940         if (flags & NDR_OUT) {
12941                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12942         }
12943         return NDR_ERR_SUCCESS;
12944 }
12945
12946 static enum ndr_err_code ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_pull *ndr, int flags, struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
12947 {
12948         if (flags & NDR_IN) {
12949         }
12950         if (flags & NDR_OUT) {
12951                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12952         }
12953         return NDR_ERR_SUCCESS;
12954 }
12955
12956 _PUBLIC_ void ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN *r)
12957 {
12958         ndr_print_struct(ndr, name, "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
12959         ndr->depth++;
12960         if (flags & NDR_SET_VALUES) {
12961                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12962         }
12963         if (flags & NDR_IN) {
12964                 ndr_print_struct(ndr, "in", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
12965                 ndr->depth++;
12966                 ndr->depth--;
12967         }
12968         if (flags & NDR_OUT) {
12969                 ndr_print_struct(ndr, "out", "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN");
12970                 ndr->depth++;
12971                 ndr_print_WERROR(ndr, "result", r->out.result);
12972                 ndr->depth--;
12973         }
12974         ndr->depth--;
12975 }
12976
12977 static enum ndr_err_code ndr_push_netr_NetrEnumerateTrustedDomainsEx(struct ndr_push *ndr, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
12978 {
12979         if (flags & NDR_IN) {
12980                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
12981                 if (r->in.server_name) {
12982                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12983                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12984                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
12985                         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));
12986                 }
12987         }
12988         if (flags & NDR_OUT) {
12989                 if (r->out.dom_trust_list == NULL) {
12990                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12991                 }
12992                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
12993                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12994         }
12995         return NDR_ERR_SUCCESS;
12996 }
12997
12998 static enum ndr_err_code ndr_pull_netr_NetrEnumerateTrustedDomainsEx(struct ndr_pull *ndr, int flags, struct netr_NetrEnumerateTrustedDomainsEx *r)
12999 {
13000         uint32_t _ptr_server_name;
13001         TALLOC_CTX *_mem_save_server_name_0;
13002         TALLOC_CTX *_mem_save_dom_trust_list_0;
13003         if (flags & NDR_IN) {
13004                 ZERO_STRUCT(r->out);
13005
13006                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13007                 if (_ptr_server_name) {
13008                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13009                 } else {
13010                         r->in.server_name = NULL;
13011                 }
13012                 if (r->in.server_name) {
13013                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13014                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13015                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13016                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13017                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13018                                 return 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));
13019                         }
13020                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13021                         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));
13022                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13023                 }
13024                 NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13025                 ZERO_STRUCTP(r->out.dom_trust_list);
13026         }
13027         if (flags & NDR_OUT) {
13028                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13029                         NDR_PULL_ALLOC(ndr, r->out.dom_trust_list);
13030                 }
13031                 _mem_save_dom_trust_list_0 = NDR_PULL_GET_MEM_CTX(ndr);
13032                 NDR_PULL_SET_MEM_CTX(ndr, r->out.dom_trust_list, LIBNDR_FLAG_REF_ALLOC);
13033                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.dom_trust_list));
13034                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_trust_list_0, LIBNDR_FLAG_REF_ALLOC);
13035                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13036         }
13037         return NDR_ERR_SUCCESS;
13038 }
13039
13040 _PUBLIC_ void ndr_print_netr_NetrEnumerateTrustedDomainsEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_NetrEnumerateTrustedDomainsEx *r)
13041 {
13042         ndr_print_struct(ndr, name, "netr_NetrEnumerateTrustedDomainsEx");
13043         ndr->depth++;
13044         if (flags & NDR_SET_VALUES) {
13045                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13046         }
13047         if (flags & NDR_IN) {
13048                 ndr_print_struct(ndr, "in", "netr_NetrEnumerateTrustedDomainsEx");
13049                 ndr->depth++;
13050                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13051                 ndr->depth++;
13052                 if (r->in.server_name) {
13053                         ndr_print_string(ndr, "server_name", r->in.server_name);
13054                 }
13055                 ndr->depth--;
13056                 ndr->depth--;
13057         }
13058         if (flags & NDR_OUT) {
13059                 ndr_print_struct(ndr, "out", "netr_NetrEnumerateTrustedDomainsEx");
13060                 ndr->depth++;
13061                 ndr_print_ptr(ndr, "dom_trust_list", r->out.dom_trust_list);
13062                 ndr->depth++;
13063                 ndr_print_netr_DomainTrustList(ndr, "dom_trust_list", r->out.dom_trust_list);
13064                 ndr->depth--;
13065                 ndr_print_WERROR(ndr, "result", r->out.result);
13066                 ndr->depth--;
13067         }
13068         ndr->depth--;
13069 }
13070
13071 static enum ndr_err_code ndr_push_netr_DsRAddressToSitenamesExW(struct ndr_push *ndr, int flags, const struct netr_DsRAddressToSitenamesExW *r)
13072 {
13073         uint32_t cntr_addresses_1;
13074         if (flags & NDR_IN) {
13075                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13076                 if (r->in.server_name) {
13077                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13078                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13079                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13080                         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));
13081                 }
13082                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13083                 if (r->in.addresses == NULL) {
13084                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13085                 }
13086                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13087                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13088                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13089                 }
13090                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13091                         NDR_CHECK(ndr_push_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13092                 }
13093         }
13094         if (flags & NDR_OUT) {
13095                 if (r->out.ctr == NULL) {
13096                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13097                 }
13098                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ctr));
13099                 if (*r->out.ctr) {
13100                         NDR_CHECK(ndr_push_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13101                 }
13102                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13103         }
13104         return NDR_ERR_SUCCESS;
13105 }
13106
13107 static enum ndr_err_code ndr_pull_netr_DsRAddressToSitenamesExW(struct ndr_pull *ndr, int flags, struct netr_DsRAddressToSitenamesExW *r)
13108 {
13109         uint32_t _ptr_server_name;
13110         uint32_t cntr_addresses_1;
13111         uint32_t _ptr_ctr;
13112         TALLOC_CTX *_mem_save_server_name_0;
13113         TALLOC_CTX *_mem_save_addresses_1;
13114         TALLOC_CTX *_mem_save_ctr_0;
13115         TALLOC_CTX *_mem_save_ctr_1;
13116         if (flags & NDR_IN) {
13117                 ZERO_STRUCT(r->out);
13118
13119                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13120                 if (_ptr_server_name) {
13121                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13122                 } else {
13123                         r->in.server_name = NULL;
13124                 }
13125                 if (r->in.server_name) {
13126                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13127                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13128                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13129                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13130                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13131                                 return 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));
13132                         }
13133                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13134                         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));
13135                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13136                 }
13137                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
13138                 if (r->in.count < 0 || r->in.count > 32000) {
13139                         return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
13140                 }
13141                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.addresses));
13142                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13143                         NDR_PULL_ALLOC_N(ndr, r->in.addresses, ndr_get_array_size(ndr, &r->in.addresses));
13144                 }
13145                 _mem_save_addresses_1 = NDR_PULL_GET_MEM_CTX(ndr);
13146                 NDR_PULL_SET_MEM_CTX(ndr, r->in.addresses, 0);
13147                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13148                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_SCALARS, &r->in.addresses[cntr_addresses_1]));
13149                 }
13150                 for (cntr_addresses_1 = 0; cntr_addresses_1 < r->in.count; cntr_addresses_1++) {
13151                         NDR_CHECK(ndr_pull_netr_DsRAddress(ndr, NDR_BUFFERS, &r->in.addresses[cntr_addresses_1]));
13152                 }
13153                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_addresses_1, 0);
13154                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13155                 ZERO_STRUCTP(r->out.ctr);
13156                 if (r->in.addresses) {
13157                         NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.addresses, r->in.count));
13158                 }
13159         }
13160         if (flags & NDR_OUT) {
13161                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13162                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13163                 }
13164                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13165                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13166                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
13167                 if (_ptr_ctr) {
13168                         NDR_PULL_ALLOC(ndr, *r->out.ctr);
13169                 } else {
13170                         *r->out.ctr = NULL;
13171                 }
13172                 if (*r->out.ctr) {
13173                         _mem_save_ctr_1 = NDR_PULL_GET_MEM_CTX(ndr);
13174                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.ctr, 0);
13175                         NDR_CHECK(ndr_pull_netr_DsRAddressToSitenamesExWCtr(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ctr));
13176                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_1, 0);
13177                 }
13178                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13179                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13180         }
13181         return NDR_ERR_SUCCESS;
13182 }
13183
13184 _PUBLIC_ void ndr_print_netr_DsRAddressToSitenamesExW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRAddressToSitenamesExW *r)
13185 {
13186         uint32_t cntr_addresses_1;
13187         ndr_print_struct(ndr, name, "netr_DsRAddressToSitenamesExW");
13188         ndr->depth++;
13189         if (flags & NDR_SET_VALUES) {
13190                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13191         }
13192         if (flags & NDR_IN) {
13193                 ndr_print_struct(ndr, "in", "netr_DsRAddressToSitenamesExW");
13194                 ndr->depth++;
13195                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13196                 ndr->depth++;
13197                 if (r->in.server_name) {
13198                         ndr_print_string(ndr, "server_name", r->in.server_name);
13199                 }
13200                 ndr->depth--;
13201                 ndr_print_uint32(ndr, "count", r->in.count);
13202                 ndr_print_ptr(ndr, "addresses", r->in.addresses);
13203                 ndr->depth++;
13204                 ndr->print(ndr, "%s: ARRAY(%d)", "addresses", r->in.count);
13205                 ndr->depth++;
13206                 for (cntr_addresses_1=0;cntr_addresses_1<r->in.count;cntr_addresses_1++) {
13207                         char *idx_1=NULL;
13208                         asprintf(&idx_1, "[%d]", cntr_addresses_1);
13209                         if (idx_1) {
13210                                 ndr_print_netr_DsRAddress(ndr, "addresses", &r->in.addresses[cntr_addresses_1]);
13211                                 free(idx_1);
13212                         }
13213                 }
13214                 ndr->depth--;
13215                 ndr->depth--;
13216                 ndr->depth--;
13217         }
13218         if (flags & NDR_OUT) {
13219                 ndr_print_struct(ndr, "out", "netr_DsRAddressToSitenamesExW");
13220                 ndr->depth++;
13221                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13222                 ndr->depth++;
13223                 ndr_print_ptr(ndr, "ctr", *r->out.ctr);
13224                 ndr->depth++;
13225                 if (*r->out.ctr) {
13226                         ndr_print_netr_DsRAddressToSitenamesExWCtr(ndr, "ctr", *r->out.ctr);
13227                 }
13228                 ndr->depth--;
13229                 ndr->depth--;
13230                 ndr_print_WERROR(ndr, "result", r->out.result);
13231                 ndr->depth--;
13232         }
13233         ndr->depth--;
13234 }
13235
13236 static enum ndr_err_code ndr_push_netr_DsrGetDcSiteCoverageW(struct ndr_push *ndr, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13237 {
13238         if (flags & NDR_IN) {
13239                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13240                 if (r->in.server_name) {
13241                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13242                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13243                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13244                         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));
13245                 }
13246         }
13247         if (flags & NDR_OUT) {
13248                 if (r->out.ctr == NULL) {
13249                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13250                 }
13251                 NDR_CHECK(ndr_push_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13252                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13253         }
13254         return NDR_ERR_SUCCESS;
13255 }
13256
13257 static enum ndr_err_code ndr_pull_netr_DsrGetDcSiteCoverageW(struct ndr_pull *ndr, int flags, struct netr_DsrGetDcSiteCoverageW *r)
13258 {
13259         uint32_t _ptr_server_name;
13260         TALLOC_CTX *_mem_save_server_name_0;
13261         TALLOC_CTX *_mem_save_ctr_0;
13262         if (flags & NDR_IN) {
13263                 ZERO_STRUCT(r->out);
13264
13265                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13266                 if (_ptr_server_name) {
13267                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13268                 } else {
13269                         r->in.server_name = NULL;
13270                 }
13271                 if (r->in.server_name) {
13272                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13273                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13274                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13275                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13276                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13277                                 return 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));
13278                         }
13279                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13280                         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));
13281                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13282                 }
13283                 NDR_PULL_ALLOC(ndr, r->out.ctr);
13284                 ZERO_STRUCTP(r->out.ctr);
13285         }
13286         if (flags & NDR_OUT) {
13287                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13288                         NDR_PULL_ALLOC(ndr, r->out.ctr);
13289                 }
13290                 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13291                 NDR_PULL_SET_MEM_CTX(ndr, r->out.ctr, LIBNDR_FLAG_REF_ALLOC);
13292                 NDR_CHECK(ndr_pull_DcSitesCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.ctr));
13293                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13294                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13295         }
13296         return NDR_ERR_SUCCESS;
13297 }
13298
13299 _PUBLIC_ void ndr_print_netr_DsrGetDcSiteCoverageW(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrGetDcSiteCoverageW *r)
13300 {
13301         ndr_print_struct(ndr, name, "netr_DsrGetDcSiteCoverageW");
13302         ndr->depth++;
13303         if (flags & NDR_SET_VALUES) {
13304                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13305         }
13306         if (flags & NDR_IN) {
13307                 ndr_print_struct(ndr, "in", "netr_DsrGetDcSiteCoverageW");
13308                 ndr->depth++;
13309                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13310                 ndr->depth++;
13311                 if (r->in.server_name) {
13312                         ndr_print_string(ndr, "server_name", r->in.server_name);
13313                 }
13314                 ndr->depth--;
13315                 ndr->depth--;
13316         }
13317         if (flags & NDR_OUT) {
13318                 ndr_print_struct(ndr, "out", "netr_DsrGetDcSiteCoverageW");
13319                 ndr->depth++;
13320                 ndr_print_ptr(ndr, "ctr", r->out.ctr);
13321                 ndr->depth++;
13322                 ndr_print_DcSitesCtr(ndr, "ctr", r->out.ctr);
13323                 ndr->depth--;
13324                 ndr_print_WERROR(ndr, "result", r->out.result);
13325                 ndr->depth--;
13326         }
13327         ndr->depth--;
13328 }
13329
13330 static enum ndr_err_code ndr_push_netr_LogonSamLogonEx(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonEx *r)
13331 {
13332         if (flags & NDR_IN) {
13333                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13334                 if (r->in.server_name) {
13335                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13336                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13337                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13338                         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));
13339                 }
13340                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
13341                 if (r->in.computer_name) {
13342                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13343                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13344                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13345                         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));
13346                 }
13347                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
13348                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
13349                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
13350                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
13351                 if (r->in.flags == NULL) {
13352                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13353                 }
13354                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
13355         }
13356         if (flags & NDR_OUT) {
13357                 if (r->out.validation == NULL) {
13358                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13359                 }
13360                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13361                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13362                 if (r->out.authoritative == NULL) {
13363                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13364                 }
13365                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
13366                 if (r->out.flags == NULL) {
13367                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13368                 }
13369                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
13370                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13371         }
13372         return NDR_ERR_SUCCESS;
13373 }
13374
13375 static enum ndr_err_code ndr_pull_netr_LogonSamLogonEx(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonEx *r)
13376 {
13377         uint32_t _ptr_server_name;
13378         uint32_t _ptr_computer_name;
13379         TALLOC_CTX *_mem_save_server_name_0;
13380         TALLOC_CTX *_mem_save_computer_name_0;
13381         TALLOC_CTX *_mem_save_validation_0;
13382         TALLOC_CTX *_mem_save_authoritative_0;
13383         TALLOC_CTX *_mem_save_flags_0;
13384         if (flags & NDR_IN) {
13385                 ZERO_STRUCT(r->out);
13386
13387                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13388                 if (_ptr_server_name) {
13389                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13390                 } else {
13391                         r->in.server_name = NULL;
13392                 }
13393                 if (r->in.server_name) {
13394                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13395                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13396                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13397                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13398                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13399                                 return 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));
13400                         }
13401                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13402                         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));
13403                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13404                 }
13405                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
13406                 if (_ptr_computer_name) {
13407                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
13408                 } else {
13409                         r->in.computer_name = NULL;
13410                 }
13411                 if (r->in.computer_name) {
13412                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13413                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
13414                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13415                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13416                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13417                                 return 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));
13418                         }
13419                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13420                         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));
13421                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
13422                 }
13423                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
13424                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
13425                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
13426                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
13427                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13428                         NDR_PULL_ALLOC(ndr, r->in.flags);
13429                 }
13430                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13431                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
13432                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
13433                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13434                 NDR_PULL_ALLOC(ndr, r->out.validation);
13435                 ZERO_STRUCTP(r->out.validation);
13436                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
13437                 ZERO_STRUCTP(r->out.authoritative);
13438                 NDR_PULL_ALLOC(ndr, r->out.flags);
13439                 *r->out.flags = *r->in.flags;
13440         }
13441         if (flags & NDR_OUT) {
13442                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13443                         NDR_PULL_ALLOC(ndr, r->out.validation);
13444                 }
13445                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
13446                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
13447                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
13448                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
13449                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
13450                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13451                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
13452                 }
13453                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
13454                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
13455                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
13456                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
13457                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13458                         NDR_PULL_ALLOC(ndr, r->out.flags);
13459                 }
13460                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
13461                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
13462                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
13463                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
13464                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13465         }
13466         return NDR_ERR_SUCCESS;
13467 }
13468
13469 _PUBLIC_ void ndr_print_netr_LogonSamLogonEx(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonEx *r)
13470 {
13471         ndr_print_struct(ndr, name, "netr_LogonSamLogonEx");
13472         ndr->depth++;
13473         if (flags & NDR_SET_VALUES) {
13474                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13475         }
13476         if (flags & NDR_IN) {
13477                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonEx");
13478                 ndr->depth++;
13479                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13480                 ndr->depth++;
13481                 if (r->in.server_name) {
13482                         ndr_print_string(ndr, "server_name", r->in.server_name);
13483                 }
13484                 ndr->depth--;
13485                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
13486                 ndr->depth++;
13487                 if (r->in.computer_name) {
13488                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
13489                 }
13490                 ndr->depth--;
13491                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
13492                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
13493                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
13494                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
13495                 ndr_print_ptr(ndr, "flags", r->in.flags);
13496                 ndr->depth++;
13497                 ndr_print_uint32(ndr, "flags", *r->in.flags);
13498                 ndr->depth--;
13499                 ndr->depth--;
13500         }
13501         if (flags & NDR_OUT) {
13502                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonEx");
13503                 ndr->depth++;
13504                 ndr_print_ptr(ndr, "validation", r->out.validation);
13505                 ndr->depth++;
13506                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
13507                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
13508                 ndr->depth--;
13509                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
13510                 ndr->depth++;
13511                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
13512                 ndr->depth--;
13513                 ndr_print_ptr(ndr, "flags", r->out.flags);
13514                 ndr->depth++;
13515                 ndr_print_uint32(ndr, "flags", *r->out.flags);
13516                 ndr->depth--;
13517                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13518                 ndr->depth--;
13519         }
13520         ndr->depth--;
13521 }
13522
13523 static enum ndr_err_code ndr_push_netr_DsrEnumerateDomainTrusts(struct ndr_push *ndr, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13524 {
13525         if (flags & NDR_IN) {
13526                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13527                 if (r->in.server_name) {
13528                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13529                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13530                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13531                         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));
13532                 }
13533                 NDR_CHECK(ndr_push_netr_TrustFlags(ndr, NDR_SCALARS, r->in.trust_flags));
13534         }
13535         if (flags & NDR_OUT) {
13536                 if (r->out.trusts == NULL) {
13537                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13538                 }
13539                 NDR_CHECK(ndr_push_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13540                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13541         }
13542         return NDR_ERR_SUCCESS;
13543 }
13544
13545 static enum ndr_err_code ndr_pull_netr_DsrEnumerateDomainTrusts(struct ndr_pull *ndr, int flags, struct netr_DsrEnumerateDomainTrusts *r)
13546 {
13547         uint32_t _ptr_server_name;
13548         TALLOC_CTX *_mem_save_server_name_0;
13549         TALLOC_CTX *_mem_save_trusts_0;
13550         if (flags & NDR_IN) {
13551                 ZERO_STRUCT(r->out);
13552
13553                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13554                 if (_ptr_server_name) {
13555                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13556                 } else {
13557                         r->in.server_name = NULL;
13558                 }
13559                 if (r->in.server_name) {
13560                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13561                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13562                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13563                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13564                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13565                                 return 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));
13566                         }
13567                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13568                         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));
13569                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13570                 }
13571                 NDR_CHECK(ndr_pull_netr_TrustFlags(ndr, NDR_SCALARS, &r->in.trust_flags));
13572                 NDR_PULL_ALLOC(ndr, r->out.trusts);
13573                 ZERO_STRUCTP(r->out.trusts);
13574         }
13575         if (flags & NDR_OUT) {
13576                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13577                         NDR_PULL_ALLOC(ndr, r->out.trusts);
13578                 }
13579                 _mem_save_trusts_0 = NDR_PULL_GET_MEM_CTX(ndr);
13580                 NDR_PULL_SET_MEM_CTX(ndr, r->out.trusts, LIBNDR_FLAG_REF_ALLOC);
13581                 NDR_CHECK(ndr_pull_netr_DomainTrustList(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.trusts));
13582                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusts_0, LIBNDR_FLAG_REF_ALLOC);
13583                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13584         }
13585         return NDR_ERR_SUCCESS;
13586 }
13587
13588 _PUBLIC_ void ndr_print_netr_DsrEnumerateDomainTrusts(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrEnumerateDomainTrusts *r)
13589 {
13590         ndr_print_struct(ndr, name, "netr_DsrEnumerateDomainTrusts");
13591         ndr->depth++;
13592         if (flags & NDR_SET_VALUES) {
13593                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13594         }
13595         if (flags & NDR_IN) {
13596                 ndr_print_struct(ndr, "in", "netr_DsrEnumerateDomainTrusts");
13597                 ndr->depth++;
13598                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13599                 ndr->depth++;
13600                 if (r->in.server_name) {
13601                         ndr_print_string(ndr, "server_name", r->in.server_name);
13602                 }
13603                 ndr->depth--;
13604                 ndr_print_netr_TrustFlags(ndr, "trust_flags", r->in.trust_flags);
13605                 ndr->depth--;
13606         }
13607         if (flags & NDR_OUT) {
13608                 ndr_print_struct(ndr, "out", "netr_DsrEnumerateDomainTrusts");
13609                 ndr->depth++;
13610                 ndr_print_ptr(ndr, "trusts", r->out.trusts);
13611                 ndr->depth++;
13612                 ndr_print_netr_DomainTrustList(ndr, "trusts", r->out.trusts);
13613                 ndr->depth--;
13614                 ndr_print_WERROR(ndr, "result", r->out.result);
13615                 ndr->depth--;
13616         }
13617         ndr->depth--;
13618 }
13619
13620 static enum ndr_err_code ndr_push_netr_DsrDeregisterDNSHostRecords(struct ndr_push *ndr, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
13621 {
13622         if (flags & NDR_IN) {
13623                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13624                 if (r->in.server_name) {
13625                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13626                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13627                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13628                         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));
13629                 }
13630                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain));
13631                 if (r->in.domain) {
13632                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
13633                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13634                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF16)));
13635                         NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13636                 }
13637                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.domain_guid));
13638                 if (r->in.domain_guid) {
13639                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
13640                 }
13641                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dsa_guid));
13642                 if (r->in.dsa_guid) {
13643                         NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.dsa_guid));
13644                 }
13645                 if (r->in.dns_host == NULL) {
13646                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13647                 }
13648                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
13649                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13650                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dns_host, CH_UTF16)));
13651                 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));
13652         }
13653         if (flags & NDR_OUT) {
13654                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13655         }
13656         return NDR_ERR_SUCCESS;
13657 }
13658
13659 static enum ndr_err_code ndr_pull_netr_DsrDeregisterDNSHostRecords(struct ndr_pull *ndr, int flags, struct netr_DsrDeregisterDNSHostRecords *r)
13660 {
13661         uint32_t _ptr_server_name;
13662         uint32_t _ptr_domain;
13663         uint32_t _ptr_domain_guid;
13664         uint32_t _ptr_dsa_guid;
13665         TALLOC_CTX *_mem_save_server_name_0;
13666         TALLOC_CTX *_mem_save_domain_0;
13667         TALLOC_CTX *_mem_save_domain_guid_0;
13668         TALLOC_CTX *_mem_save_dsa_guid_0;
13669         if (flags & NDR_IN) {
13670                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13671                 if (_ptr_server_name) {
13672                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13673                 } else {
13674                         r->in.server_name = NULL;
13675                 }
13676                 if (r->in.server_name) {
13677                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13678                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13679                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13680                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13681                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13682                                 return 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));
13683                         }
13684                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13685                         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));
13686                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13687                 }
13688                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
13689                 if (_ptr_domain) {
13690                         NDR_PULL_ALLOC(ndr, r->in.domain);
13691                 } else {
13692                         r->in.domain = NULL;
13693                 }
13694                 if (r->in.domain) {
13695                         _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
13696                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain, 0);
13697                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
13698                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
13699                         if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
13700                                 return 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));
13701                         }
13702                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t)));
13703                         NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint16_t), CH_UTF16));
13704                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, 0);
13705                 }
13706                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain_guid));
13707                 if (_ptr_domain_guid) {
13708                         NDR_PULL_ALLOC(ndr, r->in.domain_guid);
13709                 } else {
13710                         r->in.domain_guid = NULL;
13711                 }
13712                 if (r->in.domain_guid) {
13713                         _mem_save_domain_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13714                         NDR_PULL_SET_MEM_CTX(ndr, r->in.domain_guid, 0);
13715                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.domain_guid));
13716                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_guid_0, 0);
13717                 }
13718                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dsa_guid));
13719                 if (_ptr_dsa_guid) {
13720                         NDR_PULL_ALLOC(ndr, r->in.dsa_guid);
13721                 } else {
13722                         r->in.dsa_guid = NULL;
13723                 }
13724                 if (r->in.dsa_guid) {
13725                         _mem_save_dsa_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
13726                         NDR_PULL_SET_MEM_CTX(ndr, r->in.dsa_guid, 0);
13727                         NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.dsa_guid));
13728                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dsa_guid_0, 0);
13729                 }
13730                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dns_host));
13731                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dns_host));
13732                 if (ndr_get_array_length(ndr, &r->in.dns_host) > ndr_get_array_size(ndr, &r->in.dns_host)) {
13733                         return 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));
13734                 }
13735                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dns_host), sizeof(uint16_t)));
13736                 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));
13737         }
13738         if (flags & NDR_OUT) {
13739                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13740         }
13741         return NDR_ERR_SUCCESS;
13742 }
13743
13744 _PUBLIC_ void ndr_print_netr_DsrDeregisterDNSHostRecords(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsrDeregisterDNSHostRecords *r)
13745 {
13746         ndr_print_struct(ndr, name, "netr_DsrDeregisterDNSHostRecords");
13747         ndr->depth++;
13748         if (flags & NDR_SET_VALUES) {
13749                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13750         }
13751         if (flags & NDR_IN) {
13752                 ndr_print_struct(ndr, "in", "netr_DsrDeregisterDNSHostRecords");
13753                 ndr->depth++;
13754                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13755                 ndr->depth++;
13756                 if (r->in.server_name) {
13757                         ndr_print_string(ndr, "server_name", r->in.server_name);
13758                 }
13759                 ndr->depth--;
13760                 ndr_print_ptr(ndr, "domain", r->in.domain);
13761                 ndr->depth++;
13762                 if (r->in.domain) {
13763                         ndr_print_string(ndr, "domain", r->in.domain);
13764                 }
13765                 ndr->depth--;
13766                 ndr_print_ptr(ndr, "domain_guid", r->in.domain_guid);
13767                 ndr->depth++;
13768                 if (r->in.domain_guid) {
13769                         ndr_print_GUID(ndr, "domain_guid", r->in.domain_guid);
13770                 }
13771                 ndr->depth--;
13772                 ndr_print_ptr(ndr, "dsa_guid", r->in.dsa_guid);
13773                 ndr->depth++;
13774                 if (r->in.dsa_guid) {
13775                         ndr_print_GUID(ndr, "dsa_guid", r->in.dsa_guid);
13776                 }
13777                 ndr->depth--;
13778                 ndr_print_ptr(ndr, "dns_host", r->in.dns_host);
13779                 ndr->depth++;
13780                 ndr_print_string(ndr, "dns_host", r->in.dns_host);
13781                 ndr->depth--;
13782                 ndr->depth--;
13783         }
13784         if (flags & NDR_OUT) {
13785                 ndr_print_struct(ndr, "out", "netr_DsrDeregisterDNSHostRecords");
13786                 ndr->depth++;
13787                 ndr_print_WERROR(ndr, "result", r->out.result);
13788                 ndr->depth--;
13789         }
13790         ndr->depth--;
13791 }
13792
13793 static enum ndr_err_code ndr_push_netr_ServerTrustPasswordsGet(struct ndr_push *ndr, int flags, const struct netr_ServerTrustPasswordsGet *r)
13794 {
13795         if (flags & NDR_IN) {
13796                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13797                 if (r->in.server_name) {
13798                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13799                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13800                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13801                         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));
13802                 }
13803                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13804                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13805                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.account_name, CH_UTF16)));
13806                 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));
13807                 NDR_CHECK(ndr_push_netr_SchannelType(ndr, NDR_SCALARS, r->in.secure_channel_type));
13808                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13809                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13810                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
13811                 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));
13812                 if (r->in.credential == NULL) {
13813                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13814                 }
13815                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13816         }
13817         if (flags & NDR_OUT) {
13818                 if (r->out.return_authenticator == NULL) {
13819                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13820                 }
13821                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13822                 if (r->out.password == NULL) {
13823                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13824                 }
13825                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
13826                 if (r->out.password2 == NULL) {
13827                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13828                 }
13829                 NDR_CHECK(ndr_push_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password2));
13830                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
13831         }
13832         return NDR_ERR_SUCCESS;
13833 }
13834
13835 static enum ndr_err_code ndr_pull_netr_ServerTrustPasswordsGet(struct ndr_pull *ndr, int flags, struct netr_ServerTrustPasswordsGet *r)
13836 {
13837         uint32_t _ptr_server_name;
13838         TALLOC_CTX *_mem_save_server_name_0;
13839         TALLOC_CTX *_mem_save_credential_0;
13840         TALLOC_CTX *_mem_save_return_authenticator_0;
13841         TALLOC_CTX *_mem_save_password_0;
13842         TALLOC_CTX *_mem_save_password2_0;
13843         if (flags & NDR_IN) {
13844                 ZERO_STRUCT(r->out);
13845
13846                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
13847                 if (_ptr_server_name) {
13848                         NDR_PULL_ALLOC(ndr, r->in.server_name);
13849                 } else {
13850                         r->in.server_name = NULL;
13851                 }
13852                 if (r->in.server_name) {
13853                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13854                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
13855                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
13856                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
13857                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
13858                                 return 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));
13859                         }
13860                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
13861                         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));
13862                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
13863                 }
13864                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.account_name));
13865                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.account_name));
13866                 if (ndr_get_array_length(ndr, &r->in.account_name) > ndr_get_array_size(ndr, &r->in.account_name)) {
13867                         return 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));
13868                 }
13869                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.account_name), sizeof(uint16_t)));
13870                 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));
13871                 NDR_CHECK(ndr_pull_netr_SchannelType(ndr, NDR_SCALARS, &r->in.secure_channel_type));
13872                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
13873                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
13874                 if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
13875                         return 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));
13876                 }
13877                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
13878                 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));
13879                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13880                         NDR_PULL_ALLOC(ndr, r->in.credential);
13881                 }
13882                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
13883                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
13884                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
13885                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
13886                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13887                 ZERO_STRUCTP(r->out.return_authenticator);
13888                 NDR_PULL_ALLOC(ndr, r->out.password);
13889                 ZERO_STRUCTP(r->out.password);
13890                 NDR_PULL_ALLOC(ndr, r->out.password2);
13891                 ZERO_STRUCTP(r->out.password2);
13892         }
13893         if (flags & NDR_OUT) {
13894                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13895                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
13896                 }
13897                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
13898                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
13899                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
13900                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
13901                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13902                         NDR_PULL_ALLOC(ndr, r->out.password);
13903                 }
13904                 _mem_save_password_0 = NDR_PULL_GET_MEM_CTX(ndr);
13905                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password, LIBNDR_FLAG_REF_ALLOC);
13906                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password));
13907                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password_0, LIBNDR_FLAG_REF_ALLOC);
13908                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13909                         NDR_PULL_ALLOC(ndr, r->out.password2);
13910                 }
13911                 _mem_save_password2_0 = NDR_PULL_GET_MEM_CTX(ndr);
13912                 NDR_PULL_SET_MEM_CTX(ndr, r->out.password2, LIBNDR_FLAG_REF_ALLOC);
13913                 NDR_CHECK(ndr_pull_samr_Password(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.password2));
13914                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_password2_0, LIBNDR_FLAG_REF_ALLOC);
13915                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
13916         }
13917         return NDR_ERR_SUCCESS;
13918 }
13919
13920 _PUBLIC_ void ndr_print_netr_ServerTrustPasswordsGet(struct ndr_print *ndr, const char *name, int flags, const struct netr_ServerTrustPasswordsGet *r)
13921 {
13922         ndr_print_struct(ndr, name, "netr_ServerTrustPasswordsGet");
13923         ndr->depth++;
13924         if (flags & NDR_SET_VALUES) {
13925                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13926         }
13927         if (flags & NDR_IN) {
13928                 ndr_print_struct(ndr, "in", "netr_ServerTrustPasswordsGet");
13929                 ndr->depth++;
13930                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
13931                 ndr->depth++;
13932                 if (r->in.server_name) {
13933                         ndr_print_string(ndr, "server_name", r->in.server_name);
13934                 }
13935                 ndr->depth--;
13936                 ndr_print_string(ndr, "account_name", r->in.account_name);
13937                 ndr_print_netr_SchannelType(ndr, "secure_channel_type", r->in.secure_channel_type);
13938                 ndr_print_string(ndr, "computer_name", r->in.computer_name);
13939                 ndr_print_ptr(ndr, "credential", r->in.credential);
13940                 ndr->depth++;
13941                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
13942                 ndr->depth--;
13943                 ndr->depth--;
13944         }
13945         if (flags & NDR_OUT) {
13946                 ndr_print_struct(ndr, "out", "netr_ServerTrustPasswordsGet");
13947                 ndr->depth++;
13948                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
13949                 ndr->depth++;
13950                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
13951                 ndr->depth--;
13952                 ndr_print_ptr(ndr, "password", r->out.password);
13953                 ndr->depth++;
13954                 ndr_print_samr_Password(ndr, "password", r->out.password);
13955                 ndr->depth--;
13956                 ndr_print_ptr(ndr, "password2", r->out.password2);
13957                 ndr->depth++;
13958                 ndr_print_samr_Password(ndr, "password2", r->out.password2);
13959                 ndr->depth--;
13960                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
13961                 ndr->depth--;
13962         }
13963         ndr->depth--;
13964 }
13965
13966 static enum ndr_err_code ndr_push_netr_DsRGetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_DsRGetForestTrustInformation *r)
13967 {
13968         if (flags & NDR_IN) {
13969                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
13970                 if (r->in.server_name) {
13971                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13972                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13973                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
13974                         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));
13975                 }
13976                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.trusted_domain_name));
13977                 if (r->in.trusted_domain_name) {
13978                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
13979                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13980                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
13981                         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));
13982                 }
13983                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
13984         }
13985         if (flags & NDR_OUT) {
13986                 if (r->out.forest_trust_info == NULL) {
13987                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13988                 }
13989                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
13990                 if (*r->out.forest_trust_info) {
13991                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
13992                 }
13993                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13994         }
13995         return NDR_ERR_SUCCESS;
13996 }
13997
13998 static enum ndr_err_code ndr_pull_netr_DsRGetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_DsRGetForestTrustInformation *r)
13999 {
14000         uint32_t _ptr_server_name;
14001         uint32_t _ptr_trusted_domain_name;
14002         uint32_t _ptr_forest_trust_info;
14003         TALLOC_CTX *_mem_save_server_name_0;
14004         TALLOC_CTX *_mem_save_trusted_domain_name_0;
14005         TALLOC_CTX *_mem_save_forest_trust_info_0;
14006         TALLOC_CTX *_mem_save_forest_trust_info_1;
14007         if (flags & NDR_IN) {
14008                 ZERO_STRUCT(r->out);
14009
14010                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14011                 if (_ptr_server_name) {
14012                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14013                 } else {
14014                         r->in.server_name = NULL;
14015                 }
14016                 if (r->in.server_name) {
14017                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14018                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14019                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14020                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14021                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14022                                 return 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));
14023                         }
14024                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14025                         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));
14026                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14027                 }
14028                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_trusted_domain_name));
14029                 if (_ptr_trusted_domain_name) {
14030                         NDR_PULL_ALLOC(ndr, r->in.trusted_domain_name);
14031                 } else {
14032                         r->in.trusted_domain_name = NULL;
14033                 }
14034                 if (r->in.trusted_domain_name) {
14035                         _mem_save_trusted_domain_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14036                         NDR_PULL_SET_MEM_CTX(ndr, r->in.trusted_domain_name, 0);
14037                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
14038                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
14039                         if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
14040                                 return 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));
14041                         }
14042                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
14043                         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));
14044                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_trusted_domain_name_0, 0);
14045                 }
14046                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
14047                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14048                 ZERO_STRUCTP(r->out.forest_trust_info);
14049         }
14050         if (flags & NDR_OUT) {
14051                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14052                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14053                 }
14054                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14055                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
14056                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
14057                 if (_ptr_forest_trust_info) {
14058                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
14059                 } else {
14060                         *r->out.forest_trust_info = NULL;
14061                 }
14062                 if (*r->out.forest_trust_info) {
14063                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14064                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
14065                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14066                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
14067                 }
14068                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
14069                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14070         }
14071         return NDR_ERR_SUCCESS;
14072 }
14073
14074 _PUBLIC_ void ndr_print_netr_DsRGetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_DsRGetForestTrustInformation *r)
14075 {
14076         ndr_print_struct(ndr, name, "netr_DsRGetForestTrustInformation");
14077         ndr->depth++;
14078         if (flags & NDR_SET_VALUES) {
14079                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14080         }
14081         if (flags & NDR_IN) {
14082                 ndr_print_struct(ndr, "in", "netr_DsRGetForestTrustInformation");
14083                 ndr->depth++;
14084                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14085                 ndr->depth++;
14086                 if (r->in.server_name) {
14087                         ndr_print_string(ndr, "server_name", r->in.server_name);
14088                 }
14089                 ndr->depth--;
14090                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14091                 ndr->depth++;
14092                 if (r->in.trusted_domain_name) {
14093                         ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14094                 }
14095                 ndr->depth--;
14096                 ndr_print_uint32(ndr, "flags", r->in.flags);
14097                 ndr->depth--;
14098         }
14099         if (flags & NDR_OUT) {
14100                 ndr_print_struct(ndr, "out", "netr_DsRGetForestTrustInformation");
14101                 ndr->depth++;
14102                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
14103                 ndr->depth++;
14104                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
14105                 ndr->depth++;
14106                 if (*r->out.forest_trust_info) {
14107                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
14108                 }
14109                 ndr->depth--;
14110                 ndr->depth--;
14111                 ndr_print_WERROR(ndr, "result", r->out.result);
14112                 ndr->depth--;
14113         }
14114         ndr->depth--;
14115 }
14116
14117 static enum ndr_err_code ndr_push_netr_GetForestTrustInformation(struct ndr_push *ndr, int flags, const struct netr_GetForestTrustInformation *r)
14118 {
14119         if (flags & NDR_IN) {
14120                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14121                 if (r->in.server_name) {
14122                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14123                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14124                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14125                         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));
14126                 }
14127                 if (r->in.trusted_domain_name == NULL) {
14128                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14129                 }
14130                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14131                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14132                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.trusted_domain_name, CH_UTF16)));
14133                 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));
14134                 if (r->in.credential == NULL) {
14135                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14136                 }
14137                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14138                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
14139         }
14140         if (flags & NDR_OUT) {
14141                 if (r->out.return_authenticator == NULL) {
14142                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14143                 }
14144                 NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14145                 if (r->out.forest_trust_info == NULL) {
14146                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14147                 }
14148                 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.forest_trust_info));
14149                 if (*r->out.forest_trust_info) {
14150                         NDR_CHECK(ndr_push_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14151                 }
14152                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14153         }
14154         return NDR_ERR_SUCCESS;
14155 }
14156
14157 static enum ndr_err_code ndr_pull_netr_GetForestTrustInformation(struct ndr_pull *ndr, int flags, struct netr_GetForestTrustInformation *r)
14158 {
14159         uint32_t _ptr_server_name;
14160         uint32_t _ptr_forest_trust_info;
14161         TALLOC_CTX *_mem_save_server_name_0;
14162         TALLOC_CTX *_mem_save_credential_0;
14163         TALLOC_CTX *_mem_save_return_authenticator_0;
14164         TALLOC_CTX *_mem_save_forest_trust_info_0;
14165         TALLOC_CTX *_mem_save_forest_trust_info_1;
14166         if (flags & NDR_IN) {
14167                 ZERO_STRUCT(r->out);
14168
14169                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14170                 if (_ptr_server_name) {
14171                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14172                 } else {
14173                         r->in.server_name = NULL;
14174                 }
14175                 if (r->in.server_name) {
14176                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14177                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14178                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14179                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14180                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14181                                 return 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));
14182                         }
14183                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14184                         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));
14185                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14186                 }
14187                 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.trusted_domain_name));
14188                 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.trusted_domain_name));
14189                 if (ndr_get_array_length(ndr, &r->in.trusted_domain_name) > ndr_get_array_size(ndr, &r->in.trusted_domain_name)) {
14190                         return 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));
14191                 }
14192                 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.trusted_domain_name), sizeof(uint16_t)));
14193                 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));
14194                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14195                         NDR_PULL_ALLOC(ndr, r->in.credential);
14196                 }
14197                 _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14198                 NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, LIBNDR_FLAG_REF_ALLOC);
14199                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14200                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, LIBNDR_FLAG_REF_ALLOC);
14201                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
14202                 NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14203                 ZERO_STRUCTP(r->out.return_authenticator);
14204                 NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14205                 ZERO_STRUCTP(r->out.forest_trust_info);
14206         }
14207         if (flags & NDR_OUT) {
14208                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14209                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14210                 }
14211                 _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14212                 NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, LIBNDR_FLAG_REF_ALLOC);
14213                 NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14214                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, LIBNDR_FLAG_REF_ALLOC);
14215                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14216                         NDR_PULL_ALLOC(ndr, r->out.forest_trust_info);
14217                 }
14218                 _mem_save_forest_trust_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14219                 NDR_PULL_SET_MEM_CTX(ndr, r->out.forest_trust_info, LIBNDR_FLAG_REF_ALLOC);
14220                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_forest_trust_info));
14221                 if (_ptr_forest_trust_info) {
14222                         NDR_PULL_ALLOC(ndr, *r->out.forest_trust_info);
14223                 } else {
14224                         *r->out.forest_trust_info = NULL;
14225                 }
14226                 if (*r->out.forest_trust_info) {
14227                         _mem_save_forest_trust_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
14228                         NDR_PULL_SET_MEM_CTX(ndr, *r->out.forest_trust_info, 0);
14229                         NDR_CHECK(ndr_pull_lsa_ForestTrustInformation(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.forest_trust_info));
14230                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_1, 0);
14231                 }
14232                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_forest_trust_info_0, LIBNDR_FLAG_REF_ALLOC);
14233                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14234         }
14235         return NDR_ERR_SUCCESS;
14236 }
14237
14238 _PUBLIC_ void ndr_print_netr_GetForestTrustInformation(struct ndr_print *ndr, const char *name, int flags, const struct netr_GetForestTrustInformation *r)
14239 {
14240         ndr_print_struct(ndr, name, "netr_GetForestTrustInformation");
14241         ndr->depth++;
14242         if (flags & NDR_SET_VALUES) {
14243                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14244         }
14245         if (flags & NDR_IN) {
14246                 ndr_print_struct(ndr, "in", "netr_GetForestTrustInformation");
14247                 ndr->depth++;
14248                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14249                 ndr->depth++;
14250                 if (r->in.server_name) {
14251                         ndr_print_string(ndr, "server_name", r->in.server_name);
14252                 }
14253                 ndr->depth--;
14254                 ndr_print_ptr(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14255                 ndr->depth++;
14256                 ndr_print_string(ndr, "trusted_domain_name", r->in.trusted_domain_name);
14257                 ndr->depth--;
14258                 ndr_print_ptr(ndr, "credential", r->in.credential);
14259                 ndr->depth++;
14260                 ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14261                 ndr->depth--;
14262                 ndr_print_uint32(ndr, "flags", r->in.flags);
14263                 ndr->depth--;
14264         }
14265         if (flags & NDR_OUT) {
14266                 ndr_print_struct(ndr, "out", "netr_GetForestTrustInformation");
14267                 ndr->depth++;
14268                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14269                 ndr->depth++;
14270                 ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14271                 ndr->depth--;
14272                 ndr_print_ptr(ndr, "forest_trust_info", r->out.forest_trust_info);
14273                 ndr->depth++;
14274                 ndr_print_ptr(ndr, "forest_trust_info", *r->out.forest_trust_info);
14275                 ndr->depth++;
14276                 if (*r->out.forest_trust_info) {
14277                         ndr_print_lsa_ForestTrustInformation(ndr, "forest_trust_info", *r->out.forest_trust_info);
14278                 }
14279                 ndr->depth--;
14280                 ndr->depth--;
14281                 ndr_print_WERROR(ndr, "result", r->out.result);
14282                 ndr->depth--;
14283         }
14284         ndr->depth--;
14285 }
14286
14287 static enum ndr_err_code ndr_push_netr_LogonSamLogonWithFlags(struct ndr_push *ndr, int flags, const struct netr_LogonSamLogonWithFlags *r)
14288 {
14289         if (flags & NDR_IN) {
14290                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
14291                 if (r->in.server_name) {
14292                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14293                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14294                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
14295                         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));
14296                 }
14297                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.computer_name));
14298                 if (r->in.computer_name) {
14299                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14300                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14301                         NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.computer_name, CH_UTF16)));
14302                         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));
14303                 }
14304                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.credential));
14305                 if (r->in.credential) {
14306                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14307                 }
14308                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.return_authenticator));
14309                 if (r->in.return_authenticator) {
14310                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14311                 }
14312                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.logon_level));
14313                 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14314                 NDR_CHECK(ndr_push_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14315                 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.validation_level));
14316                 if (r->in.flags == NULL) {
14317                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14318                 }
14319                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.flags));
14320         }
14321         if (flags & NDR_OUT) {
14322                 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.return_authenticator));
14323                 if (r->out.return_authenticator) {
14324                         NDR_CHECK(ndr_push_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14325                 }
14326                 if (r->out.validation == NULL) {
14327                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14328                 }
14329                 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14330                 NDR_CHECK(ndr_push_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14331                 if (r->out.authoritative == NULL) {
14332                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14333                 }
14334                 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, *r->out.authoritative));
14335                 if (r->out.flags == NULL) {
14336                         return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14337                 }
14338                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.flags));
14339                 NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
14340         }
14341         return NDR_ERR_SUCCESS;
14342 }
14343
14344 static enum ndr_err_code ndr_pull_netr_LogonSamLogonWithFlags(struct ndr_pull *ndr, int flags, struct netr_LogonSamLogonWithFlags *r)
14345 {
14346         uint32_t _ptr_server_name;
14347         uint32_t _ptr_computer_name;
14348         uint32_t _ptr_credential;
14349         uint32_t _ptr_return_authenticator;
14350         TALLOC_CTX *_mem_save_server_name_0;
14351         TALLOC_CTX *_mem_save_computer_name_0;
14352         TALLOC_CTX *_mem_save_credential_0;
14353         TALLOC_CTX *_mem_save_return_authenticator_0;
14354         TALLOC_CTX *_mem_save_validation_0;
14355         TALLOC_CTX *_mem_save_authoritative_0;
14356         TALLOC_CTX *_mem_save_flags_0;
14357         if (flags & NDR_IN) {
14358                 ZERO_STRUCT(r->out);
14359
14360                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
14361                 if (_ptr_server_name) {
14362                         NDR_PULL_ALLOC(ndr, r->in.server_name);
14363                 } else {
14364                         r->in.server_name = NULL;
14365                 }
14366                 if (r->in.server_name) {
14367                         _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14368                         NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
14369                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
14370                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
14371                         if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
14372                                 return 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));
14373                         }
14374                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
14375                         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));
14376                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
14377                 }
14378                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_computer_name));
14379                 if (_ptr_computer_name) {
14380                         NDR_PULL_ALLOC(ndr, r->in.computer_name);
14381                 } else {
14382                         r->in.computer_name = NULL;
14383                 }
14384                 if (r->in.computer_name) {
14385                         _mem_save_computer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14386                         NDR_PULL_SET_MEM_CTX(ndr, r->in.computer_name, 0);
14387                         NDR_CHECK(ndr_pull_array_size(ndr, &r->in.computer_name));
14388                         NDR_CHECK(ndr_pull_array_length(ndr, &r->in.computer_name));
14389                         if (ndr_get_array_length(ndr, &r->in.computer_name) > ndr_get_array_size(ndr, &r->in.computer_name)) {
14390                                 return 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));
14391                         }
14392                         NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.computer_name), sizeof(uint16_t)));
14393                         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));
14394                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_computer_name_0, 0);
14395                 }
14396                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_credential));
14397                 if (_ptr_credential) {
14398                         NDR_PULL_ALLOC(ndr, r->in.credential);
14399                 } else {
14400                         r->in.credential = NULL;
14401                 }
14402                 if (r->in.credential) {
14403                         _mem_save_credential_0 = NDR_PULL_GET_MEM_CTX(ndr);
14404                         NDR_PULL_SET_MEM_CTX(ndr, r->in.credential, 0);
14405                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.credential));
14406                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_credential_0, 0);
14407                 }
14408                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14409                 if (_ptr_return_authenticator) {
14410                         NDR_PULL_ALLOC(ndr, r->in.return_authenticator);
14411                 } else {
14412                         r->in.return_authenticator = NULL;
14413                 }
14414                 if (r->in.return_authenticator) {
14415                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14416                         NDR_PULL_SET_MEM_CTX(ndr, r->in.return_authenticator, 0);
14417                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->in.return_authenticator));
14418                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14419                 }
14420                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.logon_level));
14421                 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.logon, r->in.logon_level));
14422                 NDR_CHECK(ndr_pull_netr_LogonLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.logon));
14423                 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.validation_level));
14424                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14425                         NDR_PULL_ALLOC(ndr, r->in.flags);
14426                 }
14427                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14428                 NDR_PULL_SET_MEM_CTX(ndr, r->in.flags, LIBNDR_FLAG_REF_ALLOC);
14429                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.flags));
14430                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14431                 NDR_PULL_ALLOC(ndr, r->out.validation);
14432                 ZERO_STRUCTP(r->out.validation);
14433                 NDR_PULL_ALLOC(ndr, r->out.authoritative);
14434                 ZERO_STRUCTP(r->out.authoritative);
14435                 NDR_PULL_ALLOC(ndr, r->out.flags);
14436                 *r->out.flags = *r->in.flags;
14437         }
14438         if (flags & NDR_OUT) {
14439                 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_return_authenticator));
14440                 if (_ptr_return_authenticator) {
14441                         NDR_PULL_ALLOC(ndr, r->out.return_authenticator);
14442                 } else {
14443                         r->out.return_authenticator = NULL;
14444                 }
14445                 if (r->out.return_authenticator) {
14446                         _mem_save_return_authenticator_0 = NDR_PULL_GET_MEM_CTX(ndr);
14447                         NDR_PULL_SET_MEM_CTX(ndr, r->out.return_authenticator, 0);
14448                         NDR_CHECK(ndr_pull_netr_Authenticator(ndr, NDR_SCALARS, r->out.return_authenticator));
14449                         NDR_PULL_SET_MEM_CTX(ndr, _mem_save_return_authenticator_0, 0);
14450                 }
14451                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14452                         NDR_PULL_ALLOC(ndr, r->out.validation);
14453                 }
14454                 _mem_save_validation_0 = NDR_PULL_GET_MEM_CTX(ndr);
14455                 NDR_PULL_SET_MEM_CTX(ndr, r->out.validation, LIBNDR_FLAG_REF_ALLOC);
14456                 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.validation, r->in.validation_level));
14457                 NDR_CHECK(ndr_pull_netr_Validation(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.validation));
14458                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_validation_0, LIBNDR_FLAG_REF_ALLOC);
14459                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14460                         NDR_PULL_ALLOC(ndr, r->out.authoritative);
14461                 }
14462                 _mem_save_authoritative_0 = NDR_PULL_GET_MEM_CTX(ndr);
14463                 NDR_PULL_SET_MEM_CTX(ndr, r->out.authoritative, LIBNDR_FLAG_REF_ALLOC);
14464                 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, r->out.authoritative));
14465                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_authoritative_0, LIBNDR_FLAG_REF_ALLOC);
14466                 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14467                         NDR_PULL_ALLOC(ndr, r->out.flags);
14468                 }
14469                 _mem_save_flags_0 = NDR_PULL_GET_MEM_CTX(ndr);
14470                 NDR_PULL_SET_MEM_CTX(ndr, r->out.flags, LIBNDR_FLAG_REF_ALLOC);
14471                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.flags));
14472                 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_flags_0, LIBNDR_FLAG_REF_ALLOC);
14473                 NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
14474         }
14475         return NDR_ERR_SUCCESS;
14476 }
14477
14478 _PUBLIC_ void ndr_print_netr_LogonSamLogonWithFlags(struct ndr_print *ndr, const char *name, int flags, const struct netr_LogonSamLogonWithFlags *r)
14479 {
14480         ndr_print_struct(ndr, name, "netr_LogonSamLogonWithFlags");
14481         ndr->depth++;
14482         if (flags & NDR_SET_VALUES) {
14483                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14484         }
14485         if (flags & NDR_IN) {
14486                 ndr_print_struct(ndr, "in", "netr_LogonSamLogonWithFlags");
14487                 ndr->depth++;
14488                 ndr_print_ptr(ndr, "server_name", r->in.server_name);
14489                 ndr->depth++;
14490                 if (r->in.server_name) {
14491                         ndr_print_string(ndr, "server_name", r->in.server_name);
14492                 }
14493                 ndr->depth--;
14494                 ndr_print_ptr(ndr, "computer_name", r->in.computer_name);
14495                 ndr->depth++;
14496                 if (r->in.computer_name) {
14497                         ndr_print_string(ndr, "computer_name", r->in.computer_name);
14498                 }
14499                 ndr->depth--;
14500                 ndr_print_ptr(ndr, "credential", r->in.credential);
14501                 ndr->depth++;
14502                 if (r->in.credential) {
14503                         ndr_print_netr_Authenticator(ndr, "credential", r->in.credential);
14504                 }
14505                 ndr->depth--;
14506                 ndr_print_ptr(ndr, "return_authenticator", r->in.return_authenticator);
14507                 ndr->depth++;
14508                 if (r->in.return_authenticator) {
14509                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->in.return_authenticator);
14510                 }
14511                 ndr->depth--;
14512                 ndr_print_uint16(ndr, "logon_level", r->in.logon_level);
14513                 ndr_print_set_switch_value(ndr, &r->in.logon, r->in.logon_level);
14514                 ndr_print_netr_LogonLevel(ndr, "logon", &r->in.logon);
14515                 ndr_print_uint16(ndr, "validation_level", r->in.validation_level);
14516                 ndr_print_ptr(ndr, "flags", r->in.flags);
14517                 ndr->depth++;
14518                 ndr_print_uint32(ndr, "flags", *r->in.flags);
14519                 ndr->depth--;
14520                 ndr->depth--;
14521         }
14522         if (flags & NDR_OUT) {
14523                 ndr_print_struct(ndr, "out", "netr_LogonSamLogonWithFlags");
14524                 ndr->depth++;
14525                 ndr_print_ptr(ndr, "return_authenticator", r->out.return_authenticator);
14526                 ndr->depth++;
14527                 if (r->out.return_authenticator) {
14528                         ndr_print_netr_Authenticator(ndr, "return_authenticator", r->out.return_authenticator);
14529                 }
14530                 ndr->depth--;
14531                 ndr_print_ptr(ndr, "validation", r->out.validation);
14532                 ndr->depth++;
14533                 ndr_print_set_switch_value(ndr, r->out.validation, r->in.validation_level);
14534                 ndr_print_netr_Validation(ndr, "validation", r->out.validation);
14535                 ndr->depth--;
14536                 ndr_print_ptr(ndr, "authoritative", r->out.authoritative);
14537                 ndr->depth++;
14538                 ndr_print_uint8(ndr, "authoritative", *r->out.authoritative);
14539                 ndr->depth--;
14540                 ndr_print_ptr(ndr, "flags", r->out.flags);
14541                 ndr->depth++;
14542                 ndr_print_uint32(ndr, "flags", *r->out.flags);
14543                 ndr->depth--;
14544                 ndr_print_NTSTATUS(ndr, "result", r->out.result);
14545                 ndr->depth--;
14546         }
14547         ndr->depth--;
14548 }
14549
14550 static enum ndr_err_code ndr_push_netr_NETRSERVERGETTRUSTINFO(struct ndr_push *ndr, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14551 {
14552         if (flags & NDR_IN) {
14553         }
14554         if (flags & NDR_OUT) {
14555                 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14556         }
14557         return NDR_ERR_SUCCESS;
14558 }
14559
14560 static enum ndr_err_code ndr_pull_netr_NETRSERVERGETTRUSTINFO(struct ndr_pull *ndr, int flags, struct netr_NETRSERVERGETTRUSTINFO *r)
14561 {
14562         if (flags & NDR_IN) {
14563         }
14564         if (flags & NDR_OUT) {
14565                 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14566         }
14567         return NDR_ERR_SUCCESS;
14568 }
14569
14570 _PUBLIC_ void ndr_print_netr_NETRSERVERGETTRUSTINFO(struct ndr_print *ndr, const char *name, int flags, const struct netr_NETRSERVERGETTRUSTINFO *r)
14571 {
14572         ndr_print_struct(ndr, name, "netr_NETRSERVERGETTRUSTINFO");
14573         ndr->depth++;
14574         if (flags & NDR_SET_VALUES) {
14575                 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14576         }
14577         if (flags & NDR_IN) {
14578                 ndr_print_struct(ndr, "in", "netr_NETRSERVERGETTRUSTINFO");
14579                 ndr->depth++;
14580                 ndr->depth--;
14581         }
14582         if (flags & NDR_OUT) {
14583                 ndr_print_struct(ndr, "out", "netr_NETRSERVERGETTRUSTINFO");
14584                 ndr->depth++;
14585                 ndr_print_WERROR(ndr, "result", r->out.result);
14586                 ndr->depth--;
14587         }
14588         ndr->depth--;
14589 }
14590
14591 static const struct ndr_interface_call netlogon_calls[] = {
14592         {
14593                 "netr_LogonUasLogon",
14594                 sizeof(struct netr_LogonUasLogon),
14595                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogon,
14596                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogon,
14597                 (ndr_print_function_t) ndr_print_netr_LogonUasLogon,
14598                 false,
14599         },
14600         {
14601                 "netr_LogonUasLogoff",
14602                 sizeof(struct netr_LogonUasLogoff),
14603                 (ndr_push_flags_fn_t) ndr_push_netr_LogonUasLogoff,
14604                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonUasLogoff,
14605                 (ndr_print_function_t) ndr_print_netr_LogonUasLogoff,
14606                 false,
14607         },
14608         {
14609                 "netr_LogonSamLogon",
14610                 sizeof(struct netr_LogonSamLogon),
14611                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogon,
14612                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogon,
14613                 (ndr_print_function_t) ndr_print_netr_LogonSamLogon,
14614                 false,
14615         },
14616         {
14617                 "netr_LogonSamLogoff",
14618                 sizeof(struct netr_LogonSamLogoff),
14619                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogoff,
14620                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogoff,
14621                 (ndr_print_function_t) ndr_print_netr_LogonSamLogoff,
14622                 false,
14623         },
14624         {
14625                 "netr_ServerReqChallenge",
14626                 sizeof(struct netr_ServerReqChallenge),
14627                 (ndr_push_flags_fn_t) ndr_push_netr_ServerReqChallenge,
14628                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerReqChallenge,
14629                 (ndr_print_function_t) ndr_print_netr_ServerReqChallenge,
14630                 false,
14631         },
14632         {
14633                 "netr_ServerAuthenticate",
14634                 sizeof(struct netr_ServerAuthenticate),
14635                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate,
14636                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate,
14637                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate,
14638                 false,
14639         },
14640         {
14641                 "netr_ServerPasswordSet",
14642                 sizeof(struct netr_ServerPasswordSet),
14643                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet,
14644                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet,
14645                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet,
14646                 false,
14647         },
14648         {
14649                 "netr_DatabaseDeltas",
14650                 sizeof(struct netr_DatabaseDeltas),
14651                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseDeltas,
14652                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseDeltas,
14653                 (ndr_print_function_t) ndr_print_netr_DatabaseDeltas,
14654                 false,
14655         },
14656         {
14657                 "netr_DatabaseSync",
14658                 sizeof(struct netr_DatabaseSync),
14659                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync,
14660                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync,
14661                 (ndr_print_function_t) ndr_print_netr_DatabaseSync,
14662                 false,
14663         },
14664         {
14665                 "netr_AccountDeltas",
14666                 sizeof(struct netr_AccountDeltas),
14667                 (ndr_push_flags_fn_t) ndr_push_netr_AccountDeltas,
14668                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountDeltas,
14669                 (ndr_print_function_t) ndr_print_netr_AccountDeltas,
14670                 false,
14671         },
14672         {
14673                 "netr_AccountSync",
14674                 sizeof(struct netr_AccountSync),
14675                 (ndr_push_flags_fn_t) ndr_push_netr_AccountSync,
14676                 (ndr_pull_flags_fn_t) ndr_pull_netr_AccountSync,
14677                 (ndr_print_function_t) ndr_print_netr_AccountSync,
14678                 false,
14679         },
14680         {
14681                 "netr_GetDcName",
14682                 sizeof(struct netr_GetDcName),
14683                 (ndr_push_flags_fn_t) ndr_push_netr_GetDcName,
14684                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetDcName,
14685                 (ndr_print_function_t) ndr_print_netr_GetDcName,
14686                 false,
14687         },
14688         {
14689                 "netr_LogonControl",
14690                 sizeof(struct netr_LogonControl),
14691                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl,
14692                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl,
14693                 (ndr_print_function_t) ndr_print_netr_LogonControl,
14694                 false,
14695         },
14696         {
14697                 "netr_GetAnyDCName",
14698                 sizeof(struct netr_GetAnyDCName),
14699                 (ndr_push_flags_fn_t) ndr_push_netr_GetAnyDCName,
14700                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetAnyDCName,
14701                 (ndr_print_function_t) ndr_print_netr_GetAnyDCName,
14702                 false,
14703         },
14704         {
14705                 "netr_LogonControl2",
14706                 sizeof(struct netr_LogonControl2),
14707                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2,
14708                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2,
14709                 (ndr_print_function_t) ndr_print_netr_LogonControl2,
14710                 false,
14711         },
14712         {
14713                 "netr_ServerAuthenticate2",
14714                 sizeof(struct netr_ServerAuthenticate2),
14715                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate2,
14716                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate2,
14717                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate2,
14718                 false,
14719         },
14720         {
14721                 "netr_DatabaseSync2",
14722                 sizeof(struct netr_DatabaseSync2),
14723                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseSync2,
14724                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseSync2,
14725                 (ndr_print_function_t) ndr_print_netr_DatabaseSync2,
14726                 false,
14727         },
14728         {
14729                 "netr_DatabaseRedo",
14730                 sizeof(struct netr_DatabaseRedo),
14731                 (ndr_push_flags_fn_t) ndr_push_netr_DatabaseRedo,
14732                 (ndr_pull_flags_fn_t) ndr_pull_netr_DatabaseRedo,
14733                 (ndr_print_function_t) ndr_print_netr_DatabaseRedo,
14734                 false,
14735         },
14736         {
14737                 "netr_LogonControl2Ex",
14738                 sizeof(struct netr_LogonControl2Ex),
14739                 (ndr_push_flags_fn_t) ndr_push_netr_LogonControl2Ex,
14740                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonControl2Ex,
14741                 (ndr_print_function_t) ndr_print_netr_LogonControl2Ex,
14742                 false,
14743         },
14744         {
14745                 "netr_NetrEnumerateTrustedDomains",
14746                 sizeof(struct netr_NetrEnumerateTrustedDomains),
14747                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomains,
14748                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomains,
14749                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomains,
14750                 false,
14751         },
14752         {
14753                 "netr_DsRGetDCName",
14754                 sizeof(struct netr_DsRGetDCName),
14755                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCName,
14756                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCName,
14757                 (ndr_print_function_t) ndr_print_netr_DsRGetDCName,
14758                 false,
14759         },
14760         {
14761                 "netr_NETRLOGONDUMMYROUTINE1",
14762                 sizeof(struct netr_NETRLOGONDUMMYROUTINE1),
14763                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONDUMMYROUTINE1,
14764                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONDUMMYROUTINE1,
14765                 (ndr_print_function_t) ndr_print_netr_NETRLOGONDUMMYROUTINE1,
14766                 false,
14767         },
14768         {
14769                 "netr_NETRLOGONSETSERVICEBITS",
14770                 sizeof(struct netr_NETRLOGONSETSERVICEBITS),
14771                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSETSERVICEBITS,
14772                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSETSERVICEBITS,
14773                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSETSERVICEBITS,
14774                 false,
14775         },
14776         {
14777                 "netr_LogonGetTrustRid",
14778                 sizeof(struct netr_LogonGetTrustRid),
14779                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetTrustRid,
14780                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetTrustRid,
14781                 (ndr_print_function_t) ndr_print_netr_LogonGetTrustRid,
14782                 false,
14783         },
14784         {
14785                 "netr_NETRLOGONCOMPUTESERVERDIGEST",
14786                 sizeof(struct netr_NETRLOGONCOMPUTESERVERDIGEST),
14787                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTESERVERDIGEST,
14788                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTESERVERDIGEST,
14789                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTESERVERDIGEST,
14790                 false,
14791         },
14792         {
14793                 "netr_NETRLOGONCOMPUTECLIENTDIGEST",
14794                 sizeof(struct netr_NETRLOGONCOMPUTECLIENTDIGEST),
14795                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14796                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14797                 (ndr_print_function_t) ndr_print_netr_NETRLOGONCOMPUTECLIENTDIGEST,
14798                 false,
14799         },
14800         {
14801                 "netr_ServerAuthenticate3",
14802                 sizeof(struct netr_ServerAuthenticate3),
14803                 (ndr_push_flags_fn_t) ndr_push_netr_ServerAuthenticate3,
14804                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerAuthenticate3,
14805                 (ndr_print_function_t) ndr_print_netr_ServerAuthenticate3,
14806                 false,
14807         },
14808         {
14809                 "netr_DsRGetDCNameEx",
14810                 sizeof(struct netr_DsRGetDCNameEx),
14811                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx,
14812                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx,
14813                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx,
14814                 false,
14815         },
14816         {
14817                 "netr_DsRGetSiteName",
14818                 sizeof(struct netr_DsRGetSiteName),
14819                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetSiteName,
14820                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetSiteName,
14821                 (ndr_print_function_t) ndr_print_netr_DsRGetSiteName,
14822                 false,
14823         },
14824         {
14825                 "netr_LogonGetDomainInfo",
14826                 sizeof(struct netr_LogonGetDomainInfo),
14827                 (ndr_push_flags_fn_t) ndr_push_netr_LogonGetDomainInfo,
14828                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonGetDomainInfo,
14829                 (ndr_print_function_t) ndr_print_netr_LogonGetDomainInfo,
14830                 false,
14831         },
14832         {
14833                 "netr_ServerPasswordSet2",
14834                 sizeof(struct netr_ServerPasswordSet2),
14835                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordSet2,
14836                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordSet2,
14837                 (ndr_print_function_t) ndr_print_netr_ServerPasswordSet2,
14838                 false,
14839         },
14840         {
14841                 "netr_ServerPasswordGet",
14842                 sizeof(struct netr_ServerPasswordGet),
14843                 (ndr_push_flags_fn_t) ndr_push_netr_ServerPasswordGet,
14844                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerPasswordGet,
14845                 (ndr_print_function_t) ndr_print_netr_ServerPasswordGet,
14846                 false,
14847         },
14848         {
14849                 "netr_NETRLOGONSENDTOSAM",
14850                 sizeof(struct netr_NETRLOGONSENDTOSAM),
14851                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONSENDTOSAM,
14852                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONSENDTOSAM,
14853                 (ndr_print_function_t) ndr_print_netr_NETRLOGONSENDTOSAM,
14854                 false,
14855         },
14856         {
14857                 "netr_DsRAddressToSitenamesW",
14858                 sizeof(struct netr_DsRAddressToSitenamesW),
14859                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesW,
14860                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesW,
14861                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesW,
14862                 false,
14863         },
14864         {
14865                 "netr_DsRGetDCNameEx2",
14866                 sizeof(struct netr_DsRGetDCNameEx2),
14867                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetDCNameEx2,
14868                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetDCNameEx2,
14869                 (ndr_print_function_t) ndr_print_netr_DsRGetDCNameEx2,
14870                 false,
14871         },
14872         {
14873                 "netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN",
14874                 sizeof(struct netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN),
14875                 (ndr_push_flags_fn_t) ndr_push_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14876                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14877                 (ndr_print_function_t) ndr_print_netr_NETRLOGONGETTIMESERVICEPARENTDOMAIN,
14878                 false,
14879         },
14880         {
14881                 "netr_NetrEnumerateTrustedDomainsEx",
14882                 sizeof(struct netr_NetrEnumerateTrustedDomainsEx),
14883                 (ndr_push_flags_fn_t) ndr_push_netr_NetrEnumerateTrustedDomainsEx,
14884                 (ndr_pull_flags_fn_t) ndr_pull_netr_NetrEnumerateTrustedDomainsEx,
14885                 (ndr_print_function_t) ndr_print_netr_NetrEnumerateTrustedDomainsEx,
14886                 false,
14887         },
14888         {
14889                 "netr_DsRAddressToSitenamesExW",
14890                 sizeof(struct netr_DsRAddressToSitenamesExW),
14891                 (ndr_push_flags_fn_t) ndr_push_netr_DsRAddressToSitenamesExW,
14892                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRAddressToSitenamesExW,
14893                 (ndr_print_function_t) ndr_print_netr_DsRAddressToSitenamesExW,
14894                 false,
14895         },
14896         {
14897                 "netr_DsrGetDcSiteCoverageW",
14898                 sizeof(struct netr_DsrGetDcSiteCoverageW),
14899                 (ndr_push_flags_fn_t) ndr_push_netr_DsrGetDcSiteCoverageW,
14900                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrGetDcSiteCoverageW,
14901                 (ndr_print_function_t) ndr_print_netr_DsrGetDcSiteCoverageW,
14902                 false,
14903         },
14904         {
14905                 "netr_LogonSamLogonEx",
14906                 sizeof(struct netr_LogonSamLogonEx),
14907                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonEx,
14908                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonEx,
14909                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonEx,
14910                 false,
14911         },
14912         {
14913                 "netr_DsrEnumerateDomainTrusts",
14914                 sizeof(struct netr_DsrEnumerateDomainTrusts),
14915                 (ndr_push_flags_fn_t) ndr_push_netr_DsrEnumerateDomainTrusts,
14916                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrEnumerateDomainTrusts,
14917                 (ndr_print_function_t) ndr_print_netr_DsrEnumerateDomainTrusts,
14918                 false,
14919         },
14920         {
14921                 "netr_DsrDeregisterDNSHostRecords",
14922                 sizeof(struct netr_DsrDeregisterDNSHostRecords),
14923                 (ndr_push_flags_fn_t) ndr_push_netr_DsrDeregisterDNSHostRecords,
14924                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsrDeregisterDNSHostRecords,
14925                 (ndr_print_function_t) ndr_print_netr_DsrDeregisterDNSHostRecords,
14926                 false,
14927         },
14928         {
14929                 "netr_ServerTrustPasswordsGet",
14930                 sizeof(struct netr_ServerTrustPasswordsGet),
14931                 (ndr_push_flags_fn_t) ndr_push_netr_ServerTrustPasswordsGet,
14932                 (ndr_pull_flags_fn_t) ndr_pull_netr_ServerTrustPasswordsGet,
14933                 (ndr_print_function_t) ndr_print_netr_ServerTrustPasswordsGet,
14934                 false,
14935         },
14936         {
14937                 "netr_DsRGetForestTrustInformation",
14938                 sizeof(struct netr_DsRGetForestTrustInformation),
14939                 (ndr_push_flags_fn_t) ndr_push_netr_DsRGetForestTrustInformation,
14940                 (ndr_pull_flags_fn_t) ndr_pull_netr_DsRGetForestTrustInformation,
14941                 (ndr_print_function_t) ndr_print_netr_DsRGetForestTrustInformation,
14942                 false,
14943         },
14944         {
14945                 "netr_GetForestTrustInformation",
14946                 sizeof(struct netr_GetForestTrustInformation),
14947                 (ndr_push_flags_fn_t) ndr_push_netr_GetForestTrustInformation,
14948                 (ndr_pull_flags_fn_t) ndr_pull_netr_GetForestTrustInformation,
14949                 (ndr_print_function_t) ndr_print_netr_GetForestTrustInformation,
14950                 false,
14951         },
14952         {
14953                 "netr_LogonSamLogonWithFlags",
14954                 sizeof(struct netr_LogonSamLogonWithFlags),
14955                 (ndr_push_flags_fn_t) ndr_push_netr_LogonSamLogonWithFlags,
14956                 (ndr_pull_flags_fn_t) ndr_pull_netr_LogonSamLogonWithFlags,
14957                 (ndr_print_function_t) ndr_print_netr_LogonSamLogonWithFlags,
14958                 false,
14959         },
14960         {
14961                 "netr_NETRSERVERGETTRUSTINFO",
14962                 sizeof(struct netr_NETRSERVERGETTRUSTINFO),
14963                 (ndr_push_flags_fn_t) ndr_push_netr_NETRSERVERGETTRUSTINFO,
14964                 (ndr_pull_flags_fn_t) ndr_pull_netr_NETRSERVERGETTRUSTINFO,
14965                 (ndr_print_function_t) ndr_print_netr_NETRSERVERGETTRUSTINFO,
14966                 false,
14967         },
14968         { NULL, 0, NULL, NULL, NULL, false }
14969 };
14970
14971 static const char * const netlogon_endpoint_strings[] = {
14972         "ncacn_np:[\\pipe\\netlogon]", 
14973         "ncacn_ip_tcp:", 
14974         "ncalrpc:", 
14975 };
14976
14977 static const struct ndr_interface_string_array netlogon_endpoints = {
14978         .count  = 3,
14979         .names  = netlogon_endpoint_strings
14980 };
14981
14982 static const char * const netlogon_authservice_strings[] = {
14983         "host", 
14984 };
14985
14986 static const struct ndr_interface_string_array netlogon_authservices = {
14987         .count  = 3,
14988         .names  = netlogon_authservice_strings
14989 };
14990
14991
14992 const struct ndr_interface_table ndr_table_netlogon = {
14993         .name           = "netlogon",
14994         .syntax_id      = {
14995                 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0xcf,0xfb}},
14996                 NDR_NETLOGON_VERSION
14997         },
14998         .helpstring     = NDR_NETLOGON_HELPSTRING,
14999         .num_calls      = 47,
15000         .calls          = netlogon_calls,
15001         .endpoints      = &netlogon_endpoints,
15002         .authservices   = &netlogon_authservices
15003 };
15004